티스토리 뷰
기본 자료형
값의 종류 | 이름 | 크기(byte) | 저장 되는 값의 범위 |
정수 | byte | 1 | -128 ~ 127 |
char | 2 | 모든 유니코드 (0~65535) | |
short | 2 | -32,768 ~ 32,767 | |
int | 4 | -2³¹ ~ 2³¹-1 | |
long | 8 | -2⁶³ ~ 2⁶³-1 | |
실수 | float | 4 | (±)1.4E-45 ~(±)3.4E38 |
double | 8 | (±)4.9E-324 ~ (±)1.7E308 | |
논리 | boolean | 1 | true, false |
* 1 byte = 8 bit / 주로 char, int, double, boolean 사용
자동형변환
- 크기(byte)가 작은 자료형을 큰 자료형에 넣을 때 자동으로 변환
<예시 1>
입력 :
byte b1 = 1;
short s1 = b1;
int i1 = s1;
System.out.println(i1);
출력 : 1
<예시 2>
입력 :
char c2 = '오';
int i2 = c2;
Sysout.out.println(i2);
출력 : 50724
* char형이 int형으로 변환돼서 '오'의 유니코드 50724 출력
강제형변환
- 크기 상관없이 강제로 자료형을 변환
<예시 1>
입력 :
int i3 = 200;
byte b3 = (byte)i3;
System.out.println(b3);
출력 : -56
* byte는 -128~127이기 때문에 200이면 127에서 73만큼 더 가게 되고, -128부터 73칸 가면 -56이어서 -56 출력
* -128~127은 byte로 변환해도 그대로 출력
<예시 2>
입력 :
int i4 = 51068;
char c4 = (char)i4;
System.out.println(c4);
출력 : 일
* int형 501068을 유니코드 char로 변환하여 '일' 출력
서로 다른 자료형 연산
- int보다 작은 자료형은 무조건 int형으로 변환하여 연산
- 아래 예시처럼 다른 자료형으로 변환하여 연산도 가능하지만 int보다 작은 자료형은 연산 후 제대로 된 결과 값 출력이 어려울 수 있기 때문
<예시>
- int형으로 자동형변환 연산
입력 :
byte b5 = 1;
short s5 = 3;
int result = b5 + s5;
System.out.println(result);
출력 : 4
- byte형으로 강제형변환 연산
입력 :
byte b5 = 1;
short s5 = 3;
byte result = (byte)(b5 + s5);
System.out.println(result);
출력 : 4
* 위의 byte result = b5 + s5 와 같이 b5 + s5를 강제형변환 안 하면 오류
- double형으로 연산
int num1 = 10;
int num2 = 3;
int result1 = num1 / num2;
double result2 = num1 / num2;
double result3 = (double)num1 / num2;
System.out.println(result1 + ", " + result2 + ", " + result3);
출력 : 3, 3.0, 3.3333333333333335
* 정수/정수=정수 result2는 소수점 제외하고 정수.0으로 출력, 소수점까지 출력하려면 result3처럼 double 강제형변환
- char형 글자를 의미
입력 :
char c6 = 'A' + 3;
System.out.printlin(c6);
출력 : D
* 'A'의 유니코드에 3을 더해 'D' 출력
'Java' 카테고리의 다른 글
Java 반복문 : for문 | for문 중첩과 응용 | 이름이 붙은 반복문 | while문 | do~while문, Math.random (0) | 2025.02.25 |
---|---|
Java 조건문 : if문(else if와 중첩) | switch~case문 (1) | 2025.02.23 |
Java (연산자) 산술 연산자 | 대입 연산자 | 비교 연산자 | 논리 연산자 | 삼항 연산자 (0) | 2025.02.23 |
Java 변수와 저장 공간의 크기 | Scanner 사용법 | printf 서식 문자 | 10진수 변환 (1) | 2025.02.23 |
Java 주석과 출력문, 이스케이프 문자(escape sequence) (0) | 2025.02.21 |