본문 바로가기
Language/JAVA

[JAVA] 데이터 타입 // 정수 실수 문자 논리

by 아이엠제니 2021. 9. 10.

 


 

 

데이터 타입

  • 모든 변수에는 타입(type)이 있다
  • 타입에 따라 저장할 수 있는 값의 종류와 범위가 달라짐

 

 


기본(원시) 타입

  • 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입
  • 메모리에는 0과 1을 저장하는 최소 기억 단위인 비트(bit)가 있음
  • 8개의 비트를 묶어서 바이트(byte)라고 함
  • 정수: byte(1byte, 8bit), char(2byte, 16bit), short(2byte, 16bit), int(4byte, 32bit), long(8byte, 64bit)
  • 실수: float(4byte, 32bit), double(8byte, 64bit)
  • 논리: boolean(1byte, 8bit)

 

 


정수 타입

  • byte < char < short < int < long
  • 자바는 기본적으로 정수 연산을 int 타입으로 수행
package thisisjava.chap02.num02;

public class ByteExample {
    public static void main(String[] args) {
        byte var1 = -128;
        byte var2 = -30;
        byte var3 = 0;
        byte var4 = 30;
        byte var5 = 127;
//        byte var6 = 128; // 컴파일에러

        System.out.println(var1);
        System.out.println(var2);
        System.out.println(var3);
        System.out.println(var4);
        System.out.println(var5);
    }
}

 

package thisisjava.chap02.num02;

public class GarbageValueExample {
    public static void main(String[] args) {
        byte var1 = 125;
        int var2 = 125;
        for (int i = 0; i < 5; i++) {
            var1++; //1씩 증가시켜
            var2++; //1씩 증가시켜
            System.out.println("var1: " + var1 + "\t" + "var2: " + var2);
        }
    }
}

> byte 127(최대값) 넘으면 다시 시작! -128부터 시작

 

 


char 타입

  • 문자형
  • 자바는 모든 문자를 유니코드로 처리
  • 유니코드 홈페이지: http://www.unicode.org
  • 유니코드는 음수값 없어
  • 작은 따옴표(')로 감싼 문자를 대입하면 해당 문자의 유니코드 저장
package thisisjava.chap02.num02;

public class CharExample {
    public static void main(String[] args) {
        char c1 = 'A'; //문자 직접 저장
        char c2 = 65; //10진수로 저장
        char c3 = '\u0041'; //16진수로 저장

        char c4 = '가'; //문자 직접 저장
        char c5 = 44032; //10진수로 저장
        char c6 = '\uac00'; //16진수로 저장

        int uniCode = c1; //유니코드 얻기

        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);
        System.out.println(c4);
        System.out.println(c5);
        System.out.println(c6);
        System.out.println(uniCode);
    }
}

 

 


short 타입

  • 2byte로 표현되는 정수값을 저장할 수 있는 데이터 타입
  • C언어와의 호환을 위해 사용, 비교적 자바에서는 잘 사용되지 않는 타입

 

 


int 타입

  • 4byte로 표현되는 정수값을 저장할 수 있는 데이터 타입
  • 정수 연산 기본 타입
package thisisjava.chap02.num02;

public class IntExample {
    public static void main(String[] args) {
        int var1 = 10; //10진수
        int var2 = 012; //8진수
        int var3 = 0xA; //16진수

        System.out.println(var1);
        System.out.println(var2);
        System.out.println(var3);
    }
}

 

 


long 타입

  • 8byte로 표현되는 정수값을 저장할 수 있는 데이터 타입
  • 은행 및 우주와 관련된 프로그램과 같이 수치가 큰 데이터를 다루는 프로그램에서 long 타입 필수적 사용
  • long타입의 변수를 초기화할 때에는 정수값 뒤에 소문자 l이나 대문자 L을 붙일 수 있음
package thisisjava.chap02.num02;

public class LongExample {
    public static void main(String[] args) {
        long var1 = 10;
        long var2 = 20L;
//        long var3 = 1000000000000; //컴파일 에러
        long var4 = 1000000000000L;

        System.out.println(var1);
        System.out.println(var2);
        System.out.println(var4);
    }
}

> int 타입의 저장 범위를 넘어서는 정수 리터럴에 L을 붙이지 않아서 컴파일 에러!

 

 


실수 타입

  • 소수점이 있는 실수 데이터를 저장
  • float, double
  • float보다 double이 더 정밀한 값 저장할 수 있음
  • 높은 정밀도를 요구하는 계산에서는 double 사용
  • 실수 리터럴의 기본 타입은 double로 간주
  • 실수 리터럴을 float 타입 변수에 저장하려면 리터럴 튀에 소문자 f나 대문자 F를 붙여야 함
package thisisjava.chap02.num02;

public class FloatDoubleExample {
    public static void main(String[] args) {
        //실수값 저장
        double var1 = 3.14;
//        float var2 = 3.14; //컴파일 에러
        float var3 = 3.14F;

        //정밀도 테스트
        double var4 = 0.1234567890123456789;
        float var5 = 0.1234567890123456789F;

        System.out.println("var1: " + var1);
        System.out.println("var3: " + var3);
        System.out.println("var4: " + var4);
        System.out.println("var5: " + var5);

        //e사용하기
        int var6 = 3000000;
        double var7 = 3e6;
        float var8 = 3e6F;
        double var9 = 2e-3;
        System.out.println("var6: " + var6);
        System.out.println("var7: " + var7);
        System.out.println("var8: " + var8);
        System.out.println("var9: " + var9);
    }
}

 

 


논리 타입

  • blooean은 1byte로 표현되는 논리값(true/false)을 저장할 수 있는 데이터 타입
  • 두 가지 상태값을 저장할 필요성이 있을 경우에 사용
  • 조건문과 제어문의 실행 흐름을 변경하는데 주로 이용
package thisisjava.chap02.num02;

public class BooleanExample {
    public static void main(String[] args) {
        boolean stop = true;
        if (stop) {
            System.out.println("중지합니다");
        } else {
            System.out.println("시작합니다");
        }
    }
}

> stop = true라서 "중지합니다" 출력

> stop = false라면 "시작합니다" 출력

 

 

 

'이것이 자바다' 공부 기록
300x250