ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 기본 자료형
    Language 2022. 3. 7. 18:00

    변수는 선언 시 자료형을 결정해줘야 한다.

     

    1. 정수 자료형 : byte, short, int, long

    이들의 차이는 메모리 공간의 크기 차이에 있다.

     

    메모리 절약을 위해서는 다음과 같이 가능한 한 변수에 최대한 작은 메모리를 할당하는 것이 옳아보인다.

    하지만 이 경우 에러가 발생한다.

    왜냐하면 자바 가상머신은 정수형 연산을 int형으로만 수행하기 때문이다.

    따라서, 각 변수를 먼저 int로 변환한 후 연산이 수행되는데, 문제는 이 결과 값을 변수 result에 저장할 때 생긴다.

    결과값은 4byte의 int형인데, result는 2byte의 short형이기 때문이다.

     

    따라서 처음부터 int로 선언하는 것이 낫다.

    short로 선언할 경우 데이터 변환 과정만 추가될 뿐이기 때문이다.

     

    # 참고 : 연산 시 long은 int로 변환되지 않는다! 데이터 손실을 일으키지 않기 위해서이다.

    # 참고 : 그럼 byte, short 형은 어디에 쓰는가? 프로그램 상에서 잦은 연산이 필요하지 않은 데이터를 저장할 때 쓰인다!

     

     

    2. 실수 자료형 : float, double

    1과 2 사이에는 무한대의 실수 값이 존재한다.

    1/3과 같이 딱 떨어지지 않는 값을 컴퓨터는 어떻게 변수에 저장할까?

    바로 정밀도를 높여 오차를 최대한 줄이는 것이다.

    float는 소수점 이하 6자리까지, double은 소수점 이하 15자리까지 오차를 보이지 않는다.

    하지만 그 이하부터 오차가 발생하는데, 그 오차로 인해 결과값의 오차 범위는 더 커진다.

    따라서 실수의 연산은 기본적으로 오차가 존재한다고 가정해야 한다.

     

     3. 문자 자료형 : char

    컴퓨터는 0과 1로만 정보를 입력 및 출력한다.

    그렇다면 문자는 어떻게 표현되는 것일까?

    각각의 문자에 고유한 숫자를 부여하는 수 밖에 없다.

    그래서 문자에 대한 표현 약속을 정해 전세계에서 사용할 수 있는 문자세트가 만들어졌는데, 이것이 Unicode다.

    예시를 보자.

    결과는 동일하다

    변수 ch1, ch2에 입력한 것과 같이 문자를 입력할 경우 컴파일러는 이를 Unicode 값으로 치환한다.

    즉, 변수에 실제 저장되는 값은 Unicode 값이다.

     

    ch5, ch6에는 Unicode 값을 16진수로 표기하였다.

    앞의 0x는 이것이 16진수임을 나타내며, 그 뒤는 수의 크기를 숫자 0~9와 알파벳 a~f 로 표현한다. 

    이 때, a~f는 10부터 15에 대응된다.

     

     

    4. 논리 자료형 : boolean

    참과 거짓을 나타내는 값은 true, false다.

     

    예제 실행 결과

     

    'Language' 카테고리의 다른 글

    [Java] 이항연산자, SCE  (0) 2022.03.07
    [Java] 형 변환  (0) 2022.03.07
    [Java] 상수(Constants)  (0) 2022.03.07
    [Java] 변수와 자료형  (0) 2022.03.07
    [Java] 공부 시작, 문자열 출력  (0) 2022.03.07
Designed by Tistory.