● 타입 변환
byte < short < int < long < float < double |
1. 자동 타입 변환
- 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생
1) byte → int byte byteValue = 20; int intValue = byteValue; // 자동타입변환 가능 2) 정수 → 실수 long longValue = 5000000L; float floatValue = longValue; double doubleValue = longValue; 3) char → int char cahrValue = 'A'; int intValue = charValue; //65가 저장됨 |
* 자동 타입 변환 예외
byte는 char 타입으로 자동변환x → char타입은 음수포함하지 않기때문
2. 강제 타입 변환
- 큰 허용 범위 타입을 작은 허용범위 타입으로 강제로 나눠서 저장하는 것
- 강제타입 변환은 캐스팅 연산자 괄호() 사용
← 강제 타입 변환 ← 작은 허용 범위 = (작은 허용 범위) 큰 허용 범위 |
1) int → byte intValue = 20; byteValue = (byte)int intValue; // 강제 타입 변환 2) int → char intValue = 50; char cahrValue = (char) intValue; System.out.print(charValue); // "A"가 출력 3)실수 → 정수 double doubleValue = 3.14; int intValue = (int)doubleValue; // intValue는 정수 부분인 3만 저장 |
3. 정수 연산에서의 자동 타입 변환
- 정수 타입 변수가 피연산자로 사용되면 int 타입보다 작은 byte, short 타입 변수는 int타입으로 자동 타입 변환
byte a = 10; byte b = 20; int result = a + b; System.out.println(result); // 30 |
4.실수 연산에서의 자동 타입 변환
- 두 피연산자가 동일한 실수 타입이라면 해당 타입 그대로 연산
- 피연산자 중 하나가 double 타입이라면 다른 피연산자도 double 타입으로 자동 타입 변환
- int타입과 double타입 연산 시 → int 타입 피연산자가 double타입으로 자동 변환 된 후 연산 수행
int a = 10; double b = 5.5; double result = a + b ; // 15.5 |
① a - double 값으로 변환 ② '+'연산 ③ result에 15.5 저장
- int타입으로 연산 해야 한다면 강제 변환하고 연산 수행
int a = 10; double b = 5.5; int result = a + (int) b ; // 15 |
5. + 연산에서의 문자열 자동 타입 변환
- 자바에서 + 연산자는 두가지 기능 : 피연산자 숫자일경우 → 덧셈연산 수행
피연산자 중 하나가 문자일경우 → 나머지 피연산자도 문자열로 자동변환되어 문자열 결합
1) 숫자 + 숫자 → 덧셈 연산 → 숫자 2) "문자열" + 숫자 → "문자열" + "숫자" → 결합 연산 → "문자열숫자" 3) 숫자 + "문자열 → "숫자" + "문자열" → 결합 연산 → "숫자문자열" |
- 연산식에서 +연산자가 연이어 나오면 앞에서부터 순차적으로 +연산 수행
int value = 1+2+3; → int value = 3+3; → int value = 6; String str = "3"+7 ; → String str = "3"+"7"; → String str = "37"; String str = 3+"7" ; → String str = "3"+"7"; → String str = "37"; |
6. 문자열을 기본 타입으로 강제 타입 변환
- 문자열 → 기본 타입 변환 방법
String → byte | String str = "10"; byte value = Byte.parseByte(str); |
String → short | String str = "100"; short value = Short.parseShort(str); |
String → int | String str = "1000"; int value = Int.parseInt(str); |
String → long | String str = "100000"; long value = Long.parseLong(str); |
String → float | String str = "12.34"; float value = Float.parseFloat(str); |
String → double | String str = "3.14"; double value = Double.parseDouble(str); |
String → boolean | String str = "true"; boolean value = Boolean.parseBoolean(str); |
* 기본 타입 → 문자열
String str = String.valueOf(기본타입값); |
● 변수와 시스템 입출력
1. 모니터로 변수값 출력하기
system. + out. + println(리터럴 또는 변수) 시스템이 가지고 있는 출력 장치로 괄호 안의 내용을 출력하고 행을 바꿈 |
- out의 메소드
println(내용); | 괄호 안의 내용을 출력하고 행 바꾸기 |
print(내용); | 괄호 안의 내용을 출력 |
printf("형식문자열", 값1, 값1, ...); | 괄호 안의 첫 번째 문자열 형식대로 내용 출력 |
'Write it > Java' 카테고리의 다른 글
Java) Scanner (3) | 2025.08.06 |
---|---|
Java) 변수와 타입_02 (1) | 2025.07.21 |
Java) 변수와 타입_01 (0) | 2025.07.21 |