[CS] Q4. 값 형식과 참조 형식의 차이에 대해 설명해주세요.
1. 값형식(Value Type)
- 변수가 값을 담는 데이터 형식
- 데이터를 스택(Stack)에 메모리를 할당
2. 참조형식(Reference Type)
- 변수가 값 대신 값이 있는 곳의 주소값을 담는 데이터 형식
- 데이터를 힙(Heap)에 메모리를 할당 (힙 메모리의 주소를 스택에 저장)
[Android] Q4. val 과 var 의 차이는?
val
: 선언한 변수를 수정 할 수 없다
var
: 선언한 변수를 수정 할 수 있다.
1. val(Value)
val
로 선언된 변수는 불변(immutable)
- 읽기 전용 변수(Read-Only-Property)
- 한번 초기화한 변수는 값을 변경 할 수 없다.
2. var(Variable)
var
로 선언된 변수는 가변(mutable)
- 값을 재할당 할 수 있다.
3. 성능과 안정성
val
은 불변성의 특성을 가지고 있기 때문에 변수의 상태를 제거하여 일관성, 복잡성의 문제를 제거
- 이를 통해 코드의 안정성과 예측성을 높일 수 있다.
- 여러 스레드에서 동시에 접속해도 값이 변경되지 않기 때문에 스레드 안정성 측면에서 장점이 존재한다.