본문 바로가기
Java

JAVA 변수의 타입

by titlejjk 2023. 4. 25.

우리가 주로 사용하는 값(data)의 종류(type)는 크게 '문자와 숫자'로 나눌 수 있으며, 숫자는 다시 '정수와 실수'로 나눌 수 있다.

저장될 공간의 크기와 저장형식을 정의한 것이 자료형(data type)이다. 자료형에는 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)등이 있으며, 변수를 선언할 때는 저장하려는 값의 특성을 고려하여 가장 알맞은 자료형을 변수의 타입으로 선택하면 된다.

https://catsbi.oopy.io/6541026f-1e19-4117-8fef-aea145e4fc1b

기본형과 참조형

자료형은 크게 '기본형'과 '참조형' 두 가지로 나눌 수 있는데, 기본형 변수는 실제 값(data)을 저장하는 반면, 참조형 변수는

어떤 값이 저장되어 있는 주소(memory address)를 값으로 갖는다.

더보기

기본형(primitive type)

 - 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)
    계산을 위한 실제 값을 저장한다. 모두 8개가 있다.

참조형(reference type)

 - 객체의 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입.

 참조형 변수(또는 참조변수)를 선언할 때는 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조변수의 타입이 된다. 그래서 새로운 클래스를 작성한다는 것은 새로운 참조형을 추가하는 샘이다.

더보기

 클래스이름 변수이름; //변수의 타입이 기본형이 아닌 것들은 모두 참조변수이다.

 다음은 Date클래스 타입의 참조변수 today를 선언한 것이다. 참조변수는 null 또는 객체의 주소를 값으로 갖으며 참조변수의 초기화는 다음과 같이 한다.

더보기

Date today = new Date (); //Date객체를 생성해서, 그 주소를 today에 저장

객체를 생성하는 연산자 new의 결과는 생성된 객체의 주소이다. 이 주소가 대입연산자'='에 의해서 참조변수 today에 저장되는 것이다. 이제 참조변수 today를 통해서 생성된 객체를 사용할 수 있게 된다.

 

1. 기본형(primitive type)

기본형에는 총 8개의 타입이 있다.

먼저 정수형을 저장하는데 사용하는 byte, short, int, long

그리고 실수형을 저장하는 float, double

문자형을 저장하는 char

논리형을 저장하는 boolean

이렇게 있다.

각각의 특징을 알아 보자면

 

1. 정수형 타입
 

자바에서 정수란 부호를 가지고 있으며, 소수 부분이 없는 수를 의미한다. 기본적으로
byte, short, int, long을 사용하며 주로 int가 많이 사용된다. byte는 이진 데이터를 다룰때, short는 C언어와의 호환을 위해 사용된다.

정수형 타입 할당되는 메모리의 크기 데이터의 표현 범위
byte 1바이트 -128 ~ 127
short 2바이트 -32,768 ~ 32,767
int 4바이트 -2,147,483,648 ~ 2,147,483,647
long 8바이트 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

  정수형 데이터의 타입을 결정할 때에는 반드시 자신이 사용하고자하는 데이터의 최대 크기를 고려해야한다. 표현할 수 있는 범위를 벗어난 데이터를 저장하면, 오버플로우(overflow)가 발생해 전혀 다른 값이 저장되며, 각 타입마다 저장할 수 있는 값의 범위가 다르므로 저장할 값의 범위에 맞는 타입을 선택하면 된다.

 int타입이 가장 많이 사용되는 이유는 int는 CPU가 가장 효율적으로 처리할 수 있는 타입이기 때문이다. 이보다 더 효율적인 실행보다 메모리를 절약을 하고 싶으면, byte나 short를 사용하면 된다.

 

2. 실수형 타입

 실수란 소수부나 지수부가 있는 수를 가리키며, 정수보다 훨씬 더 넓은 표현 범위를 가진다. 자바의 기본 타입 중 실수는 

float와 double 타입이 있다.

 실수형 데이터의 타입을 사용할 때에는 표현 범위 이외에도 반드시 유효 자릿수를 고려해야한다.

실수형 타입 지수의 길이 가수의 길이 유효 자릿수
float 8비트 23비트 소수 부분 6자리까지 오차없이 표현할 수 있음.
double 11비트 52비트 소수 부분 15자리까지 오차없이 표현할 수 있음.
실수형 타입 할당되는 메모리의 크기
float 4바이트
double 8바이트

 실수형은 정수형과 저장형식이 달라서 같은 크기라도 훨씬 큰 값을 표현할 수 있으나 오차가 발생할 수 있다는 단점이 있다. 그래서 정밀도(precision)가 중요한데, 정밀도가 높을수록 발생할 수 있는 오차의 범위가 줄어든다.

 float의 경우 정밀도가 7자리 밖에 되지 않으므로 높은 정밀도가 요구된다면 double타입을 사용하는 것이 좋다.

 컴퓨터에서 실수를 표현하는 방식은 오차가 발생할 수 밖에 없는 태생적 한계를 지니는데 이러한 실수형 데이터의 오차는 자바뿐만이 아니라 모든 프로그래밍 언어에서 발생한다.

 

3. 문자형 타입

 자바에서 문자형 데이터란 작은 정수나 문자 하나를 표현하는 타입이다.

 컴퓨터는 2진수밖에 인식하지 못하므로 문자도 숫자로 표현해야 인식할 수 있는데, 어떤 문자를 어떤 숫자에 대응시킬 것인가에 대한 약속이 필요해진다.

 자바에서는 유니코드(unicode)를 사용하여 문자를 표현한다. 아스키코드는 영문자와 숫자밖에 표현 못 하지만, 유니코드는 각 나라의 모든 언어를 표현할 수 있다. 유니코드는 문자 하나를 16비트로 표현하므로, 총 65,536개의 문자를 표현할 수 있다.

 char는 자바에서 유니코드(2byte 문자체계)를 사용하므로 2byte이다.

문자형 타입 할당되는 메모리의 크기
char 2바이트

 

4. 논리형 타입

논리형은 참(true)이나 거짓 (false) 중 한 가지 값만을 가질 수 있는 불리언 타입을 말한다.

 boolean형의 기본값은 false이며, 기본 타입 중 가장 작은 크기인 1바이트의 크기를 가진다.

논리형 타입 할당되는 메모리의 크기 데이터의 표현 범위
boolean 1바이트 true 또는 false
종류 \ 크기 1byte 2byte 4byte 8byte
논리형 boolean      
문자형   char    
정수형 byte short int long
실수형     float double

'Java' 카테고리의 다른 글

JAVA 비교 연산자  (0) 2023.04.25
JAVA 산술 연산자  (0) 2023.04.25
JAVA 변수  (0) 2023.04.24
JAVA란?  (0) 2023.04.24
ECLIPSE 다운받기  (0) 2023.04.24

댓글