프로그래밍 언어/Java

[Java] 변수와 상수, 변수의 타입

happy_life 2022. 6. 18. 20:08

목차

1. 변수와 상수

2. 변수의 타입

 

1. 변수와 상수

	/**
         * 변수의 선언
         */
        float a;
        // float는 변수 타입
        // a는 변수 이름

        /**
         * 변수의 초기화
         */
        a = 35;

1.1 변수

변수란?

단 하나의 값을 저장할 수 있는 메모리 공간

 

변수타입

변수에 저장될 값이 어떤 타입인지를 지정하는 것

예제의 경우에서 float

 

변수이름

변수로 사용할 메모리 공간에 붙인 이름

예제의 경우에서

 

변수를 선언하면, 변수타입에 알맞은 크기의 저장공간이 확보되고, 이를 a라는 이름을 통해 사용할 수 있게 된다. 한편 변수는 선언이후 초기화가 필요하다. 

 

변수의 초기화

변수를 사용하기 전에 처음으로 값을 저장하는 것

 

1.2 상수

상수란?

변수와 마찬가지로 '값을 저장하는 공간'이지만, 바꿀 수 없다.

상수는 반드시 선언과 동시에 초기화해야 하며, 그 후부터는 상수의 값을 변경할 수 없다.

상수의 경우 이름은 모두 대문자로 하는 것이 암묵적인 관례이다.

ex) final int MAX = 10;

 

상수를 쓰는 이유

의미 있는 이름을 붙여 코드의 이해를 쉽게 만든다.

final int SUM = 100;
final int COUNT = 5;
int average = SUM / COUNT;

 

 

 

2. 변수의 타입

변수의 타입을 자료형이라고 한다. 자료형에는 문자형(char), 정수형(int, long), 실수형(float) 등이 있으며, 변수를 선언할 때는 저장하려는 값의 특성을 고려해야 한다.

 

2.1 기본형과 참조형

자료형에는 기본형과 참조형이 있다. 기본형은 실제 값(data)를 저장하는 반면, 참조형 변수는 어떤 값이 저장되어 있는 주소를 값으로 갖는다.

 

-기본형

 

총 8개가 있다.

1) 논리형(boolean)

 - true와 false 중 하나의 값을 갖는다.

 

2) 문자형(char)

 - 문자를 저장하며, 하나의 문자만 저장할 수 있다.

 - char 타입의 크기는 2byte(16bit)이므로, 16자리의 2진수로 표현할 수 있는 정수의 개수 2**16의 코드를 사용할 수 있다.

 - 예를 들어 문자 A를 저장하면 0000000001000001(2)로 저장된다. (A의 유니코드 65)

 

3) 정수형(byte, short, int, long)

 - 정수를 저장하는데 사용되며, 주로 int가 사용된다.

 - 모든 정수는 부호있는 정수이므로, 왼쪽의 첫번째 비트를 부호 비트(sign bit)로 사용하고, 나머지는 정수를 표현 하기 위     해 사용한다.

  * 오버 플로우: 타입이 표현할 수 있는 값의 범위를 넘어서는 것

 ex) 4bit로는 4자리의 2진수만 저장할 수 있는데, 5자리로 넘어가는 경우 오버플로우가 발생한다. 부호 있는 정수는 부호           비트가 바뀔 때 오버플로우가 발생한다.

 

4) 실수형(float, double)

 - 실수를 저장하는데 사용된다.

 - float 형은 7자리의 10진수를 오차 없이 저장할 수 있고, double 형은 15자리의 10진수를 오차 없이 저장할 수 있다.

 

실수형의 저장 형식

1. 부호(Sign bit)

 - 양수이면 0, 음수이면 1을 저장한다.

 

2. 지수(Exponent)

 - 8bit의 저장공간을 갖고 -127~128의 값이 저장된다. 

 

3. 가수(Mantissa)

 - 2진수 23자리로는 약 7자리의 10진수를 저장할 수 있는데, 이것이 바로 float의 정밀도이다. double은 가수를 저장할 공간이 52자리로 약 2배이므로 정밀도도 약 2배이다.

 

 

 

 

각각의 크기는 아래의 도표와 같다.

코드 예제

        Boolean trueOrFalse = true;
        char a = 'A';
        int b = 30;
        long c = 30L; //long 형에는 L을 붙여줘야 함
        float d = 30F; // float 형에는 F를 붙여줘야함
        double f = 30;

        System.out.println("trueOrFalse = " + trueOrFalse);
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);
        System.out.println("d = " + d);
        System.out.println("f = " + f);

 

 

-참조형

이 외에 다른 모든 것을 참조형 변수라고 한다. 주소 값이 저장되어 있다.