본문 바로가기

개발자 이야기/JAVA

자바 변수, 그리고 상수란 무엇인가 2편

요 며칠 동안은 회사 일이 바빠서 집에 늦게들어와서 곯아떨어져서 공부를 하지 못했다. 다행히도 오늘은 그나마 칼퇴(?)를 해서 얼른 씻고 자리에 앉았다. 하루에 한 글자라도 책을 보려고 했는데 그게 맘처럼 쉽지가 않다. 얼른 프로젝트가 어느정도 완성되어야 할텐데.. 그래야 공부할 시간이 좀 더 날텐데 조만간 여유가 좀 생기지 않을까 싶다. 그래도 책을 놓으면 공부를 안하게 되니 칼퇴해서 얼른 더 누워서 조금이라도 더 자고 싶지만 이렇게 앉았다.


요즘 자바의 정석을 3회째 읽으면서 공부를 하고 있는데, 사실 회사에서는 자바 공부보다는 다른걸 공부했으면 하는 것 같다. 나는 기초가 부족해서 기초를 다지려고 자바 공부를 다시 시작한건데.. 물론 이 책을 엄청나게 꼼꼼하게 읽는건 아니지만 어쨌든 시작했으니 후딱 끝내고 다른걸로 넘어가야겠다. 지난 포스팅에 이어서 이번 포스팅도 변수와 상수를 마저 정리하기로 했다. 그래서 이번 포스팅에서는 책에 나온대로 변수 타입이랑 상수를 간단하게 정리해야겠다.


▶︎ 변수타입(자료형, Data Type)


변수를 선언할 때 변수명 앞에 붙는 것이 바로 변수타입이다. 책에는 변수타입에 대한 정의가 자세하게 나와있지 않아서 인터넷을 검색해서 정리했다.


변수타입(자료형, Data Type)

컴퓨터 과학과 프로그래밍 언어에서 실수치, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류로서, 더 나아가 해당 자료형에 대한 가능한 값, 해당 자료형에서 수행을 마칠 수 있는 명령들, 데이터의 의미, 해당 자료형의 값을 저장하는 방식을 결정한다. [출처 : 위키피디아]


인터넷에 사전적인 의미는 이렇게 정의되어 있다. 이렇게 이해하면 좋겠지만 말이 어려우면 그냥 분리수거함을 떠올려서 생각하면 될 것 같다. 어려운 것도 나만의 방식으로 이해하고, 또 남에게 정의를 정확하게 설명해줄 수 있으면 그만이다. 이 변수타입을 간단하게 그림으로 정리해보았다.




우선 자료형은 크게 두 가지로 나눌 수 있다. 바로 기본형과 참조형이다. 사실 처음 배울때만 기본형, 참조형이라고 구분했지 그 다음부터 실제 일할 때나 학원에서 프로젝트를 할 때는 기본형, 참조형으로 따로 구분하지 않았던 것 같다. 그래도 책에 나왔으니 살펴보면, 기본형실제 데이터가 저장되는 공간을 말한다. 변수타입을 int로 선언하면 그 변수에는 int 범위의 숫자들만 들어갈 수 있고, char형으로 선언하면 문자만 들어가는 식이다. 그렇게 실제 들어갈 값의 형태를 미리 정해주는 것을 기본형이라고 하고, 참조형값이 저장되어 있는 주소를 나타낸다. 처음 공부할 때 이 개념이 정말정말 이해가 안됐는데, 나중에 클래스를 공부하고 또 실제로 일을 해보면서 이해하게 됐다. 


▶︎ 기본 자료형(Primary Type)


위에 정리한 그림처럼 기본 자료형은 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double이 있다. 위에 있는 그림은 정말 단순하게 표현한거고 이 각각을 자세하게 살펴보면 더 복잡하다. 정수형이 저렇게 여러개이고 실수형이 저렇게 여러개인 이유는 당연히 각각 차이가 있어서 그렇다. 밑에 표로 자세하게 정리해봤다.


 자료형

키워드 

크기 

표현 범위 

 논리형

boolean 

1byte 

true 또는 false(0과 1로 대체할 수 없음) 

 문자형

char 

2byte 

0 ~ 65,635 

 정수형

byte 

1byte 

-128 ~ 127 

 

short 

2byte 

-32,768 ~ 32,767 

 

int 

4byte 

-2,147,483,648 ~ 2,147,483,647 

 

long

8byte 

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 

 실수형

float 

4byte 

1.4E-45 ~ 3.4E38 

 

double

8byte 

4.9E-324 ~ 1.8E308 


이렇게 되어 있다. 사실 정수형과 실수형은 각각 int와 double을 많이 쓴다. 그렇기 때문에 정확한 수치를 알 필요는 없고 대략적으로만 알고 있으면 될 것 같다. 다만 특이한건 실수형은 float보다 double이 더 많은 자리 수를 저장할 수 있는데 이 때문에 오차가 줄어들어 더 정확한 값을 표현해낼 수 있다. 



▶︎ 상수(Constant)


변수는 이정도로 어느정도 정리한 것 같고, 상수도 간단하게 정리해본다. 상수는 기본적으로 한번 값을 저장하면 바꿀 수 없는 것이 변수와의 차이점이다. 그리고 일반적인 변수와는 다르게 앞에 final을 붙여주고 암묵적인 규칙으로 변수명은 모두 대문자로 한다.


int a = 10; (변수의 선언 및 초기화)

final int B = 20; (상수의 선언 및 초기화)


이런식으로 선언 및 초기화하는 데 조금 차이가 있다. 상수도 처음 공부할 땐 왜 쓰나 했지만 프로젝트에서 가끔 상수를 보게 되면 정말 편리한 역할을 하는 것 같다. 이렇게 해서 자바 변수와 상수 정리를 마치겠다.