JCF (Jave Collection Framework)
ULM표기법
Interface상위로 class가 올 수는 없다.
Collection(interface) / Map(interface)
list(interface)에서 상속받는 vector(class)와 arraylist(class) 관계 : 점선
상속 표기를 할때 화살촉을 닫아줘야함.

collection framework : 크기 조절 가능
collection : 값(value)만 저장
add() : 추가
size() : 저장된 자료의 갯수만 반환
remove(): 자료 삭제
List : 배열처럼 인덱스가 제공됨. 중복 데이터 저장 가능. 순차적으로 저장 가능
- list.get(0);
- list.remove(0);
.
get ()
ArrayList : Thread에 동기화 안 되어있음. 추가/수정/삭제 속도 빠름.
Vector : Thread에 동기화 되어있음 (lock). 추가/수정/삭제 속도 느림.
Set : 인덱스 제공 안 함. (자료구조로 보기는 힘들다). 중복 저장 불가. 순차 저장 허용안함.
-Iterator() : 값을 검색할 때
HashSet: Hashcode 값으로 검색
TreeSet: 정렬
Map : 키, 값 저장
빠르게 값을 찾기 위해 key를 같이 저장. key는 유일한 값으로 식별가능해야 하므로 고유해야 한다 (중복x)
인덱스 제공 안 됨. 순차적으로 저장 불가. key를 다시 저장하면 값을 덮어씌워 저장하게 됨.
-put() : 추가할때
-remove(): 자료 삭제
-size() : 자료의 갯수 반환
-get() : Key조회
Hashtable :Thread에 동기화 되어있음. 속도 빠름. HashCode key로 검색
HashMap : Thread에 동기화 안 되어있음. 속도 느림. HashCode key로 검색
TreeMap : 정렬


String 클래스
객체 내용 불변. +연산을 만나면 새로운 메모리가 만들어짐.
메모리 낭비가 심하다
String Builder 클래스
객체 하나만 사용. 사용법이 불편 (리터럴 활용X, 결합 연산자 사용불가)
StringTokenizer 클래스
문자로 구분.

포장클래스
박싱은 왜 해야할까?
java collection framework에서는 자료를 참조형만 관리할 수 있다.
기본형->참조형 (Boxing)
참조형이 필요한 곳에 기본형 대입을 할 수 없으니 박싱을 통해 형변환을 해주는 것임.
o = i;
o = new Integer(i)
참조형->기본형 (Unboxing)
i = o;
obj.intValue( )


어노테이션
@로 작성되는 요소. 컴파일, 실행 타입에 영향을 미치는 주석
comment
컴파일, 실행 타입에 영향을 미치지 않는 주석
롬복
자동 코드 생성 라이브러리.
Getter, Setter, hasCode( ), equals( ), toString( )
'개발 공부 > JAVA' 카테고리의 다른 글
thread (2) | 2023.06.09 |
---|---|
입출력 (InputStream/Reader), file 라이브러리 (2) | 2023.06.08 |
java 예외 (0) | 2023.05.31 |
java 추상 클래스 / 인터페이스/ 중첩클래스 (0) | 2023.05.31 |
상속 (형변환/다형성/overriding) (0) | 2023.05.30 |