목표

- 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다.

 

학습할 것

 

참고 자료

 

Java의 정석:최신 Java 8.0 포함

COUPANG

www.coupang.com

 

 

 

# 리터럴이란(literal)?

 

원래 12, 123, 3.14, 'A'와 같은 값들이 상수이다.

프로그래밍에서는 상수를 값을 '한번 저장하면 변경할 수 없는 저장공간' 으로 정의 해서 다른 이름으로 불러야만 했다.

그래서 상수 대신 리터럴이라는 용어를 사용한다.

=> 리터럴은 기존에 알던 '상수' 의 다른 이름일 뿐이다.

 

변수(variable) : 하나의 값을 저장하기 위한 공간

상수(constant) : 값을 한번만 저장할 수 있는 공간

리터럴(literal) : 그 자체로 값을 의미하는 것

 

 

 

# 리터럴의 타입과 접미사

변수에 타입이 있는 것처럼 리터럴에도 타입이 있다.

 

 

  • 리터럴은 접미사를 붙여서 타입을 구분한다.
  • 정수형의 경우, long타입의 리터럴에 접미사 'l' 또는 'L'을 붙이고,
    접미사가 없으면 int 타입의 리터럴이다.

 

 

 

# 2, 8, 16진수로 표현된 리터럴

 

int octNum = 010;     // 8진수 10, 10진수 => 8

int hexNum = 0x10;   // 16진수 10, 10진수 => 16

int binNum = 0b10;   // 2진수 10, 10진수 => 2

 

 

 

# 큰 숫자를 편하게 읽게 만드는법

 

long big = 100_000_000_000L;           // 접미사 f 대신 F를 사용해도 된다.

long hex = 0xFFFF_FFFF_FFFF_FFFFL;    // 접미사 d 대신 D를 사용해도 된다.

 

 

# 실수형 (float, double)

 

float pi = 3.14f;            // 접미사 f 대신 F를 사용해도 된다.

double rate = 1.618d;    // 접미사 d 대신 D를 사용해도 된다.

 

* 접미사가 붙은 타입은 long, float, double 뿐인데, double은 생략가능므로 long과 float만 신경쓰면 된다.

 

 

 

# 타입의 불일치

리터럴의 타입은 저장될 변수의 타입과 일치하는 것이 보통이지만,

타입이 달라도 저장범위가 넓은 타입에 좁은 타입의 값을 저장하는 것은 혀용된다.

 

int i = 'A';           // OK, 문자 'A' 의 유니코드인 65가 변수 i에 저장된다.

long l = 123;       // int보다 long 타입이 더 범위가 넓다.

double = 3.14f;    // OK, float보다 double타입이 더 범위가 넓다.

 

 

그러나 리터럴의 값이 변수인 타입의 범위를 넘어서거나,

리터럴의 타입이 변수의 타입보다 저장범위가 넓으면 컴파일 에러 발생한다.

 

int i = 0x123456789;   // 에러.  int 타입의 범위를 넘는 값을 저장

float = f = 3.14;         // 에러.  float 타입보다 double 타입의 범위가 넓다.

 

* float는 접미사나 정밀도 등신경 쓸 것이 많다. 이런 것들이 귀찮다면 그냥 double을 사용하자.

 

 

# 문자, 문자열 리터럴

 

char ch = 'J';              // char ch = 'Java'; 이렇게 할 수 없다.

String name = "Java";   // 변수 name에 문자열 리터럴 "Java"를 저장

 

 

 

 

반응형

+ Recent posts