- 상수는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만
한 번 값을 저장하면다른 값으로 변경할 수 없다
.- 상수를 선언하는 방법은 변수와 동일하지만 변수 앞에
final
을 붙여주면 된다.- 상수는 반드시 선언과 동시에 초기화를 해줘야 하며,
상수의 값을 변경하는 것이 허용되지 않는다.
읽기 전용
1. 리터럴(literal) - 리터럴은 단지 우리가 기존에 알고있는 '상수'의 다른 이름일 뿐이다.
int number = 10; // 값 하나하나를 리터럴이라고 한다.
* 변수 : 하나의 값을 저장하기 위한 공간
* 상수 : 값을 한 번만 저장할 수 있는 공간
* 리터럴 : 그 자체로 값을 의미하는 것
2. 상수가 필요한 이유
int triangleArea = (20 * 10) / 2; -> 삼각형 밑변을 구할 때, 어떤게 폭인지, 높이인지 알 수 없다.
final int WIDTH = 20; //폭 final int HEIGHT = 10; //높이 int triangleArea = (WIDTH * HEIGHT) / 2; -> 상수는 리터럴에 의미있는 이름을 붙여서 코드의 이해와 수정을 쉽게 만든다.
형변환
이란변수의 타입을 다른 타입으로 변환하는 것
묵시적형변환(자동형변환)
과명시적형변환(강제형변환)
2가지가 있다.- 형변환하고자 하는 변수나 리터럴 앞에 변환하고자 하는 타입을
' ( ) '
와 함께 붙여주면 된다.- 여기서 사용되는 괄호()는
'캐스트 연산자'
또는'형변환 연산자'
라고 한다.
- 서로 다른 자료형을 연산 혹은 대입하는 경우, java컴파일러가 자료형을 통일한다.
int a = 100; //정수형 float b = a; // 정수형을 실수형에 대입 -> 묵시적형변환은 어떤 변수가 더 큰 범위의 변수로 대입 가능함을 의미 -> 묵시적형변환은 데이터의 손실이 발생하지 않는 범위 내에서만 이루어진다.
short s = 100; int i = s; long l = i; float f = l; double d = f; -> 작은 타입에서 큰 타입으로 변환 가능하다.
데이터의 손실을 감수하더라도, 강제로 형변환 시키는 형태
double d = 85.4; int score = d; -> d는 8byte인 double인데, d를 담으려는 int는 4byte이다.
int score = (int)d; -> 데이터 손실을 감수하고 강제 형변환 진행 / double -> int System.out.println(score); -> 85 출력 / 소숫점 뒤 날라감