상수(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 |