목록공부 (172)
꿈 많은 사람의 이야기
자바는 기본 타입(byte, char, short, int, long, float, double, boolean)의 값을 갖는 객체를 생성할 수 있다. 이런 객체를 포장(wrapper) 객체라고 하는데 그이유는 기본 타입의 값을 내부에 두고 포장하기 때문이다. 포장 클래스는 java.lang 패키지에 포함되어 있는데 다음과 같이 기본 타입에 대응되는 클래스들이 있다. 기본 타입 포장 클래스 byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean 박싱(boxing)과 언박싱(unboxing)기본 타입의 값을 포장 객체로 만드는 과정을 박싱(boxing)이라 하고 반대로 포장 객체에서..
배열을 정렬하는 방법은 프로그래머가 직접 정렬 메소드를 만들어 사용할 수도 있지만 기본적으로 자바에서 제공해주는 정렬 기능도 있다. Arrays.sort()를 이용하면 된다. Arrays 클래스에 있는 sort()메소드이다. 다음 예제를 보자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class SortEx { public static void main(String[] args) { int[] scores = {99, 95, 98}; Arrays.sort(scores); for(int i = 0 ; i
문자열이 정해져 있는 형식(정규 표현식)으로 구성되어 있는지 검증해야 하는 경우가 있다. 예를 들어 이메일 등이다. 그것을 검증 하는 방법이 있다. 정규 표현식 작성 방법 기호 설명 [ ] 한 개의 문자 [abc] a,b,c중 하나의 문자 [^abc] a,b,c 이외의 하나의 문자 [a-zA-Z] a~z, A~Z중 하나의 문자 \d 한 개의 숫자,[0-9]와 동일 \s 공백 \w 한 개의 알파벳 또는 한 개의 숫자, [a-zA-Z_0-9]와 동일 ? 없음 또는 한 개 * 없음 또는 한 개 이상 + 한 개 이상 {n} 정확히 n개 {n,} 최소한 n개 {n, m} n개에서부터 m개까지 ( ) 그룹핑 ^ 시작 $ 끝 이 표를 가지고 실습을 해보자 다음은 02-123-1234 또는 010-1234-5678과 ..
자바 문자열을 처리할 때 특정 구분자로 연결되어 있을 경우 구분자를 기준으로 부분 문자열을 분리하기 위해서는 String의 split() 메소드를 이용할 수 있다. 1 2 3 4 5 6 7 String text = "이&김,박-최"; String[] n = text.split("&|,|-"); for(String name : n) { System.out.println(name); } Colored by Color Scripter cs split 메소드 안에는 정규표현식이 들어간다. & 또는 , 또는 - 가 들어가면 분리해서 문자열 배열에 넣는다. 즉 해당 문자열을 구분자로 구분지어 배열로 만든다. 그리고 그 배열을 출력하면 분리되어 저장되어 있는 것을 볼 수 있다. 문자열을 저장하는 String은 내부의..
연결리스트란 자료가 링크로 연결되어 있는 구조를 말한다. 말 다 필요없고 그림으로 보면 간단하다. 이렇게 되어 있는 것이 연결리스트이다. 예시로 설명하면 노드는 이름과, 다음번지 값을 가지고 있다. 10번지 노드는 이름이 김, 다음번지(20)의 값 20번지 노드는 이름이 이, 다음번지(30)의 값 30번지 노드는 이름이 박, 다음번지(40)의 값 40번지 노드는 이름이 홍, 다음번지(null)의 값 이다. 40번지 값이 가장 최근에 들어온 값으로 했다 (새로운 노드를 start 지점에 두는 방법도 있지만 본인은 이런식으로 구현했다) 기본적으로 자바에선 LinkedList를 클래스로 제공해주지만 직접 소스로 구현해보면 객체지향, 자료구조 등의 측면에서 많은 도움이 된다. cur은 값이 추가될 때마다 맨 끝..
자바의 문자열은 java.lang 패키지의 String 클래스의 인스턴스로 관리된다. 소스상에서 문자열 리터럴은 String 객체로 자동 생성되지만 String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성할 수도 있다. String 클래스에는 여러개의 생성자가 존재하는데 대표적인 생성자는 String str = new String(byte[] byte); -> 배열 전체를 String 객체로 생성 String str = new String(byte[] bytes, int offset, int length); -> 배열의 offset 인덱스 위치부터 length만큼 String 객체로 생성 등의 10가지 정도의 생성자가 존재한다. String 클래스는 문자열의 추출, 비교, 찾기, 변환..
자바 프로그램은 OS상에서 바로 실행되는 것이 아니라 JVM 위에서 실행된다. 따라서 OS의 모든 기능을 자바 코드로 접근하기가 어렵다. 그러나 java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있다. 그 기능은 프로그램 종료, 키보드 입력, 모니터 출력, 현재 시간 읽기 등이다. System 클래스의 모든 필드와 메소드는 정적(static) 필드와 정적(static) 메소드로 구성되어 있다. exit() 메소드경우에 따라서는 강제적으로 JVM을 종료시킬 때도 있다. 이때 System 클래스의 exit()메소드를 출력하면 된다. exit() 메소드는 현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 한다. 정상 종료일 경우 보통 매개변수에 0을 넣는다...
클래스를 선언할 때 extends키워드로 다른 클래스를 상속하지 않으면 암시적으로 java.lang.Object 클래스를 상속하게 된다. 즉, 모든 클래스는 Object 클래스의 자식이거나 자손 클래스이다. Object 클래스는 자바의 최상위 부모 클래스이다. Object 클래스에는 다양한 메소드가 있다. 대표적인게 equals()메소드, hashCode(), toString() 메소드이다. equals() 메소드 equals메소드는 public boolean equals(Object obj) 형태로 되어있다. 매개 타입이 Object인 것은 모든 객체가 매개값으로 대입될 수 있음을 말한다. Object의 equals()메소드는 두 객체가 동일한 객체라면 true를 리턴하고 그렇지 않으면 false를 리..
java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담고 있는 패키지이다. 그렇기 때문에 이 패키지는 import 없이 사용할 수 있다. 지금까지 사용한 String과 System 클래스도 java.lang 패키지에 포함되어 있기 때문에 import하지 않고 사용했다. 클래스 용도 Object - 자바 클래스의 최상위 클래스로 사용 System -표준 입력 장치(키보드)로부터 데이터를 입력 받을 때 사용 -표준 출력 장치(모니터)로 출력하기 위해 사용 -자바 가상 기계를 종료시킬 때 사용 -쓰레기 수집기를 실행 요청할 때 사용 Class - 클래스를 메모리로 로딩할 때 사용 String - 문자열을 저장하고 여러 가지 정보를 얻을 때 사용 StringBuffer StringBuilder - 문자..
자바는 예외를 떠넘기는(throws)그리고 예외를 발생시키는 throw가 존재한다. throws는 메소드 내부에서 예외가 발생할 수 있는 코드를 작성할 때 try-catch 블록으로 처리하는 것이 기본이지만 경우에 따라서는 메소드를 호출한 곳으로 예외를 떠넘길 경우 사용한다. throws 키워드는 메소드 선언부 끝에 작성되어 메소드에서 처리하지 않는 예외를 호출한 곳으로 떠넘기는 역할을 한다. 그리고 throws 키워드가 붙은 메소드를 호출할 때는 반드시 try-catch로 묶어 try 블록 내에서 호출 되어야 한다. 그리고 catch 블록에서 떠넘겨 받은 예외를 처리해야 한다. 다음 소스를 보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public void method1() { tr..