지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 변수
자료형과 그 종류
지난 글에서 말했듯 변수는 저장되는 값의 형태에 따라 모습이 달라진다.
이렇게 변한 형태를 변수의 '자료형'이라고 한다.
이 자료형에는 기본 자료형과 참조 자료형으로 나뉘는데, 참조 자료형은 심화과정이므로
이번 글에서는 기본 자료형만을 다룰것이다.
기본 자료형의 종류
1.정수 자료형
정수 자료형은 양수, 음수, 0을 나타낼 때 사용하는 자료형이다.
표에서 볼 수 있듯 4가지로 자료형으로 나타낼 수 있다.
각 자료형은 메모리에서 사용하는 바이트 수와 용도가 다르다.
ㄱ)byte형
1바이트로 정수를 표현하는 자료형이다.
1바이트는 8비트이다. byte형으로 표현할 수 있는 범위는 (-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,776,000~9,223,372,036,854,775,999)이다.
long형을 사용할 때는 주의점이 있다.

이처럼 변수를 선언하면 두 문장 다 오류가 난다. 첫 번째 문장은 int형으로 표현할 수 있는
범위를 넘었기 때문이다. 그럼 long형으로 표현할 수 있는 두 번째 문장은 왜 오류가 났을까?
이유는 자바가 모든 정수 값을 기본으로 int형으로 처리해서이다. 이럴 때는 숫자를 long형으로
처리하라고 컴파일러에게 알려주어야 한다. 그 방법은 long형을 나타내는 L이나 l을 숫자 뒤에
붙여준다.

이러면 오류가 생기지 않는다.
2.문자 자료형
컴퓨터는 모든 데이터를 0과 1로만 표현하기에 문자 역시 컴퓨터 내부에서
0과 1의 조합으로 나타내야 한다. 그렇기에 어떤 문자를 컴퓨터 내부에서 표현하려면
특정 정수 값으로 정하자고 약속한다. 이런 코드 값을 모아 둔 것을 '문자 세트'라 하고
문자를 정해진 코드 값으로 변환하는 것을 '문자 인코딩(encoding)', 반대로 코드 값을
문자로 변환하는 것을 '문자 디코딩(decoding)'이라 한다.
문자 인코딩에는 영문자-대문자, 소문자, 숫자, 특수 문자, 기호 등을 1바이트로 표현하는
아스키(ASCII)코드가 기본적이다. 하지만 다른 언어는 복잡하고 다양해서 1바이트만으로 문자를 표현하기는 어렵다.
그래서 2바이트 이상을 사용해야 하는데, 이때각 언어의 표준 인코딩을 정의해 놓은 '유니코드'가 있다.
유니코드의 1바이트는 아스키 코드 값과 호환되고, 그 밖의 문자를 2바이트나 그 이상의 조합으로 나타낸다.
JAVA는 유니코드에 기반하여 문자를 표현하기에 문자 자료형인 char형은 2바이트를 사용한다.
ㄱ)char형
2바이트로 문자를 표현하는 자료형이다. 문자를 변수에 대입하면 문자 그대로 저장되는 것이 아니라
그 문자에 해당하는 정수 값(아스키 코드 값)으로 저장된다.


변수 ch1에 저장된 문자를 int형으로 변환하여 출력하면 그 문자에 해당하는 정수 값을 알 수 있다.
또 ch2처럼 문자형 변수(char)에 정수 값을 대입하면 그 정수에 해당하는 문자가 출력된다.
마지막으로 ch3처럼 정수형 변수(int)를 문자형으로 변환하여 출력하면 그 정수 값에 해당하는 문자가 출력된다.
프로그램에서 문자를 사용할 때는 항상 작은따옴표(')를 사용하고, 문자열을 사용할 때는 큰따옴표(")를 사용한다.
문자열은 "Hello world"처럼 여러 개의 문자를 큰따옴표로 감싸 표현하고 기본 자료형으로는 표현할 수 없고, 그
끝에는 항상 널 문자가 있다.

즉 'A'와 "A"는 다른 값인거다.

또는 밑처럼 유니코드 값을 직접 사용할 수도 있다.


ch2의 코드 값은 '한'이라는 글자의 유니코드 값이고 16진수로 나타낸다. 16진수 숫자 하나가
4비트를 사용하므로 한글 '한'이라는 글자를 표현하눈데 4비트 4개, 즉 2바이트를 사용한다.
3.실수 자료형
실수를 컴퓨터에서 표현하려면 부동 소수점 방식을 사용한다.
컴퓨터의 부동 소수점 방식은 밑수를 2로하고 지수 부분과 가수 부분을 각각 비트에 표현한다.
이때, 가수를 밑수보다 작은 한 자리짜리 가수로 표현하는 것을 정규화라고 한다.
식으로 표현하면 1.mX2ⁿ으로 표현할 수 있다. 이 방식을 사용하면 더 많은 실수를
더 세밀하게 표현할 수 있다.
ㄱ)float형
float형은 부호 1비트, 지수부 8비트, 가수 23비트로 총 32비트(4바이트)를 사용한다.
ㄴ)double형
double형은 부호 1비트, 지수부 11비트, 가수부 52비트로 총 64비트(8바이트)를 사용한다.
JAVA에서 실수는 double형을 기본으로 사용한다. float형(4바이트)에 비해 double형(8바이트)이
더 정밀하게 실수를 표현할 수 있다.


설명처럼 JAVA에서 실수는 double형을 기본으로 사용해 float형으로 대입되는 값 6.21은
double형이 아니라 float형으로 값이 대입된다는 뜻으로 F나 f를 숫자 뒤에 붙여 컴파일러에게
알려줘야 한다.
4.논리 자료형
논리 자료형은 어떤 변수의 참, 거짓의 값을 나타내는데 사용한다.
ㄱ)boolean형
boolean형 변수는 1바이트로 값을 저장한다. true(참), false(거짓) 두 가지 값만 가질 수 있다.


boolean형 변수는 true나 false만 대입할 수 있고 결과 값도 true나 false로만 출력된다.
참고 서적: 자바 프로그래밍 입문 - 박은종
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JAVA 입문 - 비트 연산자 (4) | 2022.05.02 |
---|---|
JAVA 입문 - 항과 연산자 (8) | 2022.05.02 |
JAVA 입문 - 형 변환 (0) | 2022.05.01 |
JAVA 입문 - 상수와 리터럴 (0) | 2022.05.01 |
JAVA 입문 - 변수 (1) | 2022.04.30 |