1 분 소요

앞선 포스트들에서 정수와 실수의 표현방식과 자료형에 대해 공부했습니다. 이번에는 나머지 자료형들에 대해 공부하겠습니다.

1. 정수 자료형

Java는 총 4개의 정수 자료형을 제공합니다. byte, short, int, long형이 있고
(각각 1,2,4,8byte)
해당 자료형으로 선언된 변수에는 소수점 이하의 값을 가지는 실수를 대입할 수 없습니다.
여기서 주의할 점은 메모리 공간만을 생각하고 코딩하면 안된다는 점입니다.

Java는 정수형 연산을 진행할 때, 모든 피연산자를 int형으로 변환하는 과정을 거칩니다.
(정수의 기본형이 int)
따라서 일반적으로 int를 사용하는게 가장 합리적인 선택입니다.

2. 실수 자료형

소수점 이하의 값을 지니는 실수의 표현을 위한 자료형은 flote와 double이 있습니다.
(4, 8byte)
실수의 경우 정밀도에 의해 선택하면 되는데, float는 소수점 이하 6자리의 정밀도, double은 소수점 이하 15자리의 정밀도를 갖기 때문에 표현하고자 하는 값에서 요구하는 정밀도를 기준으로 자료형을 선택하면 됩니다.

소수부가 큰 실수의 표현을 위해 Java에서는 e표기법을 지원합니다.

class ENotation{
    public static void main(String[] args){
        double e1 = 1.2e-3;
        double e2 = 1.2e+3;
}

e1은 1.2 * 10^-3d을 나타냅니다. 즉 e-3은 10^-3으로 이해하면 됩니다.

3. 문자 자료형

하드웨어는 오직 숫자만을 인식하고 표현할 수 있기 때문에 문자를 숫자로 표현할 수밖에 없습니다.

정확히 숫자로 표현되는 것은 아닙니다. 문자는 비트의 조합으로 구성되며, 숫자와 문자값을 인코딩, 디코딩 함으로써 표현됩니다.
인코딩은 각 문자에 따른 특정한 숫자 값(코드 값)을 부여하는 것이고,
디코딩은 숫자 값을 원래의 문자로 변환시키는 과정입니다.

각 문자에 따른 숫자 값 즉 코드 값은 문자세트라는 곳에 정해져 있습니다.
대표적으로 아스키코드(ASCII)와 유니코드(Unicode)가 있는데, Java는 유니코드를 사용하고 있습니다.
유니코드는 1byte로 영문자, 숫자, 특수문자를 표현하는 아스키코드와 다르게 2byte로 표현합니다.
2바이트를 사용하기 때문에 한글과 같은 복잡한 언어를 표현하기 적합합고, 대표적으로 UTF-8, UTF-16이 있습니다.

유니코드의 예시로

char hangel = '\n4C00';
char hangel2 = '가';

둘다 ‘가’라는 문자를 저장합니다.

4. 논리 자료형(boolean)

참과 거짓의 표현을 위한 자료형을 논리 자료형이라고 합니다.
참은 true 거짓은 false로 표현합니다.

예시

boolean b1 = true;
boolean b2 = false;

5. 자료형 없이 변수 사용하기

Java 10 에서만 가능한 지역 변수 자료형 추론이 있습니다. (local variable type inference)
변수에 대입되는 값을 보고 컴파일러가 추론해서 적당한 자료형을 대입해줍니다.
(지역 변수 한정)

예시

var num = 10;
var dNum = 10.0;
var str = "hello";

위의 코드는

int num = 10;
double dNum = 10.0;
String str = "hello";

와 동일합니다.

태그:

카테고리:

업데이트:

댓글남기기