자동 형변환 byte >> short/char >> int >> long >> float >> double long sunnyLong; int sunnyInt = 32555; byte sunnyByte = 25; // int → long 자동 변환 SunnyLong = sunnyInt; //32555 // Byte → long 자동 변환 SunnyLong = sunnyByte; //25 강제 형변환 원본 데이터 손실 변환 전 데이터 타입이 변환 후 데이터 타입보다 표현 범위가 넓을 때 강제 형변환을 하게 되는데, 이 표현범위가 넘어간 값을 형변환할 경우 원본 데이터 손실이 발생할 수 있음 표현 범위가 넓을 때 : 데이터 크기가 클 때 or 데이터 타입이(실수/소수) 다를 때 // 아래 순서의 반대로 진행하는 경우 // 정방향 진행의 경우(자동 형변환)에도 명시해줘도 상관 없음 byte >> short/char >> int >> long >> float >> double // 변환하고자 하는 타입을 ( ) 괄호 사이에 지정 // 데이터 손실이 발생하는 예제 01. 데이터 크기가 클 때 long sunnyLong = 1234567890L; byte SunnyByte = (byte) sunnyLong; // sunnyByte는 722가 됨 → 데이터 손실 // 데이터 손실이 발생하는 예제 02. 데이터 타입이(실수/소수) 다를 때 double sunnyDouble = 1.9; int Sunnyint = (int) sunnyDouble; // sunnyInt는 1이 됨 → 데이터 손실 String과 기본타입의 형변환 byte sunnyByte = 12; int sunnyInt = 123; long sunnyLong = 1234; float sunnyFloat = 1.2f; double sunnyDouble = 123.456; String str = ""; // Byte ↔ String str = Byte.toString(sunnyByte); str = sunnyByte + ""; str = String.valueOf(sunnyByte); sunnyByte = Byte.parseByte(str); // Integer ↔ String str = Integer.toString(sunnyInt); str = sunnyInt + ""; str = String.valueOf(sunnyInt); sunnyInt = Integer.parseInt(str); sunnyInt = Integer.parseInt(str, 10); // 2번째 argument = 진법 // Long ↔ String str = Long.toString(sunnyLong); str = sunnyLong + ""; str = String.valueOf(sunnyLong); sunnyLong = Long.parseLong(str); // Float ↔ String str = Float.toString(sunnyFloat); str = sunnyFloat + ""; str = String.valueOf(sunnyFloat); sunnyFloat = Float.parseFloat(str); // Double ↔ String str = Double.toString(sunnyDouble); str = sunnyDouble + ""; str = String.valueOf(sunnyDouble); sunnyDouble = Double.parseDouble(str); // String → char for (int i = 0; i < str.length; i++) { char sunnyChar = str.charAt(i); System.out.println(sunnyChar); }