Java 기본 데이터 유형
변수는 값을 저장하기 위해 메모리에 적용됩니다. 즉, 변수를 생성할 때 메모리 공간을 신청해야 합니다.
메모리 관리 시스템은 변수 유형에 따라 저장 공간을 할당하며, 할당된 공간은 해당 유형의 데이터를 저장하는 데만 사용할 수 있습니다.
따라서 다양한 유형의 변수를 정의하여 정수, 소수 또는 문자를 메모리에 저장할 수 있습니다.
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의 기본 데이터 유형을 설명합니다. 다음 섹션에서는 다양한 변수 유형과 그 용도를 살펴봅니다.