Java 기본 데이터 유형


변수는 값을 저장하기 위해 메모리에 적용됩니다. 즉, 변수를 생성할 때 메모리 공간을 신청해야 합니다.

메모리 관리 시스템은 변수 유형에 따라 저장 공간을 할당하며, 할당된 공간은 해당 유형의 데이터를 저장하는 데만 사용할 수 있습니다.

memorypic1.jpg

따라서 다양한 유형의 변수를 정의하여 정수, 소수 또는 문자를 메모리에 저장할 수 있습니다.

Java의 두 가지 주요 데이터 유형:

  • 내장 데이터 유형

  • 참조 데이터 유형


내장 데이터 유형

Java 언어는 8가지 기본 유형을 제공합니다. 6개의 숫자 유형(4개의 정수, 2개의 부동 소수점 유형), 문자 유형 및 부울 유형.

바이트:

  • 바이트 데이터 유형은 2의 보수로 표현되는 8비트 부호 있는 정수입니다. 최소값은 -128(-2^7)입니다.

  •                 최대값은 127(2^7-1)입니다.

  •                   기본값은 0입니다.

  •               byte 변수는 int 유형 공간의 1/4만 차지하기 때문에 주로 정수를 대체하여 대규모 배열에서 공간을 절약하는 데 사용됩니다.                 예: 바이트 a = 100, 바이트 b = -50.

  • 짧은:
  • 짧은 데이터 유형은 2의 보수로 표현되는 16비트 부호 있는 정수입니다.

                      최소값은 -32768(-2^15)입니다.

  •                   최대값은 32767(2^15 - 1)입니다. Short 데이터 유형은 바이트와 같은 공간을 절약할 수도 있습니다. 짧은 변수는 int 유형 변수가 차지하는 공간의 절반입니다. 기본값은 0입니다.

  •               예: 짧은 s = 1000, 짧은 r = -20000.

  • int:
  • int 데이터 유형은
  •                   최소값은 -2,147,483,648(-2^31)입니다.
  •                   최대값은 2,147,483,647(2^31 - 1)입니다.
  •               일반적으로 정수 변수는 기본적으로 int 형식입니다. 기본값은 0입니다.

  •               예: int a = 100000, int b = -200000.

  • 긴:

Long 데이터 유형은

  •                    최소값은 -9,223,372,036,854,775,808(-2^63)입니다.

  •                       최대값은 9,223,372,036,854,775,807(2^63 -1)

  •                   이 유형은 큰 정수를 비교해야 하는 시스템에서 주로 사용됩니다.               기본값은 0L입니다.

  •               예: 긴 a = 100000L, 긴 b = -200000L.

  • float:
  • float 데이터 유형은 IEEE 754 표준을 준수하는 단정밀도 32비트 부동 소수점 숫자입니다. float는 대규모 부동 소수점 배열을 저장할 때 메모리 공간을 절약할 수 있습니다. 기본값은 0.0f입니다.

                부동 소수점 숫자는 통화와 같은 정확한 값을 나타내는 데 사용할 수 없습니다. 예: float f1 = 234.5f.

  • 더블:
  • double 데이터 유형은 배정밀도, 64비트, IEEE 754 호환 부동 소수점 숫자입니다.
  • 부동 소수점 숫자의 기본 유형은 double 유형입니다.                 double 유형은 통화와 같은 정확한 값을 나타낼 수도 없습니다. 기본값은 0.0d입니다.
  •                 예: 더블 d1 = 123.4.
부울:

    부울 데이터 유형은 정보 1비트를 나타냅니다.                 true와 false의 두 가지 값만 있습니다. 이 유형은 참/거짓 상황을 기록하는 플래그로만 사용됩니다.
  •               기본값은 false입니다.

  •               예: 부울 1 = true.

