본문 바로가기

JAVA37

프로세스와 쓰레드 프로세스 실행중인 프로그램 프로그램을 실행하면OS로 부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 됩니다. 모든 프로세스에는 최소 하나 이상의 쓰레드가 존재합니다 둘이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스' 라고 합니다. 프로세스가 가질 수 있는 쓰레드의 개수는 제한되 었지 않습니다 메모리 공간(호출스택)을 필요로 하기 때문에 메모리 한계에 따라 생성할 수 있는쓰레드의 수가 결정됩니다. 멀티쓰레딩의 장점 cpu의 사용률을 향상시킵니다 자원을 보다 효율적으로 사용할 수 있습니다 사용자에 대한 응답성이 향상됩니다 작업이 분리되어 코드가 간결해집니다. 멀티쓰레딩의 단점 프로세스 내에서 자원을 공유하면서 작업하기 때문에 발생할 수 있는 동기화,교착상태,기아(굶어죽는거)같은 문제들을 고려해야.. 2023. 2. 24.
제네릭,열거형 제네릭 다양한 타입의 객체를 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크,객체나입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄일수있게 도와줍니다 제네릭의 장점 타입 안전성을 제공 타입체크와 형변환을 생략할 수 있으므로 코드가 간결 제네릭 클래스의 선언 제네릭 타입은 클래스와 메서드에서 선언할수 있습니다. 클래스에서 제네릭 선언 class Box { T item; void setItem(T item) {this.item = item;} T getItem() {return item} } 상황에 맞게 의미있는 문자를 선택해서 사용하는 것이 좋습니다 기호의 종류만 다를 뿐 '임의의 참조형 타입'을 의미한다는 것은 모두 같습니다. Box b = new Box(); /.. 2023. 2. 24.
컬렉션 클래스 정리&요약 2023. 2. 24.
hashSet,TreeSet,HashMap,Hashtable,Collections 해싱과 해시함수 해시함수(hash function)를 이용해 저장하고 검색하는 기법입니다. 해시 테이블(Hash Table) hashSet 중복된 요소를 저장하지 않습니다. 저장순서를 유지하고자 한다면 LinkedHashSet을 사용해야 합니다. class Ex11_9 { public static void main(String[] args) { Object[] objArr = {"1",new Integer(1),"2","2","3","3","4","4","4"}; Set set = new HashSet(); for(int i=0; i < objArr.length; i++) { set.add(objArr[i]); // HashSet에 objArr의 요소들을 저장한다. } // HashSet에 저장된 요소들.. 2023. 2. 24.