1. Java list 요소를 순차적으로 저장하고 중복을 허용하는 데이터 집합입니다. java.util 패키지 내부에 있고, Collection 인터페이스의 하위 인터페이스입니다. 2. List 종류 2.1 ArrayList ArrayList는 배열을 기반으로 만들어진 자료구조입니다. 배열은 크기가 고정이지만, ArrayList는 동적으로 늘릴 수 있습니다. 검색을 할 경우 인덱스로 조회하기 때문에 속도가 빠릅니다. 데이터 추가, 삭제를 할 경우 이후의 데이터를 복사 후 재정렬하기 때문에 빈번한 추가, 삭제에는 부적합합니다. Capacity 내부적으로 저장이 가능한 메모리 용량(Capacity)이 있으며 현재 사용 중인 공간의 크기(Size)가 있습니다. 인스턴스의 capacity 값 이상을 저장하려고 ..
Java
1. Java set Set 컬렉션 클래스는 Set 인터페이스를 구현한 클래스입니다. Set 컬렉션 클래스는 요소의 저장 순서를 유지하지 않고, 같은 요소의 중복 저장을 허용하지 않습니다. 따라서 중복을 제거해야 하거나 저장 순서가 중요하지 않을 때 자주 사용하는 컬렉션 클래스입니다. 2. Map 종류 2.1 HashSet 해시 알고리즘을 사용하여 검색 속도가 빠르고, 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장합니다. HashSet은 요소를 삽입할 때 이미 존재하는 요소인지 파악하기 위해 내부적으로 다음과 같은 과정을 거칩니다. 해당 요소에서 hashCode() 메서드를 호출해 반환된 해시 값으로 검색할 범위를 결정한다. 해당 범위 내의 요소들을 equals() 메서드로 비교한다. Set ..
1. Java map Java에서 Map 인터페이스는 java.util 패키지에 있으며 키와 값 간의 매핑을 나타냅니다. Collection 인퍼페이스와는 다른 저장방식을 가집니다. 맵은 사전과 같은 키-값 연결 매핑에 사용하기에 완벽합니다. 맵은 키로 조회를 수행하거나 키로 요소를 검색하고 업데이트하려고 할 때 사용됩니다. 2. Map 특징 맵은 중복 키를 포함할 수 없으며 각 키는 최대 하나의 값에 매핑할 수 있습니다. 저장 순서는 특정 구현에 따라 다릅니다. TreeMap과 LinkedHashMap은 예측 가능한 순서가 있지만, HashMap에는 순서가 없습니다. Java에서 map을 구현하기 위한 두 가지(Map, SortedMap) 인터페이스와 세 가지 클래스(HashMap, TreeMap 및 ..
1. JVM 이란? Java 프로그램이 실행되기 위해 필요한 런타임 환경을 제공하는 프로그램입니다. C와 같은 프로그래밍 언어에서는 코드는 먼저 플랫폼별 기계어로 컴파일됩니다. 이러한 언어를 컴파일 언어라고 합니다. 반면 javascript 및 python과 같은 언어에서는 컴퓨터가 코드를 컴파일하지 않고 직접 실행합니다. 이러한 언어를 인터프리터 언어라고 합니다. Java는 두 기술을 조합하여 사용합니다. 소스 코드는 먼저 바이트 코드로 컴파일 되어 클래스 파일을 생성합니다. 이 클래스 파일은 기본 플랫폼에 대한 JVM에 의해 해석됩니다. 모든 플랫폼 및 운영 체제에서 실행되는 모든 버전의 JVM에서 동일한 클래스 파일을 실행할 수 있습니다. 2. JVM의 동작 방식 자바 프로그램을 실행하면 JVM은 ..