[형 변환]
Data Type Promotion 자동 형 변환
- 작은 자료형 값을 큰 자료형에 넣을 때 자동으로 형 변환이 일어남
- 실수형은 무조건 정수형보다 큼
Data Type Casting 강제 형 변환
- 큰 자료형 값을 작은 자료형에 넣을 때는 Casting 해 줘야 함
- 데이터 손실 일어남
- char형은 음수를 포함하지 않기 때문에 int와 short보다 범위가 크거나 작다고 할 수 없음
▽ 예제 코드 1 ▽
1 byte b = 10;
2 short s = 20;
3 char c = 'A';
4 int i;
5 float f;
6 long l = 100L;
7
8 s = b;
9 c = (char) b;
10 s = (short) c;
11 c = (char) s;
12 i = 100;
13 l = 500; // 자동 Promotion
14 f = l; // 실수형은 무조건 정수형보다 크기 때문에 에러 X
15 f = 5.11f;
16
17 double d;
18
19 d = 400f; // 자동 Promotion
▽ 예제 코드 2 ▽
[결과]
결과 : 1020
결과 : 30
결과 : 103.14
결과 : 13.14
결과 : 3.14A
결과 : 68.14
결과 : AB
결과 : 131 -> char는 사실상 정수이기 때문에 정수처럼 계산됨
결과 : ? -> 131에 해당하는 ASCII 코드가 '?'임
1 int i1 = 10;
2 int i2 = 20;
3 float f1 = 3.14f;
4 char c1 = 'A';
5 char c2 = 'B';
6
7 System.out.println("결과 : " + i1 + i2);
8 System.out.println("결과 : " + (i1 + i2));
9 System.out.println("결과 : " + i1 + f1);
10 System.out.println("결과 : " + (i1 + f1));
11 System.out.println("결과 : " + f1 + c1);
12 System.out.println("결과 : " + (f1 + c1));
13 System.out.println("결과 : " + c1 + c2);
14 System.out.println("결과 : " + (c1 + c2));
15 System.out.println("결과 : " + (char)(c1 + c2));
[상수, Literal 상수]
- 변수 안에 literal 상수(기본 숫자)를 넣을 수 있음
- 그 변수가 final이면 그 변수는 상수가 됨
- final 선언 이후, 값 변경 불가능함
▽ 예제 코드 3 ▽
1 int i = 100;
2 long l = 100L;
3 final byte ON = 1;
4
5 // Literal : 100, 100L, 1
6 // 변수 : i, l
7 // 상수 : ON
[논리 연산자]
- Short-cut 연산이 적용됨
- 앞 조건이 거짓이면, 뒤 조건은 보지 않고 넘어감
[기본 입출력]
System.in.read()
- 입력받기 전에 Buffer에 남아 있는 입력을 확인하고 가져옴
- 없다면 문자 하나를 입력받음
- 문자를 입력하면 int 값으로 전환되어서 저장됨
- 사용자가 입력하면 입력된 문자와 함께 \r, \n도 Buffer에 들어감
- 다음 입력을 받을 때, 비워 줘야 함
▽ 예제 코드 3 ▽
1 int a = System.in.read();
2 System.out.println("입력하신 문자는 " + (char) a + "입니다.");
3 // casting 해 줘야 함
'자바 - Java > 이론' 카테고리의 다른 글
[Java] Java Programming - 메서드, String 자료형 메서드 종류 (0) | 2020.04.02 |
---|---|
[Java] Java Programming - String 값 참조, String 주소 참조 (0) | 2020.04.02 |
[Java] Java Programming - 문자열 입력(Scanner), 반복문(while, for), 제어문(if-else) (0) | 2020.04.02 |
[Java] Java Programming - 프로그램 처리 방식, 예외 처리, 예외 전가 (0) | 2020.04.02 |
[Java] Java Programming - 절차 지향, 객체 지향, JRE와 JDK 차이, 컴퓨터 구성 요소 (0) | 2020.03.25 |