- 상수의 선언
- final int MAX = 100; // 변수 선언시 앞에 final 선언 추가
1) 값을 딱 한번만 할당할 수 있다.
2) 한번 할당된 값은 변경이 불가능 하다.
- 리터럴(Literals) 상수
1. 정수형 상수의 표현
- java는 왼편 자료형에 관계없이, 정수는 int형으로 표현한다.
(예) int num = 157; // 157을 int형 정수로 인식
(예) long num = 3147483647; // 3147483647이 int 형이어야하는데 그 범위를 넘음 => error!!
10진수로 int형정수 표현 : int num=11 + 22 +33;
8진수로 int형 정수 표현 : int num = 011 + 022 + 033;
16진수로 int형 정수 표현 : int num = 0x11 + 0x22 + 0x33;
2진수로 int형 정수 표현 : int num = 0B11001101;
* 수의 표현 및 인식에 도움을 주기 위해 중간에 언더바를 넣는 것도 허용하고 있다.
int num = 12_34_56_78;
2. long형 변수의 표현 => 상수 뒤에 l을 붙인다.
(예) System.out.println(3147483647L + 3147483648L);
* 자바는 byte형이나 short형 정수의 표현 방법을 제공하지 않는다.
따라서 byte num = 5; 로 초기화를 허용한다. 물론 범위를 넘어서면 컴파일 오류가 발생한다.
3.실수형 상수
double PI = 3.1415; // 3.1415d 라고 해도 된다.
float PI = 3.1415f; // f 꼭 붙여야함
3.4e3 = 3.4 * 10^3
3.4e-3 = 3.4 * 10^(-3) 와 같이 표현하는 것도 가능하다 이들은 double 형 실수이다.
float으로 표현하고 싶으면 뒤에 f를 붙이면 된다.
- 형변환 - 데이터타입에 따라 연산 방법이 다르기 때문에 자료형을 하나로 일치시키는 과정을 거쳐야한다.
1. 자동 형 변환 : programmar가 명시하지 않음, 필요한 상황에 자동으로 형변환이 일어난다.
규칙 1) 자료형 크기가 큰 방향으로 형변환이 일어난다.
2) 크기에 상관없이 정수 자료형보다 실수 자료형이 우선이다.
*데이터의 손실 없이 가능하다.
<자동 형 변환이 이뤄지는 방향>
byte => short/char => int => long => float => double
(예) double num1 = 30; // int 형 정수 30 => double 형으로 자동변환
(예) System.out.println(5945456L + 34.5); // long형 정수 5945456 => double 형으로 자동변환
2. 명시적 형 변환 : 자동 형 변환이 진행되지 않는 상황에서도 필요에 의해 형변환이 이뤄지도록 할 수 있다.
* 보통 데이터의 손실이 발생한다.
(예) double PI = 3.1415;
int wholeNum = (int)PI; // 소수점 이하는 사라진다.
* 그냥하면 에러나나..?
'JAVA' 카테고리의 다른 글
| [JAVA]06.메소드와 변수의 스코프 (0) | 2019.12.19 |
|---|---|
| [JAVA]05. 실행 흐름 컨트롤 (0) | 2019.12.19 |
| [JAVA]04. 관계연산자/ 논리연산자 (0) | 2019.12.19 |
| [JAVA]02. 변수와 자료형 (0) | 2019.12.19 |
| [JAVA]01. JVM과 자바프로그램의 실행 (0) | 2019.12.19 |