• 상수(constant)란?

    • 변하지 않는 변수

      • 상수에 넣는 데이터로는 숫자만 오는 것이 아니라 클래스나 구조체 같은 객체도 올 수 있다
      • 참조변수를 상수로 지정할 때, 참조변수 안의 속성의 데이터까지도 변하지 않는다고 생각할 수 있지만, 참조변수 메모리의 주소값이 변하지 않는다는 의미일 뿐, 그 주소가 가리키는 데이터들은 변할 수 있다
      const a = { name: "JY", age: 20 };
      a = [ apple, banana ]; // 불가능
      a.age = 10; // 가능
      
  • 리터럴(Literal)이란?

    • 데이터(값) 그 자체

      • 변수에 넣는 변하지 않는 데이터
      const a = 1;
      
      • a는 상수, 1은 리터럴
  • 리터럴 표기법이란?

    • 코드 상에서 데이터를 표기하는 방식을 리터럴 이라고 함

    • 객체지향언어에서는 객체의 리터럴 표기법 지원

    • 리터럴 표기법이란, 변수를 선언함과 동시에 그 값을 지정해주는 표기법

    //리터럴 표기법
    var no = 3;
    var obj = { name: 'JY', age: 20 }; // 객체리터럴 방식으로 만든 객체
    
  • 정수 리터럴

    • int 타입으로 컴파일 되기 때문에, long 타입으로 지정하고자 할 때는 숫자 뒤에 L이나 l을 붙여줌
    int i=100;
    long l=100L;
    
  • 실수 리터럴

    • double 타입으로 컴파일 되고, 숫자 뒤에 F나 f를 붙이면 float 타입, D나 d를 붙이면 double 타입으로 강제 변환됨
    double d1 = 1.23;
    double d2 = 1.23D;
    float f = 1.23F;
    
  • 문자 리터럴

    • 작은 따옴표(’’)로 표현하거나 ‘\u’ 다음에 유니코드 값을 입력해 표현
    char c1 = 'A';
    char c2 = '\\uac00'; //'\\uac00'=가
    char c3 = '\\n'; //엔터. 줄바꿈
    
    • c3에서와 같이 작은 따옴표 안에 이스케이프 시퀀스(escape sequence)값을 가지고 있을 수도 있음
  • 논리 리터럴

    boolean b1 = true;
    boolean b2 = 5<3;    //결과는 false이므로 b2에 false라는 값 저장
    
    • 자바에서는 1, 0을 true, false로 사용할 수 없기 때문에 boolean 타입의 변수의 값을 숫자로 초기화할 때 오류 발생
  • 문자열 리터럴

    • 큰 따옴표(””)로 문자열을 묶어 표현
    • 문자열은 기본 데이터 타입에 포함되지 않음
    String str = "Hello!";
    

    리터럴(Literal)이란?

    [Java] 변수 선언하기, 데이터 타입과 타입 변환