[JAVA] 2-1. 자바의 기본 데이터 타입 종류와 특징

Re_Go·2024년 5월 25일
0

JAVA

목록 보기
2/37
post-thumbnail

자바의 데이터 타입도 자바스크립트와 같이 기본형 타입참조형 타입 이 존재하는데요. 다만 앞서 설명한대로 데이터의 타입과 크기에 따라 선언되는 데이터 타입의 종류 또한 달라지며, 각 데이터의 타입과 용량에 맞도록 적절한 범주의 그릇을 골라 담아야 하기 때문에 이를 미리 알아두고 있는 것이 중요하겠습니다.

1. 정수형 타입

자바에서 숫자 데이터의 타입은 크게 정수형 타입실수형 타입(부동소수점 타입), 두 가지로 나뉩니다. 우선 정수형 타입 은 다음과 같으며, 데이터의 용량에 따라 담을 그릇이 바뀐다고 생각하시면 편하겠습니다.

해당 타입의 데이터 값이 타입과 맞지 않을 경우 발생되는 대표적인 오류로는 Type mismatch 오류가 있습니다.

  1. byte (1 byte | 범위 : -128 ~ 127)
byte b1 = 1;
byte b2 = 128; // Byte 타입의 범위에 벗어나므로 mismatch 오류 발생
  1. short (2 bytes | 범위: -32,768 ~ 32,767)
short s1 = 1000;
short s2 = 40000; // Short 타입의 범위를 벗어나므로 컴파일 오류 발생
  1. int (4 bytes | 범위: -2,147,483,648 ~ 2,147,483,647)
int i1 = 100000;
int i2 = 3000000000L; // int 타입의 범위를 벗어나므로 컴파일 오류 발생 (정수 리터럴은 기본적으로 int)
  1. long (8 bytes | 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
long l1 = 10000000000L;
long l2 = 9223372036854775808L; // Long 타입의 범위를 벗어나므로 컴파일 오류 발생

이때 정수를 담는 방식에 있어서도 진수를 활용하여 담는 것이 가능한데, 각 진수를 표현하는 방법은 다음과 같습니다.

int binary = 0b101010; // 2진수 표현으로, 0b 혹은 0B를 접두어로 붙인 후 0과 1을 연속해서 작성해줍니다. 
int octal = 052; // 8진수 표현으로, 0을 접두어로 붙인 후 0부터 7 사이의 숫자를 연속해서 작성해 줍니다.
int decimal = 42; // 10진수 표현으로, 0부터 9 사이의 숫자를 연속해서 작성해 줍니다. 
int hex = 0x2A; // 16진수 표현으로, 0x를 접두어로 붙인 후 0부터 9 사이의 숫자나 대소문자 구분 없이 a부터 f 사이의 알파벳을 작성해 줍니다.

2. 실수형(부동소수점) 타입

자바에서는 실수를 고정소수점 이 아니라 부동소수점 이라고도 표현을 하는데요. 간단하게만 말하자면 제한된 범위인 고정 소수점에 비해 표현되는 범위가 많아지기 때문부동소수점을 사용한다고 합니다.

  1. float (4 bytes | 범위: ±1.4E-45 ~ ±3.4E38, 정밀도 약 7자리)
float f1 = 3.14f;
float f2 = 3.4028236E38f; // float 타입의 범위를 벗어나므로 컴파일 오류 발생
  1. double (8 bytes | 범위: ±4.9E-324 ~ ±1.7E308, 정밀도 약 15자리)
double d1 = 3.141592653589793;
double d2 = 1.7E309; // double 타입의 범위를 벗어나므로 컴파일 오류 발생

3. 문자 타입

문자 타입은 말 그대로 문자를 담아낼 수 있는 데이터 타입을 의미합니다.

이 타입은 작은 따옴표('')로 감싸 표현 하는데요. 문자를 입력하면 유니코드에 따라 0부터 65535 사이에 배정 된 코드로 매핑되기 때문에 결과적으로 정수형 타입으로도 볼 수 있습니다.

char ch1 = '1'; // 유니코드로 49를 의미하므로 정수 49가 저장된 후 출력시에는 문자 '1'로 치환되어 출력됩니다.
char ch2 = 'a'; // 유니코드로 97를 의미하므로 정수 97이 저장된 후 출력시에는 문자 'a'로 치환되어 출력됩니다.
char ch3 = 'A'; // 유니코드로 65를 의미하므로 정수 65가 저장된 후 출력시에는 문자 'A'로 치환되어 출력됩니다.

4. 논리 타입

자바에서 논리 타입은 true와 false 단 두가지가 존재합니다. 즉 자바스크립트처럼 데이터의 타입에 따라 true와 false로 취급되는 데이터들인 truthy와 falsy 타입이 따로 없고, 위에서 말씀드린 단 두 가지 데이터가 존재한다는 것입니다.

boolean state1 = true;
boolean state2 = false;

if(state1) {System.out.println("해당 변수는 true 입니다.")};
else {System.out.println("해당 변수는 false 입니다.")};

참고로 boolean은 데이터의 유무를 판단하는 값으로 사용될 경우 접두어로 is를 붙여줍니다.

// 체크가 되었는지 안되었는지 알아볼 때 사용하는 변수의 네이밍
boolean isCheck = true;

5. 참고 사항

변수는 기본적으로 카멜 케이스를 네이밍으로 사용합니다. 또한 선언하고자 하는 변수들의 타입이 같을 경우 한 줄에 같이 써서 타입 중복 선언을 생략 할 수 있으며, 상수(변하지 않는 값)를 저장할 때에는 네이밍을 대문자로 지정합니다.

// 같은 타입들의 변수를 한 줄에 카멜 케이스로 정의
int firstName=10, secondName=20, thirdName=30; 

// 100이라는 고정된 값을 담은 변수(final 키워드를 사용하면 단 한번만 할당 가능) 의 네이밍
final int MAX_WIDTH = 100; 
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글