Java - Java 변수
변수: 값을 저장할 수 있는 메모리 공간
- 지역변수: 사용 전에 초기화 필수
- 클래스, 인스턴스 변수: 초기화 생략 가능
Java 변수 명명 규칙은 다음과 같다.
1. 숫자로 시작하면 안된다.
2. 특수문자는 _와 $만 사용 가능하다.
3. 예약어를 사용하면 안된다.
Java 변수는 기본형과 참조형으로 구분된다.
기본형 - boolean, char, byte, short, int long, float, double
참조형 - 8개의 기본형을 제외한 나머지 타입
기본형 변수에 대해 알아보자.
기본형 변수
8개의 자료형을 정리해 보면 다음과 같다.
각각에 대해 알아보자.
1. boolean
논리 자료형 boolean은 true 혹은 false를 값으로 가질 수 있으며, default값은 false이다.
이때, true와 false는 모두 소문자여야 한다.
boolean형은 가질 수 있는 값이 2가지뿐이므로 1byte를 차지한다.
1bit면 되는데 1byte를 가지는 이유 - 컴퓨터가 데이터를 다루는 최소 단위가 byte이기 때문
2. char
Java는 Unicode를 사용하므로 문자형 char는 2byte이다. 2byte는 2^16이므로 최대 65536개의 문자를 출력할 수 있다.
char tab = '\t'와 같이 이스케이프 문자를 담는 것도 가능하다.
3. byte, short, int, long
byte, short, int, long는 정수 자료형으로 숫자를 담을 수 있다.
주로 int를 사용하며 상황에 따라 long을 사용하기도 한다.
byte와 short는 사용하지 않는 것을 권장하는데, JVM의 operand stack이 피연산자를 4byte 단위로 저장하기 때문이다.
또, 이 때문에 byte와 short의 경우 4byte로 변환하는 작업이 필요해 되러 int가 효율적이다.
long을 사용할 땐 리터럴에 L 혹은 l을 붙여야 한다. 붙이지 않으면 int형으로 간주하기 때문이다.
아래 사진에서 L을 붙이지 않았을 때 오류가 잡히는 것을 알 수 있다.
소문자 l은 숫자 1과 혼동할 가능성이 있기 때문에 대문자 L을 사용하는 것을 권장한다.
2진수, 8진수, 16진수 출력은 다음과 같다. 각각 0b, 0, 0x를 붙인다.
4. float, double
float과 double은 실수 자료형이다. 각각 4byte, 8byte를 차지한다.
실수는 소수점을 가지기 때문에 컴퓨터는 정수와 다르게 부동소수점 방식으로 저장한다.
자세한 내용은 아래에서 확인할 수 있다.
float은 F 혹은 f를, double은 D 혹은 d를 붙인다. 이때, double형은 생략할 수 있다.
float의 리터럴에 접미사를 붙이지 않으면 double로 인식하는데,
4byte인 float에 8byte인 double을 담을 수 없으므로 오류로 인식한다.
float은 7자리, double형은 15자리의 정밀도를 가진다.(double의 저장 공간이 float의 약 2배이므로)