변수란, 하나의 값을 저장할 수 있는 메모리 공간이다.
변수에는 보통 하나의 값만 저장, 한 가지 타입의 값만 저장 가능
변수를 사용하기 위해선, 타입과 변수 이름을 결정 후 선언 한다.
- 변수 명명 규칙
- 첫 번째 글자는 문자이거나 $, _ 이어야하고 숫자로 시작할 수 없다. (필수)
- 영어 대소문자가 구분된다. (필수)
- 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 대문자로 한다. (관례)
- 문자 수 제한 없다.
- 자바 예약어는 사용 불가 (필수)
- ex) 데이터 타입, 접근 지정자, 조건문, 객체-클래스 와 관련된 것 등
변수 선언, 저장, 읽는 행위
-
정수 리터럴 (byte, char, short, int, long)
- 소수점이 없는 정수 리터럴은 10진수로 간주
- 0으로 시작되는 리터럴은 8진수로 간주
- 0X 또는 0x로 시작하고 0~9나 A, B, C, D, E, F 또는 같은 문자 소문자로 구성된 리터럴은 16진수로 간주
-
실수 리터럴 (float, double)
- 소수점이 있는 리터럴은 10진수 실수로 간주
- E 또는 e가 있는 리터럴은 10진수 지수와 가수로 간주 (5E7 = 5 * 10^7)
-
문자 리터럴 (char)
- 작은 따옴표로 묶은 텍스트는 하나의 문자 리터럴로 간주
- 여러 escape 문자 존재 ( \t, \n, \r, ... , \ 등 )
-
문자열 리터럴 (String)
- 큰 따옴표롤 묶은 텍스트는 문자열 리터럴로 간주
- escape 문자를 문자열 내부에서도 사용 가능
-
논리 리터럴 (boolean)
- true, false
변수는 선언된 블록 내에서만 사용이 가능하며 선언 위치를 잘 고려
Public class example {
public static void main(String[] args) {
int v1 = 15;
if (v1>10) {
int v2 = v1 - 10;
}
int v3 = v1 + v2 + 5; error!!!! V2 선언 위치 확인
}
}
큰 크기 타입 = 작은 크기 타입 : 자동으로 타입 변환이 일어난다.
너무 당연한...
작은 크기 타입 = 큰 크기 타입 : 강제 타입 변환이 일어나지만, 큰 크기 타입이 작은 크기 타입으로 표현이 가능하다면 값이 유지될 수 있다.
즉, 강제 타입 변환이 진행될 때 변환한 값의 손실이 일어났는지, 아닌지를 주의
정수 type을 실수 type으로 변환활 때 정밀도 손실이 생길 수 있음에 주의(float인 경우, double은 손실x)
다른 타입의 피연산자가 존재할 경우, 크키가 큰 타입으로 자동 변환 후 연산 수행