문자:

  • char 유형은 단일 16비트 유니코드 문자입니다.

  •               최소값은 'u0000'(즉, 0)입니다.                 최대값은 'uffff'(즉,

  •                   char 데이터 유형은 모든 문자를 저장할 수 있습니다.

  •                 예: 문자 = 'A'.


  • Instance
public class PrimitiveTypeTest {  
    public static void main(String[] args) {  
        // byte  
        System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);  
        System.out.println("包装类:java.lang.Byte");  
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  
        System.out.println();  
  
        // short  
        System.out.println("基本类型:short 二进制位数:" + Short.SIZE);  
        System.out.println("包装类:java.lang.Short");  
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  
        System.out.println();  
  
        // int  
        System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);  
        System.out.println("包装类:java.lang.Integer");  
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
        System.out.println();  
  
        // long  
        System.out.println("基本类型:long 二进制位数:" + Long.SIZE);  
        System.out.println("包装类:java.lang.Long");  
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  
        System.out.println();  
  
        // float  
        System.out.println("基本类型:float 二进制位数:" + Float.SIZE);  
        System.out.println("包装类:java.lang.Float");  
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  
        System.out.println();  
  
        // double  
        System.out.println("基本类型:double 二进制位数:" + Double.SIZE);  
        System.out.println("包装类:java.lang.Double");  
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);  
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);  
        System.out.println();  
  
        // char  
        System.out.println("基本类型:char 二进制位数:" + Character.SIZE);  
        System.out.println("包装类:java.lang.Character");  
        // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台  
        System.out.println("最小值:Character.MIN_VALUE="  
                + (int) Character.MIN_VALUE);  
        // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台  
        System.out.println("最大值:Character.MAX_VALUE="  
                + (int) Character.MAX_VALUE);  
    }  
}

인스턴스 실행 »
온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요

위 코드를 컴파일하여 출력한 결과는 다음과 같습니다.

基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535

Float 및 Double의 최소값과 최대값이 과학 표기법으로 출력됩니다. 끝에 "E+숫자"는 E 앞의 숫자가 있어야 함을 의미합니다. 10을 곱한 수의 힘입니다. 예를 들어 3.14E3은 3.14 × 103 =3140이고, 3.14E-3은 3.14 x 10-3 =0.00314입니다.

실제로 JAVA에는 또 다른 기본 유형인 void가 있으며 여기에는 해당 패키징 클래스인 java.lang.Void가 있지만 직접 작업할 수는 없습니다.


참조 유형

  •               Java에서 참조 유형 변수는 C/C++의 포인터와 매우 유사합니다. 참조 유형은 객체를 가리키고, 객체를 가리키는 변수는 참조 변수입니다. 이러한 변수는 Employee, Pubby 등 선언 시 특정 유형으로 지정됩니다. 변수가 선언되면 해당 유형을 변경할 수 없습니다.

  •               객체와 배열은 참조 데이터 유형입니다.

  •               모든 참조 유형의 기본값은 null입니다.

  •               참조 변수는 호환되는 모든 유형을 참조하는 데 사용할 수 있습니다.

  •               예: 사이트 사이트 = 새 사이트("php").


Java 상수

상수는 프로그램이 실행될 때 수정되지 않는 수량입니다.

Java에서 상수를 수정하려면 final 키워드를 사용하세요. 선언 방법은 변수와 유사합니다.

final double PI = 3.1415927;

상수 이름은 소문자로도 가능하지만 식별의 용이성을 위해 일반적으로 대문자를 사용하여 상수를 나타냅니다.

리터럴은 모든 내장 유형의 변수에 할당될 수 있습니다. 예:

byte a = 68;
char a = 'A'

byte, int, long, short는 모두 10진수, 16진수, 8진수로 표시될 수 있습니다.

상수를 사용할 때 접두사 0은 8진수를 나타내고, 접두사 0x는 16진수를 나타냅니다. 예:

int decimal = 100;
int octal = 0144;
int hexa =  0x64;

다른 언어와 마찬가지로 Java의 문자열 상수도 두 개의 따옴표 사이에 포함된 문자 시퀀스입니다. 다음은 문자열 리터럴의 예입니다.

"Hello World"
"two\nlines"
"\"This is in quotes\""

문자열 상수와 문자 상수 모두 모든 유니코드 문자를 포함할 수 있습니다. 예:

char a = '\u0001';
String a = "\u0001";

Java 언어는 일부 특수 이스케이프 문자 시퀀스를 지원합니다.

                기호                 문자 의미
                  n                 줄바꿈(0x0a)
                      r                 (0x0d)를 입력하세요
                    f                        폼 피드 문자(0x0c)
                    b                       백스페이스(0x08)
                      s                 공백(0x20)
                    t                 탭 문자
                "                    큰따옴표
                '                     작은따옴표
                \                     백슬래시
                ddd                 8진수 문자(ddd)
                    uxxxx                 16진수 유니코드 문자(xxxx)

이 섹션에서는 Java의 기본 데이터 유형을 설명합니다. 다음 섹션에서는 다양한 변수 유형과 그 용도를 살펴봅니다.