자바

[자바 기초] 상수와 리터럴

gurum 2021. 3. 13. 16:18

 

 

 

 

상수(constant)


변수와 마찬가지로 값을 저장할수 있는 공간. 그러나, 변수와 달리 한번 값을 저장하면 다른 값으로 변경이 불가능하다.

변수의 타입 앞에 키워드 final을 붙여주면 상수 선언.

 

final (키워드) int (변수 타입) MAX_VALUE (상수) = 100; (리터럴)

 

한번 값을 저장하면, 이후에 값을 변경하는것이 허용되지 않는다. 상수명모두 대문자로 구성하며, 여러단어로 이루어져 있을때는 _ 기호로 구분한다. 

 

 

 

 

 

 

리터럴(literal)


기존 우리가 알고 있는 상수 개념 (12,123,'A'와 같은 값들)을 뜻한다. 프로그래밍에서는 '상수'를 값을 한번 저장시 바꿀 수 없는 공간으로 정의 했기 때문에, 이와 구분해서 기존 우리가 알던 상수를 '리터럴' 이라고 부른다.

 

in year = 2021;

final int  LAST_YEAR = 2020;

 

변수: year 상수: LAST_YEAR 리터럴: 2021, 2020

 

 

 

 

 

접미사


정수형과 실수형에는 여러 타입이 존재하므로, (정수형 - short, int, long  실수형 - double, float ) 리터럴에 접미사를 붙여 구분한다.

정수형의 long 타입의 경우, 접미사 l 또는 L을  붙이고, int 형의 경우는 접미사가 없다. (정수형인 byte, short도 접미사가 없다.)

16진수를 표현할때는 접두사 '0x' 또는 '0X'를 붙이고, 8진수인 경우 '0'을 붙인다.

 

 

int octNum =010; // 접두사 '0' → 8진수

int hexNum = 0x10; // 접두사 '0x' → 16진수

 

※ JDK 1.7부터 정수형 리터럴 중간에 구분자 ' _ ' 허용. 

 

 

실수형 float타입접미사 'f' 또는 'F'를 붙인다. double타입접미사 'd' 또는 'D'를 붙인다.  

double 타입은 실수형의 기본자료형이라 접미사 생략이 가능하다. ( 정수형에서는 int형이 기본자료형 )

 

 

float pi = 3.14f; // float 타입은 접미사 필수.

double rate = 1.68d // double 타입은 접미사 생략가능.

 

 

 

 

 

 

문자 리터럴, 문자열 리터럴


 'A'와 같이 작은 따옴표로 문자 하나를 감싼것을 문자 리터럴이라고 한다. 두문자 이상큰 따옴표로 감싼것은 문자열 리터럴이라고 한다.  char타입은 문자 하나만 저장 가능하며, String 타입은 여러문자 저장 가능하다. 

 

※ 문자열 리터럴은 ""안에 아무 문자도 넣지 않는 것을 허용하지만 ( = 빈 문자열),  문자 리터럴은 반드시 ''안에 하나의 문자가 존재해야한다. (빈문자 허용X, 공백(blank)문자는 가능 = 변수 초기화)

 

String은 본래 클래스로 객체 생성 연산자 new를 사용해야하지만, 간단하게 표현하는것도 허용한다.

 

String name = new String("java"); // new로 객체 생성

→ String name = "java"; // 간단히 표현 가능 (new 생성자 사용X)

 

 

 

 

 

문자열 결합


두 문자열을 합칠때도 덧셈(+)을 사용할수 있다. 덧셈(+) 연산자는 두 피연산자가 모두 숫자일때는 두 수를 더하지만(add),

피연산자 중 어느 한쪽이라도 String이면, 나머지 한쪽을 먼저 String으로 변환후 두 String을 결합한다.

따라서, 어느 타입의 변수도 문자열과 연산시 그 결과는 항상 문자열이 된다.

 

 

 

 

문자 결합


문자와 문자와의 덧셈은 정수형 int 타입으로 변환되어 더해진다. 

즉, 'A' + 'B' 일 경우 (문자 + 문자 연산) A = 아스키코드 65로 변환되고, B = 아스키코드 66으로 변환되어 더해진다.

따라서 'A' + 'B'의 결과는 65 + 66으로 131이 된다.

 

※ int 타입보다 작은 타입은 (short, byte, char)은 모두 int 타입으로 변환후 덧셈 연산한다.

 

 

 

'자바' 카테고리의 다른 글

MVC 패턴이란?  (0) 2023.11.21
[자바 기초] 연산자  (0) 2021.05.07
[자바 기초] 기본형 종류, 범위(+키워드)  (0) 2021.03.13
[자바] 자주 발생하는 오류 정리  (0) 2021.03.08