도찐개찐

[JAVA] 형 변환(casting) 본문

JAVA

[JAVA] 형 변환(casting)

도개진 2022. 6. 29. 16:54

형 변환(type conversion)

형 변환은 서로 다른 자료형 간에 연산 등의 수행을 위해 하나의 자료형으로 통일하는 것을 말함.

형 변환의 종류에는 묵시적 형 변환(explict type conversion)과 명시적 형 변환(implict type conversion)이 있습니다.

  • primitive는 primitive끼리, reference는 reference끼리 형 변환.
  • primitive와 reference 간의 변환은 wrapper class 사용 필요.
  • boolean은 변환 불가. boolean을 제외한 나머지 7개의 기본 자료형은 서로간 형 변환 가능.

 

묵시적 형변환 ( UpCasting / Promotion )

  • 작은 타입 -> 큰 타입
  • 프로그램 실행 도중 자동으로 일어납니다.
  • 동일 메모리를 소비하는 자료 형태 전환의 경우 데이터 손실이  발생 될 수 있습니다.

묵시적(자동) 형 변환 flow

명시적 형변환 ( DownCasting / Casting )

  • 큰 타입 -> 작은 타입
  • 강제적으로 작은 메모리를 사용하는 자료형 형태로 변환 함으로써 데이터 손실이 발생 됩니다.

명시적(강제) 형 변환 flow

 

예제 1

public class TypeToType01 {
	public static void main(String[] args) {
		
		// 묵시적 형변환 (upCasting or promotion) : 작은 타입 -> 큰 타입
		byte b01 = 100;
		int i01 = b01;
		System.out.println(i01);
		
		// 명시적 형변환 (downCasting or casting) : 큰 타입 -> 작은 타입
		int i02 = 100;
		byte b02 = (byte) i02;
		System.out.println(b02);
	}
}

예제1 결과

예제2

public class TypeToType02 {
	
	public static void main(String[] args) {
		
		// int to char
		int i01 = 65;
		char c01 = (char) i01;
		System.out.println("int to char : " + c01);
		// ascii
		
		
		// char to int
		char c02 = 'A';
		int i02 = c02 + 1;
		System.out.println("char to int : " + i02);
		System.out.println((char)i02);
		
		char c03 = '1';
		char c04 = '2';
		System.out.println((char) (c03 + c04));
		
		
		// String to int
		String sr01 = "65";
		int i03 = Integer.parseInt(sr01);	// 숫자로만 이루어진 문자열의 경우, 숫자로 바꿔줌
		System.out.println(i03 + 1);
		
		
		// int to String
		int i04 = 66;
		String sr02 = Integer.toString(i04);	// 숫자를 문자열로 바꿔줌
		System.out.println(sr02 + 1);
		System.out.println(sr02 + 2);
		
		String sr03 = String.valueOf(i04);	// 숫자를 문자열로 바꿔줌
		System.out.println(sr03);
	}
}

예제2 결과

 

참고 : https://printf100.tistory.com/9

 

[JAVA] 형 변환 - 묵시적 형 변환 , 명시적 형 변환

형 변환 ( Type Casting ) : 데이터의 자료형을 다른 자료형으로 바꾸는 것 묵시적 형변환 ( UpCasting / Promotion ) 작은 타입 -> 큰 타입 프로그램 실행 도중 자동으로 일어납니다. 명시적 형변환 ( DownCastin

printf100.tistory.com

 

728x90

'JAVA' 카테고리의 다른 글

[JAVA] 배열(Array)  (0) 2022.06.29
[JAVA] 연산자(Operator)  (0) 2022.06.29
[JAVA] 변수와 상수  (0) 2022.06.29
[JAVA] 자료형(Data Type)  (0) 2022.06.29
[JAVA] InteliJ 0.0.0.0.0.1 수정  (0) 2022.05.07
Comments