Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- MVC
- 클래스 class
- side project
- 패스트캠퍼스
- Java
- 클래스 상속
- Entity
- Sts
- array
- 개발자취업부트캠프
- AWS
- tomcat
- 국비지원교육
- spring boot
- group study
- MVC 패턴
- 내일배움카드
- #javaStudy
- Interface
- 게시판 리뷰 만들기
- 메가바이트스쿨
- 게시판 만들기
- GIT
- View
- MegabyteSchool
- github
- #패스트캠퍼스 #국비지원교육 #메가바이트스쿨 #MegabyteSchool #개발자취업부트캠프 #내일배움카드
- Algorism study
- Spring
- crud
Archives
- Today
- Total
tuter77
자료구조/알고리즘 자바의 데이터 표현. 본문

Primitive type(기본형) : byte, short, int, long, float, double, char, boolean
Rapper Class type : 위 기본형 자료구조를 Reference 형으로 표현할 수 있도록 해주는 형태(ex. Byte, Integer 등.)
Reference type : 기본형을 제외한 나머지 자료구조(ex. String) // Object type이라고 부르기도 한다.
위 타입들은 컴퓨터 메모리에서 존재하는 방식이 다르다.
기본형은 call by value로 메모리에 존재하며,
void main(){
int v = 42;
System.out.println(v); //42
method(v);
System.out.println(v); //42
}
void method(int v){
v=v*2;
}
위의 예시에서 보면 v가 가리키는 메모리는 기존에 저장되어있는 42라는 값자체이다.
때문에 method에서 v값을 두배로 해줘도 method가 끝나면 똑같이 42가 출력된다. (즉, method에 매개변수로 전달된 v는 42라는 값뿐이기때문에 42라는 값이 메모리에서 사라진 후 84로 변경되어 저장되지 않는 것을 알 수 있다.)
반면, 참조형예시로 보면 call by reference로 메모리에 존재하는데
void main(){
Data v = new Data();
v.d = 42; //v안의 d를 가리킴.
System.out.println(v); //42
method(v);
System.out.println(v); //84
}
void method(Data v){
v.d = v.d*2;
}
class Data{
int d;
}
v가 주소를 통해 메모리를 가리키고 있기때문에 같은 v를 가리킨다.
heap 메모리에 저장된 v라는 참조형은 주소를 통해 저장된 데이터가 변할 수 있으므로, method내에서 변경된 d값이 적용되는 것을 볼 수 있다.
'Algorism TIL' 카테고리의 다른 글
| 자료구조/알고리즘 시간복잡도 (1) | 2023.02.10 |
|---|---|
| 2023.01.01 알고리즘 현재까지 한것. (0) | 2023.01.01 |
| 2022.12.23 프로그래머스 (0) | 2022.12.23 |
| 22.12.21 TIL(백준 입출력) (0) | 2022.12.21 |