본문 바로가기
수업(국비지원)/Java

[Java] chap2 : 변수 - 자바의 자료형, 리터럴 형변환예제

by byeolsub 2023. 4. 14.
  • 자바의 자료형.
기본 자료형
 1. 논리형 : boolean(1byte) => true, false : 참, 거짓 값을 저장
 2. 문자형 : char(2byte) => 한개의 문자만 저장. 유니코드 문자
 3. 정수형 : byte(1byte), short(2byte), int(4byte), long(8byte)
                => 정수형(소숫점 없음) 숫자 저장.
       int num; // 변수 선언
       num = 100 //변수 초기화
 4. 실수형 : float(4byte), double(8byte) => 실수형(소숫점 있음) 숫자 저장.
       [1byte = 8bit]

참조 자료형
 - 8개의 기본형을 제외한 나머지 타입. 객체의 정보를 저장한다.
     : Array, String, Class, i
 1. String 클래스 
      String 연산. 대입연산자로 문자열 객체 생성 가능.
      + 연산이 가능한 유일한 클래스. String + 기본형
  • 리터럴에 사용되는 접미사
 - 리터럴에 사용되는 접미사
 	   L,l : long형 리터널
 	   F,f : float형 리터널
 	   D,d : double형 리터널, 실수형 기본값
  • 형 변환 예제
- 형변환 예제
 1. 기본자료형과 참조자료형 사이의 형변환 불가. (단, Wrapper 클래스는 제외)
 2. 기본 자료형 중 boolean을 제외한 7가지의 자료형은 서로 형변환 가능.
 3. 자동 형변환 : 형변환 연산자 생략 가능. 
                   작은 자료형 변수가 큰자료형 변수로 형변환 될때 형변환 연산자 생략가능.
   명시적 형변환 : 형변환 연산자 생략 불가.
                   큰 자료형 변수가 작은자료형 변수로 형변환 될 때 형변환 연산자 생략불가.
 
                                                                     --> 자동형변환
<-- 명시적형변환                 
 byte(1) < short(2)/char(2) < int(4) < long(8) < float(4) < double(8) 

 

📌

public class varEx3 {
	public static void main(String[] args) {
		String str ="abc";    // 문자열(문자 여러개)객체. 참조형
		char c = 'd';         // 문자(문자한개) 변수. 기본형
//		String s1 = c;        // 참조형 <- 기본형 불가.
//      char c1 = str;        // 기본형 <- 참조형 불가.
		byte b1 =10;
		short s1 = 100;
		// 자동 형변환 : 형변환 연산자 생략 가능.
		short s2 = (short)b1;   // short <- byte 
		int i1 = (int)s2;       // int <- short
		float f1 = (float)i1;   // float <- int
		System.out.println("f1="+f1);
		// 명시적 형변환 :  형변환 연산자를 생략 불가.
		short s3 = (short)f1;          // short <-float
	    char c1 = (char)s1;            // char <- short/byte 명시적 형변환
	    //s1=00
	    //a:97,b:98,c:99,d:100
	    System.out.println("c1="+c1);  // : d
	    System.out.println("100="+(char)100);
	    
        // 리터널값
	    long l1 = (long)1000;
	    long l2 = 1000L;     // long형 리터널
	    int i2 = (int)1000;
	    int i3 = 1000;       // int형 리터널
	    float f2 = (float)10.5;     // 실수형 리터널의 기본형은 double임.
	    float f3 = 10.5F;           // 10.5F float형 리터널
 	    double d1 = 10.5;
	  
	}

}