자바에서 다룰 수 있는 데이터 타입
* 데이터 타입(data type)이란? : 컴퓨터에서 변수를 만들 때 반드시 지정해줘야 하는 것으로, 변수 선언시 데이터 타입의 크기에 맞는 공간이 메모리 상에서 할당되어 데이터의 저장이 가능해짐
기본 타입(basic type) -> 크기가 정해져 있음
① 정수형
데이터 타입 |
크기 |
범위 |
byte |
1 byte |
-128 ~ 127 |
short |
2 byte |
-32768 ~ 32767 |
int |
4 byte |
-(2^31) ~ (2^31)-1 |
long |
8 byte |
-(2^63) ~ (2^63)-1 |
② 실수형
데이터 타입 |
크기 |
범위 |
float |
4 byte |
-3.4E38 ~ 3.4E38 |
double |
8 byte |
-1.7E308 ~ 1.7E308 |
③ 문자형
데이터 타입 |
크기 |
범위 |
char |
2 byte |
unicode |
④ 논리형
데이터 타입 |
크기 |
범위 |
boolean |
1 byte |
true / false |
레퍼런스(참조) 타입(reference type)
① 배열에 대한 레퍼런스
② 클래스에 대한 레퍼런스
③ 인터페이스에 대한 레퍼런스
문자열
기본 데이터 타입에는 속하지 않으며, 'String' 클래스를 이용해 선언할 수 있다.
문자열의 표현은 큰 따옴표(" ")로 표현하며, 문자열과 문자열 간의 연결은 '+'연산을 이용해 연결한다.
변수의 선언 방법
지난 글에서 작성한 '식별자 이름을 붙이는 규칙'을 지키면서 변수를 선언해 주어야 한다.
변수 선언의 예
1 2 3 | int i; double d; char c1, c2; | cs |
왼쪽에 파란 글씨로 표현된게 데이터 타입이고, 오른쪽에 있는 i, d, c1, c2이 모두 변수명이다.
만약 같은 데이터 타입의 변수 여러개를 동시에 선언하고 싶다면 변수명을 콤마(,)로 구분해서 작성한다.
값을 표현하는 방법
프로그램상에서 직접 표현하는 값을 리터럴(literal)이라 한다. 정수형, 실수형, 문자형, 논리형, 문자열 타입 모두 리터럴을 가진다.
정수 리터럴
자바에서 정수 리터럴은 int 타입으로 컴파일 되기 때문에, long 타입으로 지정하고자 할 때는 숫자 뒤에 L이나 l을 붙여준다.
1 2 | int i=100; long l=100L; |
1 2 3 | double d1 = 1.23; double d2 = 1.23D; float f = 1.23F; | cs |
1 2 3 | char c1 = 'A'; char c2 = '\uac00'; //'가'라는 문자 표현 char c3 = '\n'; | cs |
타입 변환(자료형 변환)
* 타입 변환 : 표현되어 있는 데이터가 서로 다른 타입으로 사용되었을때 그 데이터의 표현 방식을 다른 타입으로 변환하는 것
ex) int형으로 표현된 데이터를 double형으로 바꿈
자동 타입 변환
수식 내에서 대입 연산자(=)의 왼편과 오른편에 위치한 두 피연산자 간의 자료형이 일치하지 않을 때, 컴파일러에 의해 자동으로 발생하는 형 변환 방법이다.
원래의 자료형보다 큰 자료형(높은 등급의 자료형)으로 자동 변환된다. 자료형의 우선순위는 다음과 같다.
byte -> short,char -> int -> long -> float -> double
데이터의 표현 범위가 넓은 자료형으로 형 변환 시 데이터 손실이 발생하지 않지만, 표현 범위가 좁은 자료형으로 형 변환 시에는 데이터의 손실이 발생한다. => 컴파일 오류 발생
자동 타입 변환 예
위와 같이 입력 후에 컴파일을 시도하면 형 변환이 일어나지 않아 7, 8번째 줄에서 에러가 난다.
그리고 i와 d를 각각 출력해보면, 변수 i에는 문자 'A'가 아스키 코드 65에 대응되어 정수 65로 변환되어 값이 저장되고, 변수 d에는 정수 10이 실수형 10.0으로 저장되어 출력되는 모습을 볼 수 있다.
강제 타입 변환
프로그래머가 의도적으로 형 변환 연산자를 사용해 강제로 타입을 변환하는 방법이며, 이 방법은 캐스팅(casting)이라 부르기도 한다.
강제로 타입을 변환시키려 한다면 변환시키고자 하는 데이터 앞에 괄호( )를 입력 후 이 괄호 안에 변환하고자 하는 타입을 지정해준다.
강제 타입 변환 예
실수형 12.345가 정수형으로 강제 형변환 되어 12로 바뀌어 저장되고, 소수점 부분의 손실이 발생하였다.
강제 타입 변환 시 이러한 문제점이 생길 수가 있으니 주의한다.
예제
[Java] 자바의 입출력 (0) | 2017.04.20 |
---|---|
[Java] 자바 프로그래밍의 기본 (0) | 2017.04.05 |
댓글,