1. 상수
변하지 않는 값으로, 한 번만 값을 저장할 수 있다.
값이 한 번 저장되면 변하지 않는다.(변수는 계속 값을 바꿀 수 있다.)
상수는 변수 선언 앞에 final을 선언하면 된다.
final int age = 25;
2. 리터럴
리터럴은 그 자체로 값을 의미하는 것으로 상수와 의미가 값다.
다만 상수는 값이 변경할 수 없기 때문에 다른 의미로 사용된다.
int age = 25;
위의 25가 리터럴이고, age는 변수다.
final String name = "이름";
위의 "이름"은 리터럴이고, name은 상수다.
3. 리터럴의 접두사, 접미사
1) 접두사(대소문자 구분 안 함)
① 리터럴의 앞에 숫자가 없으면 10진수이며, 0이 붙으면 8진수, 0x가 붙으면 16진수이다.
⒜ int i = 100; // 10진수
⒝ int i = 0100; // 8진수
⒞ int i = 0x100; // 16진수
② jdk 1.7부터 0b 가 추가되었으며, 0b가 붙으면 2진수를 의미한다.
⒜ int i = 0b100 // 2진수
2) 접미사(대소문자 구분 안 함)
① 정수형과 실수형에는 접미사가 있다.
② 정수형에는 L, 실수형에는 F, D(생략 가능)가 있다.
③ 정수형 L은 long을 말하며, 만약 100L 이면 long 타입, 100이면 int 타입니다.
④ 실수형의 F는 float이며, D는 double이다. double은 생략가능하다.
3.14면 double이며, 3.14F면 float 타입이다.
⑤ 만약 다음과 같이 선언하면 에러가 발생한다.
int의 범위는 약 20억이기 때문에 아래와 같이 100억이 선언되면 int의 범위가 초과되기 때문에 에러가 발생한다.
(L을 선언 안 하면 기본적으로 리터럴은 int형이다.)
따라서 다음과 같이 L을 붙이면 에러가 발생하지 않는다.
4. 변수와 리터럴의 타입 불일치
1) 범위가 변수 > 리터럴인 경우 문제가 없다.
long l = 123; // long 타입이 int가 크기에 문제 없다.
int i = 2000000000L // int 타입이 long보다 범위가 작기 때문에 에러가 발생한다.
'프로그래밍 > Java' 카테고리의 다른 글
10. java 기본형, 참조형 (0) | 2023.02.02 |
---|---|
9. Java 문자, 문자열 (0) | 2023.02.02 |
7. java 변수 타입 (0) | 2023.02.02 |
6. Java 변수 정리 (0) | 2023.02.02 |
5. Java 글자 출력, 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 (0) | 2023.02.02 |
댓글