자바의 값호출 (Call Of Value)
c++에서는 new 생성자가 주소값을 반환하지만, JAVA에서는 참조값이라는 정수값을 반환한다.
참조변수는 단순히 정수형 숫자를 담을 수 있는 4바이트짜리 메모리.
- 참조값이란 객체의 메모리를 생성했을 때 메모리와 연결된 유일한 숫자값이다.
- 참조값은 'new 연산자'로만 생성할 수 있다. 따라붙는 '자료형()'은 생성자.
- 참조값으로 작업하면 내부에서 참조값에 연결된 메모리로 작업하는 것과 같은 효과이다.
- 인스턴스를 만들면 자바 실행 시스템에서 인스턴스의 실제 주소에 연결된 숫자(참조값) 하나를 준다.
- 이 숫자(참조값)를 인스턴스가 받게 되며, 인스턴스는 이 숫자(참조값)를 이용해서 해당 인스턴스의 메모리에 값을 할당하거나 메소드를 호출할 수 있다.
- 그렇기 때문에 인스턴스 메모리를 할당할 때는 4바이트의 정수값을 객체변수에 할당하게 된다. 즉 참조변수는 4바이트이다.
- 참조변수 자체는 4바이트의 메모리 생성의 의미를 담고 있다.
- 참조변수는 현재 4바이트의 메모리에 null값이 들어 있다.
- 참조변수에는 객체의 실제 메모리와 연결된 Sun형의 참조값을 넣을 수 있다.
이러한 이유에서 자바에서는 **값에 의한 호출(Call by Value)**만 존재한다.
- 참조값끼리 아무리 복사를 하더라도 객체 내부의 메모리끼리의 복사는 이루어지지 않는다.
- 참조값 복사는 값복사이다.
출처: https://dohe2014.tistory.com/entry/참조reference와-참조변수reference-variable
'old' 카테고리의 다른 글
[git] branch 생성, 사용, pull, push (0) | 2021.04.27 |
---|---|
[Javascript] 노드 삽입, 노드 추가, 복제, 스타일 가져오기 (0) | 2021.04.21 |
[이클립스] Mac 파일 인코딩 한글 깨짐 문제 해결 (0) | 2021.03.11 |
[CSS ] display: flex 속성 (0) | 2021.03.10 |
[Java] 비트맵(Bitmap), bmp fileSize 읽어 오기, read() 함수 (0) | 2021.03.04 |