JAVA

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

응디 2021. 3. 23. 16:53

 

1. 명시적 형변환 = 사과상자 -> 못상자 

- 사과상자의 크기 > 못상자 크기

- 사과상자가 못상자에 들어갈수 있는지 확인해 봐야됨

 

2. 묵시적 형변환 = 못상자 -> 사과상자 

- 작은상자는 볼 것도 없이 큰상자에 들어감
- 형변환(변수 공간 활용 최적화)
  같은 크기지만 용도 변경으로 형변환을 하기도 함

 

package chap01.ex03.casting;public class Ex01 {
 public static void main(String[] args) {
  byte byteVal;
  char charVal;
  int intVal;
  long longVal;
  float floatVal = 0;
  double doubleVal;
  
  //크기순서 byte < char < int  일반적으로 utf=3byte(영어 1 한국어 2)
  byteVal=10; //byte는 기본숫자
  charVal='A'; //char는 문자다. (문자는 숫자에 대한 유니코드)
  intVal=byteVal; //가능하다 int>byte 작은걸 큰거에 대입하는건 묵시적 형변환
  intVal=charVal; //묵시적 형변환
  System.out.println(intVal); //A에 대한 유니코드
  
  //long > int
  longVal=intVal;
  
  //double > float
  doubleVal=floatVal;
  
  
  
  
 }
}
 
 
 
package chap01.ex03.casting;
public class Ex02 {
 public static void main(String[] args) {
  //명시적 형변환 (큰->작,동일 크기 끼리 용도 변환 할때)
  char charVal;
  int intVal;
  long longVal;
  float floatVal;
  double doubleVal;
  
  intVal=44032;
  charVal=(char)intVal; //큰->작 못들어감 명시적 형변환
  
  //명시적 형변환은 이클립스가 보통 알아서 해준다(100%는 아님)
  System.out.println(charVal);
  longVal=500;
  
  //long -> int
  intVal=(int)longVal;
  System.out.println(intVal);
  
  
  doubleVal=3.14;
  
  //double -> float
  floatVal=(float)doubleVal;
  System.out.println(floatVal);
 
 }
}
 
 
 
package chap01.ex03.casting;
public class Ex03 {
 public static void main(String[] args) {
  System.out.println("byte 최대값 : "+Byte.MAX_VALUE);
  System.out.println("byte 최대값 : "+Byte.MIN_VALUE);
  
  System.out.println("int 최대값 : "+Integer.MAX_VALUE);
  System.out.println("int 최소값 : "+Integer.MIN_VALUE);
  
  //long, float, double 최소 최대
  System.out.println("long 최대값 : "+Long.MAX_VALUE);
  System.out.println("long 최소값 : "+Long.MIN_VALUE);
  
  System.out.println("float 최대값 : "+Float.MAX_VALUE);
  System.out.println("float 최소값 : "+Float.MIN_VALUE);
  
  System.out.println("double 최대값 : "+Double.MAX_VALUE);
  System.out.println("double 최소값 : "+Double.MIN_VALUE);
 }
}

'JAVA' 카테고리의 다른 글

[JAVA] 객체화, Static  (0) 2021.03.23
[JAVA] 생성자 오버로드, this 사용  (0) 2021.03.23
[JAVA] 조건문 (if , else if, else)  (0) 2021.03.23
[JAVA] 연산자  (0) 2021.03.23
[JAVA] 변수 선언, 주석  (0) 2021.03.23