1. Collection
컬렉션이란, 자료들의 모임 집합을 표현하는 자료구조 입니다. List와 Set, Map 이 존재합니다.
1-1. Array 와 List의 차이
가장 큰 차이점은 길이를 수정할 수 있는가 없는가에 있습니다.
Array는 고정길이를 가지고 있습니다. 정해진 길이의 배열을 다 채우면 새로운 데이터를 추가하고 싶은 경우 새로운 배열을 생성해야 합니다.
List의 경우 가변길이를 가지고 있습니다. 고정길이로 이루어져 있어서 정해진 길이를 벗어날 경우 새로운 배열을 생성해야하는 것과 달리, List는 추가되는 데이터의 개수에 따라 길이가 수정됩니다.
1-2. Set / List / Map
Set 은 중복요소를 저장할 수 없고 순서가 저장되지 않는 방식 입니다.
List는 중복요소를 저장할 수 있고 순서가 저장될 수 있는 방식 입니다.
Map은 Key와 Value 가 쌍으로 이루어진 구조로, Key는 중복이 저장되지 않지만 Value는 중복이 가능합니다.
2. 프로세스와 스레드
프로세스는 운영체제로부터 할당받은 자원과 같은 메모리를 가지고 실행하는 프로그램 입니다. 독자적인 메모리를 가지고 있고 프로세스 끼리 그 메모리는 공유할 수 없습니다.
스레드는 프로세스에서 자원을 가지고 실제 일을하는 일꾼과 같은 역할을 합니다. 이 덕분에 모든 프로세스는 하나 이상의 스레드를 가지고 있습니다.
3. wrapper class
기본타입인 데이터를 객체로 포장시켜주는 클래스 입니다.
기본타입에서 래퍼클래스로 변환시키는 과정을 Boxing , 래퍼클래스에서 기본타입으로 변환시키는 과정을 Unboxing이라고 합니다.
4. call by value vs call by references
call by value는 값에 의한 호출로, 함수의 매개변수에 해당하는 변수의 값을 복사해서 전달하는 방식 입니다.값을 복사해서 전달하는 방식이라, 아무리 함수 내부에서 값이 변경되어도 원본값은 변경되지 않습니다.
call by reference는 참조에 의한 호출로, 함수에 매개변수로 객체형식을 받을 때 그 주소값을 전달받는 방식입니다.주소값이 전달되는 방식이라, 함수내부에서 수정이 되면 원본 값도 수정이 됩니다.
'👩🏻💻Technical things > Questions' 카테고리의 다른 글
자바정리 (0) | 2020.08.24 |
---|---|
추상클래스 VS 인터페이스 (0) | 2020.08.11 |
[ JAVA 개념정리 ] Part 3 (인터페이스~Constructor) (0) | 2020.08.05 |
[ JAVA 개념정리 ] Part 2 (객체지향 프로그래밍) (0) | 2020.08.05 |
[ JAVA 개념정리 ] Part 1 (자바란? ~ 메모리관리) (1) | 2020.08.05 |