2025/05/10(3)
-
Java와 JavaScript의 배열 차이점
주요 차이점 표특성Java 배열JavaScript 배열타입동일 타입만 저장 가능다양한 타입 혼합 저장 가능크기고정 크기동적 크기메모리연속된 메모리 할당해시 테이블 기반선언 방식타입 명시 필수타입 명시 불필요다차원 배열정규적인 구조 필수불규칙한 구조 가능길이 변경불가능가능 (push, pop 등)코드 비교 예시// Javaint[] numbers = new int[3];numbers[0] = 1;numbers[1] = 2;numbers[2] = 3;// numbers[3] = 4; // 에러 발생// JavaScriptlet numbers = [];numbers[0] = 1;numbers[1] = "two"; // 다른 타입 가능numbers[2] = true; // 다른 타입 가능numbers[3]..
2025.05.10 -
배열 크기 조정의 비효율성
1. 메모리 낭비// 기존 배열[1][2][3][4][5][6][7][8][9][10] // 40바이트// 새 배열 생성 시[1][2][3][4][5][6][7][8][9][10][][][][][][][][][][] // 80바이트// 실제 사용하지 않는 공간이 많이 생김2. 성능 이슈- 새 배열 생성 시간- 데이터 복사 시간- 기존 배열 메모리 해제 시간3. 해결 방안들:// 1. 초기 용량을 적절히 설정ArrayList list = new ArrayList(100); // 처음부터 크게// 2. 증가 비율 조절 (ArrayList는 1.5배씩 증가)int newCapacity = oldCapacity + (oldCapacity >> 1);// 3. LinkedList 사용// 동적 크기 조절이 필요..
2025.05.10 -
ArrayList와 LinkedList의 주요 차이점
구조적 차이//ArrayList의 메모리 구조[1][2][3][4][5] // 연속된 메모리특징:- 데이터가 메모리에 연속적으로 저장됨- 예: 1이 1000번지, 2가 1004번지, 3이 1008번지...- 각 데이터는 정해진 크기의 메모리 공간을 가짐- 인덱스로 직접 접근 가능 (메모리 주소 = 시작주소 + (인덱스 × 데이터크기))//LinkedList의 메모리 구조[데이터1|다음주소] → [데이터2|다음주소] → [데이터3|다음주소]실제 메모리:[1|500번지] → [2|900번지] → [3|300번지] → [4|750번지](100번지) (500번지) (900번지) (300번지)특징:- 각 노드가 데이터와 다음 노드의 주소를 저장- 메모리 상 불연속적으로 저장 가능- 다음 ..
2025.05.10