sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
23. 자바의 클래스들
- 객체 및 데이터형 : Object클래스, Wrapper클래스
- 문자열 : String클래스, StringBuffer클래스, StringTokenizer클래스
- 데이터구조 : Vector클래스, Hashtable클래스
- 기능 : Calendar클래스, Random클래스
24. java.lang.Object클래스 (교재 231page)
- 모든 클래스의 최상위 클래스
25. Wrapper클래스 (교재 236page)
- 기본데이터형(int,char...)을 클래스화 시켜준다.
26. java.lang.String클래스 (교재 239page)
- 자바가상머신에 의해 내부의 문자열 저장소에 문자열을 저장하고 관리한다.
- 저장시 이미 같은 문자열이 존재한다면 그 주소값을 공유하게 된다.
- new연산자를 사용하지 않고도 선언만으로 객체 생성을 한다. (내부적으로는 new연산)
ex) String str1="abc"; (명시적) ====> String str1= new String("abc"); (내부적)
- String strNull=new String(); 과 String strNull="";은 같은 명령이지만 String strNull;은 변수 초기화에
의한 초기화가 되지 않고 자동으로 진짜 NULL값이 들어가게 된다. 이런 경우는 컴파일시 문제를 일으킨다.
- String변수의 값을 수정하면, 가상머신은 수정된 값으로 새롭게 메모리 할당을 하고 기존의 값은 유지한다. (교재 240page)
만일 String a="abc"; 이고 바로 밑에 String b="abc";한다면 a와 b는 같은 메모리주소를 참조하는 다른 레퍼런스이다.
하지만, b=b.replace('a','d');하여 b의 값을 변화시킨다면 가상머신은 "dbc"를 위한 메모리공간을 새롭게 확보하고 레퍼런스 b로 참조할 수 있게 한다. 그래서 a와 b가 완전한 독립을 이루게 된다.
27. java.lang.StringBuffer클래스 (교재 244page)
- 메모리상에서 문자열을 처리한다 (속도가 빠르다)
- String은 call by value로 값을 넘겨주고 String buffer는 call by reference로 값을 넘겨준다. (Stringbuffer의 값을 제어하려면 Stringbuffer의 메소드를 이용해야 한다.)
- String.replace()메소드는 원본값은 절대 수정하지 않는다. 반대로 Stringbuffer에서는 메소드에 의한 원본의 수정이 이루어진다.
28. java.util.StringTokenizer클래스 (교재 247page)
- 문자열을 어떠한 규칙에 의해 나눠지는 최소한의 단위를 토큰이라 한다. ex) 2002-04-16 ===> 2002,04,16으로 나눈다면 "-"를 토큰으로 간주할 수 있다.
- 첫번째 생성자 : StringTokenizer(String str) : 토큰의 단위는 스페이스바이다 ex)위의 예제에서는 토큰은 하나...(스페이스바가 없으므로)
- 두번째 생성자 : StringTokenizer(String str, String delim) : 기준문자를 토큰으로 간주한다. ex)3을 넘겨준다면 "-"의 바로 앞까지를 한 토큰으로 간주하여 "-"이 토큰 기준이 된다
- 세번째 생성자 : StringTokenizer(String str, String delim, boolean returnDelims) : "-"또한 토큰의 한 단위로 인식한다
29. java.util.Vector (교재 250page)
- 배열은 반드시 같은 타입의 데이터 공간을 할당하지만 벡터는 저장공간의 개개가 서로다른 클래스타입으로 저장할 수 있다.
- 배열은 한번 생성되면 배열의 크기가 고정되어있지만 벡터는 공간이 초과시 자동으로 새로운 공간을 할당하여 저장한다.
- 하지만 벡터에는 기본데이터타입을 저장하지는 못하고 객체의 레퍼런스만 가능...
- 벡터에 저장된 타입은 Object이기 때문에 다른 타입들의 Object를 얻어올때 형변환을 시켜줘야 한다.(252page참고)
30. java.util.Calendar (교재 263page)
31. java.util.Random (교재 265page)
※ Set, List, Map
Set : 데이터의 순서는 상관없으나 데이터가 중복될 수는 없음 (HashSet, TreeSet)
natural order and no duplicate => sorted set
List : 데이터의 중복은 허용하지만 순서에 맞춤 (ArrayList, LinkedList, Vector)
Map : 데이터마다 할당된 키값이 존재하여 키값은 중복안됨(HashMap, TreeMap, HashTable)
오늘의 예제 :: [5]
- 객체 및 데이터형 : Object클래스, Wrapper클래스
- 문자열 : String클래스, StringBuffer클래스, StringTokenizer클래스
- 데이터구조 : Vector클래스, Hashtable클래스
- 기능 : Calendar클래스, Random클래스
24. java.lang.Object클래스 (교재 231page)
- 모든 클래스의 최상위 클래스
25. Wrapper클래스 (교재 236page)
- 기본데이터형(int,char...)을 클래스화 시켜준다.
26. java.lang.String클래스 (교재 239page)
- 자바가상머신에 의해 내부의 문자열 저장소에 문자열을 저장하고 관리한다.
- 저장시 이미 같은 문자열이 존재한다면 그 주소값을 공유하게 된다.
- new연산자를 사용하지 않고도 선언만으로 객체 생성을 한다. (내부적으로는 new연산)
ex) String str1="abc"; (명시적) ====> String str1= new String("abc"); (내부적)
- String strNull=new String(); 과 String strNull="";은 같은 명령이지만 String strNull;은 변수 초기화에
의한 초기화가 되지 않고 자동으로 진짜 NULL값이 들어가게 된다. 이런 경우는 컴파일시 문제를 일으킨다.
- String변수의 값을 수정하면, 가상머신은 수정된 값으로 새롭게 메모리 할당을 하고 기존의 값은 유지한다. (교재 240page)
만일 String a="abc"; 이고 바로 밑에 String b="abc";한다면 a와 b는 같은 메모리주소를 참조하는 다른 레퍼런스이다.
하지만, b=b.replace('a','d');하여 b의 값을 변화시킨다면 가상머신은 "dbc"를 위한 메모리공간을 새롭게 확보하고 레퍼런스 b로 참조할 수 있게 한다. 그래서 a와 b가 완전한 독립을 이루게 된다.
27. java.lang.StringBuffer클래스 (교재 244page)
- 메모리상에서 문자열을 처리한다 (속도가 빠르다)
- String은 call by value로 값을 넘겨주고 String buffer는 call by reference로 값을 넘겨준다. (Stringbuffer의 값을 제어하려면 Stringbuffer의 메소드를 이용해야 한다.)
- String.replace()메소드는 원본값은 절대 수정하지 않는다. 반대로 Stringbuffer에서는 메소드에 의한 원본의 수정이 이루어진다.
28. java.util.StringTokenizer클래스 (교재 247page)
- 문자열을 어떠한 규칙에 의해 나눠지는 최소한의 단위를 토큰이라 한다. ex) 2002-04-16 ===> 2002,04,16으로 나눈다면 "-"를 토큰으로 간주할 수 있다.
- 첫번째 생성자 : StringTokenizer(String str) : 토큰의 단위는 스페이스바이다 ex)위의 예제에서는 토큰은 하나...(스페이스바가 없으므로)
- 두번째 생성자 : StringTokenizer(String str, String delim) : 기준문자를 토큰으로 간주한다. ex)3을 넘겨준다면 "-"의 바로 앞까지를 한 토큰으로 간주하여 "-"이 토큰 기준이 된다
- 세번째 생성자 : StringTokenizer(String str, String delim, boolean returnDelims) : "-"또한 토큰의 한 단위로 인식한다
29. java.util.Vector (교재 250page)
- 배열은 반드시 같은 타입의 데이터 공간을 할당하지만 벡터는 저장공간의 개개가 서로다른 클래스타입으로 저장할 수 있다.
- 배열은 한번 생성되면 배열의 크기가 고정되어있지만 벡터는 공간이 초과시 자동으로 새로운 공간을 할당하여 저장한다.
- 하지만 벡터에는 기본데이터타입을 저장하지는 못하고 객체의 레퍼런스만 가능...
- 벡터에 저장된 타입은 Object이기 때문에 다른 타입들의 Object를 얻어올때 형변환을 시켜줘야 한다.(252page참고)
30. java.util.Calendar (교재 263page)
31. java.util.Random (교재 265page)
※ Set, List, Map
Set : 데이터의 순서는 상관없으나 데이터가 중복될 수는 없음 (HashSet, TreeSet)
natural order and no duplicate => sorted set
List : 데이터의 중복은 허용하지만 순서에 맞춤 (ArrayList, LinkedList, Vector)
Map : 데이터마다 할당된 키값이 존재하여 키값은 중복안됨(HashMap, TreeMap, HashTable)
오늘의 예제 :: [5]
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
43 | JDF(Java Development Framework) 관련 | 황제낙엽 | 2004.02.11 | 505 |
42 | JDBC Date 포맷 변환 | 황제낙엽 | 2003.11.08 | 938 |
41 | Connection 리소스 관리시 주의해야 할 점 | 황제낙엽 | 2003.09.06 | 429 |
40 | XSLTFilter ... (퍼옴) | 황제낙엽 | 2003.07.21 | 634 |
39 | (초보탈출 II) 내부클래스 | 황제낙엽 | 2003.05.20 | 505 |
38 | (초보탈출 I) 패키지 | 황제낙엽 | 2003.05.20 | 544 |
37 | 열네번째날 (화상 채팅 프로그램 프로젝트) | 황제낙엽 | 2003.04.21 | 945 |
36 | 열세번째날 - WEB APPLICATION | 황제낙엽 | 2003.04.15 | 824 |
35 | 열두번째날 - I/O | 황제낙엽 | 2003.04.15 | 285 |
34 | 열하나째날 - 스레드 | 황제낙엽 | 2003.04.15 | 330 |
33 | 열번째날 - 애플릿과 그래픽 | 황제낙엽 | 2003.04.15 | 617 |
32 | 아홉째날 - SWING | 황제낙엽 | 2003.04.15 | 544 |
31 | 여덟째날 - 예외처리 | 황제낙엽 | 2003.04.14 | 527 |
30 | 일곱째날 - EVENT | 황제낙엽 | 2003.04.14 | 245 |
29 | 여섯째날 - AWT | 황제낙엽 | 2003.04.14 | 628 |
» | 다섯째날 - Collection, String, StringBuffer | 황제낙엽 | 2003.04.14 | 562 |
27 | 넷째날 - 추상클래스, 내부클래스, Interface, Static영역 | 황제낙엽 | 2003.04.14 | 566 |
26 | 셋째날 - 패키지, 상속, 접근제어 | 황제낙엽 | 2003.04.14 | 509 |
25 | 둘째날 - 클래스, 메서드, 연산자 | 황제낙엽 | 2003.04.14 | 482 |
24 | 첫째날 - 자바의 특징과 DATA TYPE | 황제낙엽 | 2003.04.14 | 457 |