본문 바로가기
반응형

언어14

[java] Map-HashMap, LinkedHashMap, TreeMap ✅ 자바 Map 인터페이스 주요 구현체 비교 구분 HashMapLinkedHashMapTreeMapHashtable (레거시)기본 구조해시 테이블해시 테이블 + 입력 순서 유지이진 검색 트리 (Red-Black Tree)해시 테이블정렬 여부❌ 없음 (순서 불확정)✅ 입력한 순서 유지✅ 키 기준 자동 정렬 (Comparable or Comparator)❌ 없음 (순서 불확정)null 허용 여부✅ null 키 1개, null 값 여러 개 허용✅ 동일❌ null 키 허용 안 함❌ null 키/값 모두 허용 안 함동기화 (Thread-safe)❌ 비동기화❌ 비동기화❌ 비동기화✅ 내부적으로 동기화됨 (성능 낮음)성능빠름 (O(1) 평균)약간 느림 (순서 관리 비용)느림 (O(log N))가장 느림레거시 여부✅ .. 2025. 5. 2.
[java] Set-HashSet, LinkedHashSet, TreeSet Set은 배열을 중복제거하고 싶을 때 사용한다.Set에 추가하려면 add하면 된다. 구분 HashSet LinkedHashSetTreeSet중복 제거✅ 가능✅ 가능✅ 가능정렬 순서 유지❌ 순서 없음 (무작위)✅ 입력한 순서 유지✅ 오름차순속도O(1)로 보통 더 빠름O(1)로 약간 느림 (순서 유지 오버헤드)O(log N) (이진 트리 기반)사용 목적순서 상관없는 중복 제거중복 제거 + 입력 순서 유지 필요 시 정렬된 집합이 필요할 때 (예: 순위, 정렬 출력) 중복제거 (순서필요)예시:import java.util.*;String[] arr = {"apple", "banana", "apple", "orange", "banana"};Set set = new LinkedHashSet(Arrays.asLi.. 2025. 5. 2.
[java] switch/case 문 switch/case 구조문:switch(입력변수) { case 입력값1: ... break; case 입력값2: ... break; ... default: ... break;}if-else if-else문을 switch문으로 바꿀 수 있다.break를 쓰면 해당 case만 실행하고 swich문을 빠져나가고, 만약 break를 쓰지 않는다면 참인 것 아래 case들 다 실행된다.default문은 생략가능하고 사용할 시 case문을 실행하고 마지막으로 무조건 실행된다. Java에서 switch 문에서 break 문이 있을 때와 없을 때의 동작 차이✅ break가 있을 때int num = 2;switch (num) { case 1: .. 2025. 5. 2.
[java] 이클립스 단축키 모음 Ctrl + D : 한줄삭제Ctrl + Alt + ↑, ↓ : 한줄 위 또는 아래로 복붙 Alt + ↑, ↓ : 행 이동Ctrl + I : 자동 줄 맞춤Ctrl + / : 한줄 주석 처리Ctrl + F11 : 실행(Run)Ctrl + Shift + O : 자동 import(필요한 패키지 추가)F11 : 디버깅Ctrl + Shift + B: 토글 브레이크포인트 2025. 5. 2.
[java] 삼항연산자 Java에서는 if-else문을 삼항연산자를 통해 한 줄로 코드를 작성할 수 있다.먼저, 삼항연산자의 구조는 아래와 같다.조건식 ? 참일때값 : 거짓일때값;예시:int number = 4;String result = (number % 2 == 0) ? "짝수" : "홀수";System.out.println(result); // 짝수 Java에서는 if-else if-else if-else와 같은 다중 if문을 중첩삼항연산자를 통해 한 줄로 코드를 작성할 수도 있다.중첩 삼항 연산자 구조:조건1 ? 반환값1 : 조건2 ? 반환값2 : 조건3 ? 반환값3 : 기본값;예시:int score = 85;String grade = (score >= 90) ? "A" : (score >= .. 2025. 4. 9.
[java] JVM 동작 방식 및 메모리 구조 일반적으로 대부분의 컴파일러는 컴파일과정을 통해 기계어로 작성된 실행 프로그램을 생성한다. 하지만 JAVA는 이와 달리 OS와 독립적인 특징으로 인해, 컴파일 과정에서 기계어가 아닌 바이트 코드로 작성된 .class 파일을 생성한다. 그렇다면 기계어로 번역하는 역할은 자바에서 누가 할까? 그것이 바로 JVM(Java Virtual Machine)의 역할이다.JVM은 OS와 프로그램 사이에서 컴파일과정을 통해 생성된 바이트코드(.java -> .class)를 기계어로 번역해주는 역할을 한다. 이 자세한 과정에 대해 알아보자.JVM 동작 방식개발자가 자바 소스코드(.java)를 작성한다.Build 라는 작업을 통해 자바 컴파일러의 javac 라는 명령어로 바이트코드인 .class 파일을 생성한다.컴파일된 바.. 2024. 12. 23.
반응형