728x90
[기본 개념] 8 | (1.1) 프로세스, 스레드, Start( ), Run( ), 싱글/멀티 스레드1> 프로세스와 쓰레드2> 쓰레드의 구현과 실행3> start( )와 run( )4> 싱글쓰레드와 멀티쓰레드5 쓰레드의 우선순위6 쓰레드 그룹(thread group)7 데몬 쓰레드(daemon thread)8 쓰레드의 실행제어9 쓰레드의 동기화 9.1 synchronized를 이용한 동기화 9.2 wait( )와 notify( ) 9.3 Lock과 Condition을 이용한 동기화 9.4 volatile 9.5 fork & join 프레임웍1. 프로세스와 쓰레드 프로세스란 '실행 중인 프로그램'이다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스..
[기본 개념] 7 | (1.2) 와일드 카드, 지네릭 메서드, 지네릭 타입 제거1 지네릭스란?2 지네릭 클래스의 선언3 지네릭 클래스의 객체 생성과 사용4 제한된 지네릭 클래스5> 와일드 카드6> 지네릭 메서드7> 지네릭 타입의 제거5. 와일드 카드 매개변수에 과일박스를 대입하면 주스를 만들어서 반환하는 Juicer라는 클래스가 있다고 하자. 그러면 Juicer클래스는 지네릭 클래스가 아니고, static메서드는 타입 매개변수 T를 사용할 수 없으므로 'FruitBox'과 같이 특정 타입을 지정해야 한다. 이렇게 고정하면 'FruitBox'타입의 객체는 매개변수가 될 수 없으므로 다음과 같이 여러 타입의 매개변수를 갖는 makeJuice( )를 만들어야 한다. static Juice makeJuice(..
[기본 개념] 7 | (1.1) 지네릭스 클래스1> 지네릭스란?2> 지네릭 클래스의 선언3> 지네릭 클래스의 객체 생성과 사용4> 제한된 지네릭 클래스5 와일드 카드6 지네릭 메서드7 지네릭 타입의 제거1. 지네릭스란? 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 지네릭스를 사용하면 객체의 타입을 컴파일 시에 체크하여 객체의 타입 안정성을 높이고, 형변환의 번거로움이 줄어든다. 객체의 타입을 미리 명시해줌으로써 번거로운 형변환을 줄여준다는 것이다.2. 지네릭 클래스의 선언 지네릭 타입은 클래스와 메서드에 선언할 수 있는데 우선 클래스에 선언하는 지네릭 타입을 먼저 보자. class Box { Object item ; void setItem..
[기본 개념] 6 | (1.11) Collections1 컬렉션 프레임웍의 핵심 인터페이스2 ArrayList3 LinkedList4 Stack과 Queue5 Iterator, Listlterator, Enumeration6 Arrays7 Comparator와 Comparable8 HashSet9 TreeSet10 HashMap과 Hashtable11 TreeMap12 Properties13> Collections14> 컬렉션 클래스 정리 & 요약13. Collections컬렉션의 동기화 데이터의 일관성을 유지하기 위해서 공유되는 객체에 동기화가 필요하다. 구버전의 클래스들은 자체적으로 동기화가 되므로 멀티쓰레드 프로그래밍이 아니면 불필요하여 성능을 떨어뜨린다. 그래서 새로 추가된 ArrayList와 H..
[기본 개념] 6 | (1.10) TreeMap, Properties1 컬렉션 프레임웍의 핵심 인터페이스2 ArrayList3 LinkedList4 Stack과 Queue5 Iterator, Listlterator, Enumeration6 Arrays7 Comparator와 Comparable8 HashSet9 TreeSet10 HashMap과 Hashtable11> TreeMap12> Properties13 Collections14 컬렉션 클래스 정리 & 요약11. TreeMap TreeMap은 이진검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장하여 검색과 정렬에 적합한 컬렉션 클래스이다. HashMap이 TreeMap보다 검색에 관한 대부분은 뛰어나므로 범위 검색이나 정렬이 필요한 경우 ..
[기본 개념] 6 | (1.9) HashMap, Hashtable1 컬렉션 프레임웍의 핵심 인터페이스2 ArrayList3 LinkedList4 Stack과 Queue5 Iterator, Listlterator, Enumeration6 Arrays7 Comparator와 Comparable8 HashSet9 TreeSet10> HashMap과 Hashtable11 TreeMap12 Properties13 Collections14 컬렉션 클래스 정리 & 요약10. HashMap과 Hashtable HashMap은 Hashtable의 새로운 버전이다. 따라서 HashMap을 사용하는 것을 지향한다. HashMap은 Map을 구현했으므로 키(key)와 값(value)을 묶어서 하나의 데이터(entry)로 저..
[기본 개념] 6 | (1.8) TreeSet1 컬렉션 프레임웍의 핵심 인터페이스2 ArrayList3 LinkedList4 Stack과 Queue5 Iterator, Listlterator, Enumeration6 Arrays7 Comparator와 Comparable8 HashSet9> TreeSet10 HashMap과 Hashtable11 TreeMap12 Properties13 Collections14 컬렉션 클래스 정리 & 요약9. TreeSet TreeSet은 이진검색트리(binary search tree)라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다. 정렬, 검색, 범위검색에 높은 성능이 있으며 TreeSet은 이진검색트리의 성능을 향상시킨 '레드-블랙 트리'로 구현되어 있다. ..
[기본 개념] 6 | (1.7) HashSet1 컬렉션 프레임웍의 핵심 인터페이스2 ArrayList3 LinkedList4 Stack과 Queue5 Iterator, Listlterator, Enumeration6 Arrays7 Comparator와 Comparable8> HashSet9 TreeSet10 HashMap과 Hashtable11 TreeMap12 Properties13 Collections14 컬렉션 클래스 정리 & 요약8. HashSet HashSet은 Set인터페이스를 구현한 가장 대표적인 컬렉션이며, Set인터페이스 특징처럼 중복된 요소를 저장하지 않는다. 그리고 HashSet은 저장순서를 유지하지 않으므로 저장순서를 유지하고 싶으면 LinkedHashSet을 사용해야 한다. ad..