본문 바로가기
프로그래밍/Java

8. Java 상수, 리터럴

by 꼼꼼한 에프큐피 2023. 2. 2.

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

댓글


"); wcs_do();