📌 상수
- 한 번만 값이 저장 가능한 변수
- 숫자에 의미있는 이름을 붙여 코드 자체에 가독성을 늘리기 위해 상수 사용
final 변수타입 변수이름;
class Variable2_1 {
public static void main(String[] ages) {
int score = 100;
System.out.println("score = " + score);
score = 90;
System.out.println("score = " + score);
fonal int finalScore = 100;
System.out.println("finalScore = " + finalScore);
}
}
📌 리터럴
- 그 자체로 값을 의미하는 것
- 기존의 상수와 같은 의미이지만 Java에서 상수를 '한 번만 갑이 저장 가능한 변수'라는 의미로 사용하기 때문에 구별하기 위해 사용하는 언어임
📌 변수, 상수, 리터럴 구별
class Variable2_2 {
public static void main(String[] args) {
int score = 100;
final int finalScore = 1000;
}
}
📌 리터럴의 접두사와 접미사
- 리터럴에 붙이는 접미사는 정수형의 L, 실수형의 f만 주의하면 된다.
- 접미사는 대소문자를 구별하지 않지만 L의 소문자 l은 숫자 1과 혼동되기에 대문자를 사용하는 것을 권장함
- 0b, 0x 와 같은 진수를 나타내는 접두사 또한 대소문자를 구별하지 않음
📍 정수형은 byte, short, int, long 타입으로 여러개 존재
- 정수형의 int, 실수형의 double은 기본형이기에 접미사를 붙이지 않음
- long타입은 구분을 위해 100L처럼 리터럴 마지막에 접미사로 L을 붙임
📍 실수형은 float, double 타입이 존재
- float의 리터럴에는 f, double 리터럴에는 d가 붙음
- 실수형은 2개 밖에 존재하지 않아 접미사 f를 사용하면 구분할 수 있어서 접미사 d는 생략을 허용함
class Variable2_3 {
public static void main(String[] args) {
boolean flag2 = false;
char grade3 = 'A';
char ch = '\n';
String str = "C";
String name3 = "choi";
byte val2 = 127;
short sval = 128;
int ob = 0b0101;
int i = 100;
int oct = 0100;
int hex = 0x100;
long price = 2_147_483_648L;
long l2 = 100;
float tax2 = 3.14f;
double score1 = 3.14159265358979;
double score2 = 3.14159265358979d;
float f1 = 10f;
double d1 = 10.;
double d2 = .10;
double d3 = 1e3;
double d4 = -1e3;
}
}
📌 변수와 리터럴의 타입 불일치
- 범위가 '변수 > 리터럴' 인 경우 : OK
- 범위가 '변수 < 리터럴' 인 경우 : Error
- byte, short 변수에 int 리터럴 저장 : OK (단, 변수의 타입 범위 이내여야함)