Type of variable
JAVA에는 크게 Primitive type과 Reference Type의 변수가 있다는 것은 모두들 당연하게 알고 있을 것이다. 지금 부터는 P와 R이라고 간단하게 줄여서 부르도록 하겠다.
우선 P는 data를 실제 값으로 저장한다.
반면에 R은 data를 저장하는 것이 아니고 주소를 값으로 갖고 있다. 참고로 이 주소 값은 JVM에 의한 심볼릭 Reference이다.
C언어에서는 R type의 변수 간의 연산이 가능 했었다. (ex. <<, operator 연산)
하지만 JAVA는 R type의 변수 간 연산이 불가능 하다 따라서 실제 연산에 사용되는 것은 모두 P type 변수가 하는 것이다.
또 하나 집고 넘어가야하는 것이 있다.
다음을 보자.
여기서 ex라는 R type 변수는 몇 바이트의 크기를 같는 변수인가?
byte(1) + short(2) + char(2) + int(4) + float(4) + double(8) = 21 byte 인가?
답은 4 byte이다. 위에서 R type 변수는 주소를 갖는 변수라고 했다. 따라서 주소를 담는
크기 4 byte가 되는 것이다.
우선 P는 data를 실제 값으로 저장한다.
반면에 R은 data를 저장하는 것이 아니고 주소를 값으로 갖고 있다. 참고로 이 주소 값은 JVM에 의한 심볼릭 Reference이다.
C언어에서는 R type의 변수 간의 연산이 가능 했었다. (ex. <<, operator 연산)
하지만 JAVA는 R type의 변수 간 연산이 불가능 하다 따라서 실제 연산에 사용되는 것은 모두 P type 변수가 하는 것이다.
또 하나 집고 넘어가야하는 것이 있다.
다음을 보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Example { byte b; short s; char c; int i; float f; double d; }; public class test{ public static void main(String[] args){ Example ex = new Example(); } } |
여기서 ex라는 R type 변수는 몇 바이트의 크기를 같는 변수인가?
byte(1) + short(2) + char(2) + int(4) + float(4) + double(8) = 21 byte 인가?
답은 4 byte이다. 위에서 R type 변수는 주소를 갖는 변수라고 했다. 따라서 주소를 담는
크기 4 byte가 되는 것이다.