자바 프리미티브 소개

설아아빠·2022년 6월 3일
0

baeldung

목록 보기
2/24
post-thumbnail

Introduction to Java Primitives

1. 개요

Java 프로그래밍 언어에는 8가지 기본 데이터 유형이 있습니다.

이 튜토리얼에서는 이러한 프리미티브가 무엇인지 살펴보고 각 유형을 살펴보겠습니다.

2. 원시 데이터 유형

Java에 정의된 8개의 기본 요소는 int , byte , short , long , float , double , boolean 및 char 입니다.
이들은 객체로 간주되지 않으며 원시 값을 나타냅니다.스택에 직접 저장됩니다.

2.1. int

우리가 다룰 첫 번째 기본 데이터 유형은 int 입니다. 정수라고도 하는 int 유형은 분수가 아닌 다양한 값을 보유합니다.
특히 Java는 32비트 메모리를 사용하여 저장합니다. 즉, -2,147,483,648(-2^31)부터 2,147,483,647(2^31-1)까지의 값을 나타낼 수 있습니다.
Java 8에서는 새로운 special helper functions를 사용하여 최대 4,294,967,295(2^32 -1) 의 unsigned integer 값을 저장할 수 있습니다.

간단히 int 를 선언할 수 있습니다 .

int x = 424242;

int y;

할당 없이 선언 된 int 의 기본값 은 0입니다.

변수가 메서드에 정의되어 있으면 값을 할당해야 사용할 수 있습니다.

int 에 대해 모든 표준 산술 연산을 수행할 수 있습니다 . 정수에 대해 이러한 작업을 수행할 때 소수 값이 잘릴 것이라는 점에 유의 하십시오.

2.2. byte

byte 는 8비트의 메모리만 차지 한다는 점을 제외하고 는 int 와 유사한 기본 데이터 유형 입니다.
이것이 우리가 그것을 바이트라고 부르는 이유입니다.
메모리 크기가 너무 작기 때문에 바이트 는 -128(-2^7 )에서 127(2^7 – 1) 사이의 값만 보유할 수 있습니다 .

byte 를 생성하는 방법은 다음과 같습니다 .

byte b = 100;

byte empty;

또한 다른 유형과 유사하게 기본값은 0입니다. 여기에도 모든 표준 산술을 사용할 수 있습니다.

2.4. long

정수와 관련된 마지막 기본 데이터 유형은 long 입니다.

long 은 int 의 형입니다 . 64비트 메모리에 저장 되므로 훨씬 더 많은 가능한 값 집합을 보유할 수 있습니다.

long의 가능한 값은 -9,223,372,036,854,775,808(-2^63 )에서 9,223,372,036,854,775,807(2^63 – 1) 사이입니다.

우리는 간단히 다음 중 하나를 선언할 수 있습니다.

long l = 1234567890;

long l;

다른 정수 유형과 마찬가지로 기본값도 0 입니다. int 에서 작동하는 long 에서 모든 산술을 사용할 수 있습니다 .

2.5. float

float 유형 을 사용하여 Java에서 기본 분수를 나타냅니다. 단정밀도 십진수입니다. 즉, 소수점 6자리를 넘으면 숫자가 덜 정확해지고 추정치에 가깝습니다.
대부분의 경우 정밀도 손실은 신경 쓰지 않습니다. 그러나 계산에 절대적인 정확성이 필요한 경우(예: 재무 운영, 달 착륙 등) 이 작업을 위해 설계된 특정 유형을 사용해야 합니다. 자세한 내용은 Java 클래스 Big Decimal 을 확인하십시오.
이 유형은 int 처럼 32비트 메모리에 저장됩니다. 그러나 부동 소수점 때문에 그 범위가 많이 다릅니다. 양수와 음수를 모두 나타낼 수 있습니다. 가장 작은 소수는 1.40239846 x 10^-45 이고 가장 큰 값은 3.40282347 x 10^38 입니다.
float 를 다른 유형과 동일하게 선언 합니다.

float f = 3.145f;

float f;

