[JAVA] 03. 네 변수를 알라 (원시 변수와 레퍼런스)
변수의 종류
. 원시 변수(=primitive variable) : int, float, double과 같은 기본값이 담긴다.
. 객체 레퍼런스(=object reference) : String, !MyClass와 같은 객체에 대한 래퍼런스가 담긴다.
스타벅스 컵 size
. small : 240ml
. tall : 360ml
. grande (그란데) : 480ml
부울과 문자형 원시변수
. boolean : JVM 마다 다름 = true, false
. char : 2의 4승 비트 = 16 비트 = 16비트 = 0 ~ 65535
정수형 원시변수 (unsigned는 없음. 모두 signed)
. byte : 2의 3승 비트 = 8 비트 = 부호비트 + 7비트 = -128 ~ + 127
. short : 2의 4승 비트 = 16 비트 = 부호비트 + 15비트 = -32,768 ~ + 32,767
. int : 2의 5승 비트 = 32 비트 = 부호비트 + 31비트 = -2,147,483,648 ~ + 2,147,483,647
. long : 2의 6승 비트 = 64 비트 = 부호비트 + 63비트 = -9,223,372,036,854,775,808 ~ + 9,223,372,036,854,775,807
. -로 1이 더 있는 이유(byte를 예로) : +0~+127 = 128개, -0~-127 = 128개, 0이 두번이기에 -0을 -128로 사용
실수형 원시변수
. float : 2의 5승 비트 = 32 비트 = 범위가 바뀔 수 있음.
. double : 2의 6승 비트 = 64 비트 = 범위가 바뀔 수 있음.
변수 사용 시, 에러 발생의 예
int x = 24;
byte b = x; //error : 큰컵을 작은컵에 넣으려 하면, 컴파일러는 무조건 넘칠 것으로 예상하고 에러 발생.
클래스명, 메소드명, 변수명
. 첫글자 : 알파벳, 밑줄, 달러기호 (숫자 불가)
. 두번째 부터는 맘데로..
. 예약어 불가 : native, strictfp, synchronized, transient, volatile, assert, goto