728x90
반응형
SMALL
  • 상수
    • 한 번만 값이 저장 가능한 변수
    • 선언 방법 : final 변수타입 변수 이름;
    • 숫자에 의미 있는 이름을 붙여 코드 자체의 가독성을 늘리기 위해 상수를 사용
      class Variable2_1 {
          public static void main(String[] args) {
              int score = 100;
              System.out.println("score = " + score);
              score = 90;
              System.out.println("score = " + score);
      
              final int finalScore = 100;
              System.out.println("finalScore = " + finalScore);
      //         finalScore = 90; // Error 발생
          }
      }
      
    • ex) 시험의 만점은 100점이다.

리티럴

  • 리터럴
    • 그 자체 값을 의미
    • 기존의 상수와 같은 의미 단, Java에서 상수를 한번만 값이 저장가능한 변수 라는 의미로 사용하기 떄문에 구별하기 위해 사용하는 용어
  • 변수, 상수 , 리터럴 구별하기score : 변수100, 1000 : 리터럴
  • class Variable2_2 { public static void main(String[] args) { int score = 100; final int finalScore = 1000; } }
  • finalScore : 상수
  • 아래 예제코드를 사용하여 변수, 상수, 리터럴을 구별해 보겠습니다.

리터럴의 접두사와 접미사

  • 정수형은 byte, short, int, long 타입으로 여러 개 존재함
    • 정수형의 int, 실수형의 double은 기본형이기 때문에 접미사를 붙이지 않고, long 타입은 구분을 위해 100L 처럼 리터럴 마지막에 접미사로 L을 붙인다.
    • byte, short 타입의 변수도 마찬가지로 리터럴 접미사가 존재하지 않고 int 타입과 똑같은 리터럴을 사용하여 저장합니다.byte, short 타입은 연산에 이용하기보다는 저장 목적인 경우가 많아 Java 의 내장 변환모듈이 자동으로 형 변환시켜 준다.
  • 실수형은 float, double 타입이 존재한다.
    • float의 리터럴에는 f, double의 리터럴에는 d가 붙는다.실수형은 2개 밖에 존재하지 않기 때문에 접미사 f를 사용하면 구분을 할 수 있어서 접미사 d는 생략을 허용한다.
  • 따라서, 리터럴에 붙이는 접미사는 정수형의 L , 실수형의 f 만 주의하시면 된다.
    • 접미사는 대소문자를 구별하지 않지만 L 의 소문자 l 은 숫자 1 과 혼동되기 쉽기 때문에 대문자를 사용하는 것이 좋습니다.0b, 0x 와 같은 진수를 나타내는 접두사 또한 대소문자를 구별하지 않습니다.

변수와 리터럴의 타입 불일치

  • 범위가 ‘변수 > 리터럴’ 인 경우 : OK
    • iint i = 'A';int > char, ‘A’= 65 //아스키코드
    • long l = 123; long > int
    • double l = 3.14f; double > float
  • 범위가 '변수 < 리터럴' 인 경우 : Error
    • int i = 30_0000_0000; int의 범위(대략 20억)를 넘는다.
    • long l = 3.14f; long < floatlong(8bye), float(4byte)라 가능할 것 같지만 실수형은 정수형 보다 저장 범위가 훨씬 넓기 때문에 Error가 발생한다.
    • float f = 3.14; float < double;
  • byte, short 변수에 int 리터럴 저장 : OK
    • 단, 변수의 타입의 범위 이내여야 합니다.
728x90
반응형
LIST

'개발 > JAVA' 카테고리의 다른 글

문자와 문자열  (0) 2023.01.18
기본형과 참조형  (2) 2023.01.18
변수  (0) 2023.01.18
JVM  (0) 2023.01.18
Hello World!  (0) 2023.01.18

+ Recent posts