728x90
배열과 링크드 리스트의 차이
배열
- 데이터 입력이 순차적으로 이루어지며, 물리적 주소 또한 순차적이다.
- 인덱스가 있어 원하는 데이터에 한 번에 접근 가능하기 때문에 데이터 접근 속도가 매우 빠르다.
- 데이터 삽입, 삭제에 취약하다.배열 특성상 데이터 삽입, 삭제가 이루어지면 해당 위치의 다음 순서의 데이터의 위치 변경이 이루어지기 때문이다.
- 배열의 크기가 처음에 결정되어서(unresizable) 변경이 불가능하다.
링크드 리스트
- 인덱스를 가지고 있는 배열과는 다르게 리스트는 인덱스 대신 현재 위치의 이전 및 다음 위치에 대한 정보가 있다.
- 데이터 접근 시 연결되어 있는 링크를 따라가야 하기 때문에 배열에 비해 속도가 떨어진다.
- 데이터 삽입, 삭제는 논리적 주소만 바꿔주면 되기 때문에 용이하다.
- 언제든지 메모리 할당/해제를 해서 크기를 변경할 수 있다.(resizable)
- 데이터 입력이 논리적 순서로 이루어지며 물리적 주소는 순차적이지 않다.
Call By value와 Call By Reference 차이
Call By Value
값에 의한 호출이며 함수 호출 시 전달되는 변수의 값을 복사하여 함수의 인자로 전달한다. 복사된 인자는 함수 안에서 사용되는 지역 함수이다. 인자의 데이터 타입이 기본 자료형 : int, short, long, float, double, char, boolean
Call By Reference
참조에 의한 호출이며 복사하지 않고 직접 참조를 하기 때문에 속도가 빠르다. 하지만 원래 값이 영향을 받는다. 인자의 데이터 타입이 참조 자료형 : Array, Class Instance
728x90
'CS' 카테고리의 다른 글
스케일 업,스케일 다운 (0) | 2022.11.12 |
---|---|
웹브라우저 공격 (0) | 2022.11.02 |
String,StringBuillder,StringBuffer (0) | 2022.10.26 |
객체지향 (0) | 2022.10.25 |
객체 지향 설계 5원칙 SOLID (0) | 2022.10.20 |