▶ 데이터 형 (타입)
1. 논리형 (ture or false)
- boolean 타입은 true or false를 담을 수 있다.
boolean isCheck = false;
2. 문자형
- char 타입은 문자1개만 담을 수 있으며 홑 따옴표로 시작해서 닫는다.
char myChar = 'A';
3 . 정수형
- 가장 작은 범위의 숫자 표현형
byte (1byte)
- 작은 범위의 숫자 표현형. -32768 ~ +32767
short (2byte)
- 주로 쓰이는 숫자 표현형
int (4byte)
- 더 큰 범위 숫자 표현형.
long (8byte) : 정수형 long 타입은 리터럴 접미사 'L'을 붙인다.
4. 실수형
- float myFloat = 0.0f;
double myDouble = 0.0;
▶ 형변환
케스팅 : 기본형이 값에 의해 형이 바뀌는 것
int myInt2 = 0.0; -> 값이 변수 타입과 맞지 않는다. error
int myInt2 = (int)0.0;
형 변환을 하는 이유.
다른 자료형(데이터형)으로 변환 하기 위함.
1) 명시적 형 변환
작은 데이터형 변수를 큰 데이터형 변수에 대입하기 위해 명시적으로 형변환 작업을 해야한다.
int inum = 160;
double dnum = inum;
- int(4byte) → byte(1byte) 으로 변환시 크기가 기존보다 작아져 반드시 케스팅 연산자 필요.(크기 수용 불가)
- short(2byte) → char(2byte) 으로 변환시 범위(정수,문자)가 달라서 케스팅 연산자 필요.
- char(2 byte) → int(4byte) 으로 형 변환시 크기가 기존보다 크기 때문에 케스팅 연산자 생략 가능.
2) 케스팅 연산자를 활용하여 형 변환.
큰 데이터 형에서 작은 데이터 형으로 변환 시 케스팅 연산자를 활용해야 하며 변환될 데이터형의 크기를 넘으면 안 된다.
int inum2 = (int) dnum
▶ 다른 데이터 형끼리 연산하기
다른 데이터 형끼리 연산시 큰형으로 변환 후 연산이 된다.
연산을 할 경우 연산자 우선순위를 기억하여 코드 작성해야 하는점을 주의하자.
int inum3 = 10;
double dnum2 = 5.2;
System.out.println("다른 형 끼리 연산 ->"+inum3+dnum2);
System.out.println("다른 형 끼리 연산 ->"+(inum3*dnum2));
- 기본형 연산
(1) 'A' + 'B' = ???
문자코드 'A' = 65, 문자코드 'B' = 66 으로 'A'+'B' = 131
(2) '1'+2 = ???
문자코드 '1'의 값은 49로, 49+2 = 51
(3) '1'+'2' = ???
문자코드'1'의 값은 49, 문자코드'2'의 값은 50으로, 49+50=99
(4) true + null = ???
오류. 연산 불가능