java

[JAVA] 자바의 자료형 (Data Type)

dackyy 2022. 7. 9. 14:57
반응형

1. Java Data Type


    자바에는 기본형Primitive Type과 참조형Reference Type이 있습니다.

    일반적인 분류는 다음과 같이 가집니다.

               자료형 자료의 크기 값의 범위
부울대수 (논리형) boolean 1byte true, false
정수 byte 1byte -2^7 ~ 2^7
  short 2byte -2^15 ~ 2^15
  int 4byte -2^31 ~ 2^31
  long 8byte -2^63 ~ 2^63
실수 (부동 소수점형) float 4byte +-(1.4 * 10^-45 ~
3.4 * 10^38)
  double 8byte +-(4.94 * 10^-324 ~ 
1.79 * 10^308)
문자(정수) char 2byte 유니코드 문자
(0~2^16-1)

1. 부울대수 자료형 - boolean

boolean 은 true(참) 과 false(거짓)의 값만 저장할 수 있는 자료형이다. 불리언은 이렇게 2가지 값만 포함할 수 있어 실제로는 1bit 로도 충분하지만, 자료처리의 최소 단위가 바이트이므로 1byte 가 할당되고 나머지 7bit는 사용하지 않는다.

boolean a = true;
boolean b = false;

2. 정수 자료형 - byte, short, int, long 

정수를 저장할 수 있는 4가지 자료형이므로 크기가 각각 1byte, 2byte, 4byte, 8byte 이다.

byte a = 1;
short b = 2;
int c = 4;
long d = 8;
더보기
공간 낭비를 막기위해 여러크기의 자료형을 사용하며 각 자료형에 알맞은 값을 저장한다면 메모리 누수를 막을 수  있다!
자바에서는 대입 연산자를 기준으로 양쪽 자료형이 일치해야하지만, 크기가 작은 자료형을 큰 자료형에 대입하면 컴파일러가 자동 타입변환 을 수행하여 long = int 의 형태를 long = long 형태로 변환 해주므로 자료형을 일치하게 만든다. 단, 큰 자료형에서 작은 자료형으로의 변환은 자동으로 일어나지 않는다.

 

3. 실수 자료형 - float, double

실수도 크기가 서로 다른 2가지 자료형을 제공한다. 매우 넓은 범위의 값을 저장할 수 있다.

자바는 실수 리터럴을 double 자료형으로 인식한다. 단, float를 나타내는 F(또는 f) 를 실수 리터럴 뒤에 붙이면 float 자료형으로 인식한다.

float a = 3.5F; //float형
double b = 3.5; 
double c = 5; //double형
float d = 3.5; //double형

4. 문자 자료형 -char

char 은 문자를 저장하는 자료형으로, 문자를 작은 따옴표(")안에 표기한다. char 자료형은 정수를 저장할 수도 있지만, 앞에서 배운 4가지 정수 자료형과 차이가 있다. char a = 'A'와 같이 작성한다면 변수 a의 공간이 만들어지고, 그 안에 문자가 들어가야 한다. 하지만 메모리에는 문자를 기록할 수 없다. 메모리에는 2진수 값만 저장할 수 있는 공간이기 때문이다.

유니코드 표

비법은 이 유니코를 이용해 저장한다. char 자료형 메모리안은 문자가 아니라 정수가 저장된 형태이므로 char 에 문자에 해당하는 정숫값을 입력해도 똑같은 결과를 얻을 수 있다.

char a = 'A';		// 문자
char b = 65;		// 10진수
char c = 0b1000001;	// 2진수
char d = 00101;		// 8진수
char e = 0x0041;	// 16진수
char f = '\u0041';	// 유니코드


참고문헌 Do it 자바 완전정복

반응형