JVM 구조
자바의 메모리 구조 메서드 영역(Method Area) 프로그램을 실행하는데 필요한 공통 데이터를 관리 프로그램 모든 영역에서 공유 스택 영역(Stack Area) 스레드 별로 하나의 실행 스택이 생성 스택 프레임은 지역 변수, 중간 연산 결과, 메서드 호출 정보...
자바의 메모리 구조 메서드 영역(Method Area) 프로그램을 실행하는데 필요한 공통 데이터를 관리 프로그램 모든 영역에서 공유 스택 영역(Stack Area) 스레드 별로 하나의 실행 스택이 생성 스택 프레임은 지역 변수, 중간 연산 결과, 메서드 호출 정보...
멀티 태스킹 단일 CPU에서 동시에 여러 작업을 수행하는 것을 의미 소프트웨어 기반으로 CPU 시간을 분할하여 각 작업해 할당 CPU에서 어떤 프로그램이 얼마만큼 실행 될지는 운영체제가 결정하는데 이를 스케줄링 이라고 합니다. 멀티 프로세싱 여러 CPU가 물리적으로 동시에 작업을 처리하는 것을 의미 하드웨어 기반으...
데이터를 정렬할 때 사용하는 인터페이스 Comparable: “비교 할 수 있는” 이라는 뜻 Comparator: “비교자” 라는 뜻 주요 메서드 public interface Comparable<T> { public int compareTo(T o); } public interface Comparator<T&g...
데이터를 순회할 때 사용하는 인터페이스 Iterable: “반복 가능한” 이라는 뜻 Iterator: “반복자” 라는 뜻 주요 메서드 public interface Iterable<T> { Iterator<T> iterator(); } iterator(): Iterator 반복자 반환 public...
Stack LIFO(Last In First Out): 후입 선출 성능이 좋지 않아 사용하지 않습니다. 대신 Deque를 사용하면 됩니다. Queue FIFO(First In First Out): 선입 선출 Deque Stack, Queue의 기능을 모두 사용할 수 있는 자료구조 offerFi...
Map 이란? key, value를 쌍으로 가지고 있는 자료구조 key는 Set과 동일 (Set 참조) 따라서 HashMap, LinkedHashMap, TreeMap의 구현체가 있음 key는 중복을 허용하지 않는 반면 value는 중복 허용 Map 상속 구조 Map은 컬렉션 프레임워크지만...
Set 이란? 중복을 허용하지 않고 순서를 보장하지 않는 자료구조입니다. Set 상속 구조 HashSet 해시 자료 구조를 사용해서 요소를 저장 순서 보장 X 중복 허용 X 평균 O(1) 시간 복잡도를 가짐 데이터의 유일성만 중요하고, 순서가 중요하지 않은 경우 사용합니다. LinkedHashSet H...
HashSet 순서 보장 X 중복 허용 X 조회, 수정, 삭제를 거의 O(1)로 가능 HashSet은 Set의 구현체 중 하나입니다. 직접 구현 public class MyHashSetV1 { static final int DEFAULT_INITIAL_CAPACITY = 16; LinkedList<Integ...
문자열 해시코드 문자열을 index 에 넣을 수 없으므로 숫자로 변환을 해주어야 합니다. 문자열은 문자로 이루어져있고 문자는 아스키 코드를 통해 숫자로 변환할 수 있습니다. 예시 코드 public class StringHashMain { static final int CAPATICY = 10; public static void main...
해시 알고리즘을 사용하면 데이터를 찾는 검색 성능을 평균 O(1) 성능으로 끌어올릴 수 있습니다. Index 사용 배열은 index 위치로 데이터를 찾을 때는 O(1) 성능을 보이지만 검색할 때는 O(n)의 성능을 보여줍니다. 만약 검색도 index를 통해 할 수 있다면 O(1)의 성능으로 끌어올릴 수 있을 것입니다. 데이터 값 자체를 배열의 ...