그리고 기본값은 0 대신 0.0입니다. 또한 f 지정을 리터럴 숫자 끝에 추가하여 float를 정의한다는 점에 유의하십시오. 그렇지 않으면 10진수 값의 기본 유형이 double 이므로 Java에서 오류가 발생합니다 .
또한 float 에 대해 모든 표준 산술 연산을 수행할 수 있습니다 . 그러나 부동 소수점 산술을 정수 산술과 매우 다르게 수행한다는 점에 유의하는 것이 중요합니다.

2.6. double

다음으로 double 을 살펴봅니다 . 그 이름은 배정도 십진수라는 사실에서 비롯됩니다.

64비트 메모리에 저장됩니다. 이것은 float 보다 훨씬 더 넓은 범위의 가능한 숫자를 나타낸다는 것을 의미합니다 .

그러나 float 와 동일한 정밀도 제한 이 있습니다. 범위는 4.9406564584124654 x 10^-324 ~ 1.7976931348623157 x 10^308 입니다. 그 범위는 양수 또는 음수일 수도 있습니다.

double 선언 은 다른 숫자 유형과 동일합니다.

double d = 3.13457599923384753929348D;

double d;

기본값도 float 와 마찬가지로 0.0 입니다. float와 유사하게 문자 D 를 첨부 하여 리터럴을 double로 지정합니다.

2.7. boolean

가장 간단한 기본 데이터 유형은 boolean 입니다. true 또는 false 의 두 가지 값만 포함할 수 있습니다 . 단일 비트에 값을 저장합니다.
그러나 편의를 위해 Java는 값을 채우고 단일 바이트에 저장합니다.
boolean 을 선언하는 방법은 다음과 같습니다 .

boolean b = true;

boolean b;

값 없이 선언하면 기본값은 false 입니다. boolean은 프로그램 흐름을 제어하는 초석입니다. 부울 연산자를 사용할 수 있습니다(예: and , or 등).

2.8. char

마지막으로 살펴볼 기본 데이터 유형은 char 입니다.

문자라고도 하는 char 는 유니코드로 인코딩된 문자를 나타내는 16비트 정수입니다. 범위는 0에서 65,535까지입니다.
유니코드에서 이것은 '\u0000' 을 '\uffff' 로 나타냅니다 .
가능한 모든 유니코드 값 목록은 Unicode Table 과 같은 사이트를 확인하십시오 .
이제 char 를 선언해 보겠습니다 .

char c = 'a';

char c = 65;

char c;
변수를 정의할 때 모든 문자 리터럴을 사용할 수 있으며 자동으로 유니코드 인코딩으로 변환됩니다. 캐릭터의 기본값은 '/u0000' 입니다.

2.9. Overflow

기본 데이터 유형에는 크기 제한이 있습니다. 하지만 최대값보다 큰 값을 저장하려고 하면 어떻게 될까요?
Overflow 라는 상황이 발생 합니다 .
정수가 Overflow되면 최소값으로 롤오버되고 거기서부터 카운트 업을 시작합니다.
Infinity를 반환하여 부동 소수점 수 오버플로:

int i = Integer.MAX_VALUE;
int j = i + 1;
// j will roll over to -2_147_483_648

double d = Double.MAX_VALUE;
double o = d + 1;
// o will be Infinity

Underflow 는 최소값보다 작은 값을 저장한다는 점을 제외하고는 동일한 문제입니다. 숫자가 언더플로되면 0.0을 반환합니다.

2.10. Autoboxing

각 기본 데이터 유형에는 랩핑할 수 있는 완전한 Java 클래스 구현도 있습니다.
예를 들어 Integer 클래스는 int 를 래핑할 수 있습니다 . 때때로 원시 유형에서 객체 래퍼로 변환해야 할 필요가 있습니다(예: 제네릭 과 함께 사용).
운 좋게도 Java는 Autoboxing 이라고 하는 프로세스인 이 변환을 자동으로 수행할 수 있습니다 .

Character c = 'c';

Integer i = 1;
profile
back-end(java), front-end (조금)

0개의 댓글