Java

[Java-2] 변수 및 데이터 타입에 대해

zamezzz 2017. 1. 22. 22:11

 [Java-2] 변수 및 데이터 타입에 대해


안녕하세요.


오늘은 JAVA의 변수 및 데이터 타입에 대해서 정리해보겠습니다.



 JAVA 변수

 JAVA 데이터 타입

 JAVA 타입 변환




 JAVA 변수


자바에서 변수란?


어느 언어나 변수라는 개념은 존재합니다. 자바에서 또한 크게 다르지 않습니다.


한마디로 정의하면 '값을 저장하는 공간' 이라고 할 수 있어요.


그럼 이 변수(Variable)를 어떻게 사용하는지 간단히 보겠습니다.


- 변수의 선언


변수의 선언은 데이터 타입과 변수이름으로 선언할 수 있습니다.


하나의 변수에는 하나의 데이터 타입만 가질 수 있습니다. 

(정수와 실수형 데이터 타입을 동시에 가질 수 없어요.)


하나의 데이터 타입에 동시에 여러 개의 변수를 선언할 수 도 있습니다.


변수 이름의 첫 번째 글자는 문자이거나 $ 또는 _ 이어야 하며 이 외 숫자나 특수문자는 사용할 수 없습니다.


아래 예시처럼 선언하시면 됩니다.


int x;

char y;

double a, b, c;




- 변수 값 저장


변수를 선언했으니, 해당 변수에 값을 저장해야하는데요.


각 데이터 타입에 맞는 값을 저장 해주면 됩니다. 선언 이후에 저장할 수 있습니다.


물론 선언과 동시에 선언할 수도 있습니다.


int x = 10;


int y;

y = 20;


 JAVA 데이터 타입


앞에서 언급했던 데이터 타입에 대해 간략히 정리하겠습니다.


아래 표로 정리된 자료를 참고하세요!


데이터 범위를 넘는 값이 해당 변수에 저장이되면, 엉터리 값이 변수에 저장이 됩니다.


그렇기에 적당한 데이터 타입을 선택하는 것이 중요합니다.



 JAVA 타입 변환


오늘의 마지막으로 타입 변환에 대해 알아보겠습니다.


타입 변환이란 데이터 타입을 다른 데이터 타입으로 변환하는 것을 말합니다.


예를 들어 int -> float로의 변환을 말하는거죠.


변환은 크게 2가지 종류로 나뉘어지는데요. 


자동으로 변환되는 묵시적 변환과 강제로 변환시키는 명시적 변환이 있습니다.


- 묵시적 변환

자동으로 데이터 타입이 변환되는 묵시적 변환은 프로그램 실행 중 자동으로 일어납니다.


작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 자동으로 발생합니다.

(데이터 타입 크기는 위의 표를 참고하세요)


아래 예제를 통해 쉽게 이해해 봅시다!

byte->int

int->double


두 가지 경우의 묵시적 변환에 대해서 코드와 결과를 보겠습니다.





- 명시적 변환

큰 크기에서 작은 크기의 타입으로는 자동변환을 할 수 없습니다.


이를 위해서는 강제적 데이터 타입 변환을 해주어야 합니다.

위와 같이 byte타입과 int타입이 존재한다고 합시다.


byte타입은 크기가 1byte이고 int타입은 크기가 4byte입니다.


int타입을 byte타입으로 변환하고자 할 때, 명시적 변환을 사용합니다.


이를 위해서는 캐스팅 연산자() 을 사용하여 강제로 타입 변환을 합니다. 


int x = 10;

byte y = (byte)x 



위와 같은 코드처럼 강제로 변환이 가능합니다.


4byte 크기를 1byte 크기의 4개로 쪼갠다고 생각하시면 이해가 쉬울 것 같네요.


물론 byte의 범위를 초과하는 값을 변환할 경우... 원래 값이 보존되지는 않습니다.


하지만 byte 범위 내의 값을 변환할 경우 그 값은 온전하게 유지가 되죠.


이 또한 아래 예제 코드와 함께 이해를 하겠습니다!



1. int -> byte 경우에는 byte타입의 최대 크기인 127을 초과하여 엉터리 값이 변환됩니다.

2. int -> byte 경우에는 byte타입 내의 값이 변환되어 정상적으로 보존됨을 볼 수 있습니다.





이 처럼 데이터 타입에 따라 원래의 값이 보존될 수도, 아닐 수도 있기에 데이터 타입을


처음 설정하고 변환하는 것은 매우 중요합니다.


기본적이지만 가장 중요하기에 꼭 한 번 더 숙지했으면 좋겠어요.


오늘 글은 이것으로 마치겠습니다. 감사합니다.


반응형

'Java' 카테고리의 다른 글

[Java-6] 객체와 클래스  (1) 2017.01.28
[Java-5] 참조 타입 (문자열, 배열, 열거)  (0) 2017.01.24
[Java-4] 조건문과 반복문  (0) 2017.01.23
[Java-3] 연산자  (0) 2017.01.23
[Java-1] Java 시작하기  (0) 2017.01.21