자료형?
자료형(Data Type)이란 변수를 저장하는 유형을 의미한다.
자바에는 기본형(Primitive Type)과 참조형(Reference Type)이 있다.
본 포스팅에서는 기본형에 대해 설명한다.
기본형?
자바의 기본형 중에는 크게 4가지 정수형, 실수형, 문자형, 논리형이 있다.
변수를 선언할 때 아래처럼 선언한다.
● 정수형(Integer)
정수형은 4가지의 표현 방식이 있다. byte, short, int, long
byte numByte = 1; // 8bits ⇒ 2^8
short numShort; // 16bits => 2^16
int numInt; // 32bits => 2^32
long numLong; // 64bits => 2^64
위처럼 기본형(btye) 변수 이름(numByte) = 데이터 값(1); 로 선언한 걸 볼 수 있다.
또한 밑에 예시들처럼 데이터 값을 선언하지 않아도 된다.
자바는 signed(부호가 있는)을 사용한다.
즉 btye의 경우 ‘-2^7 ~ 2^7-1‘까지 표현할 수 있다.
이때 2^7-1 인 이유는 ‘0‘을 표기해야 하기 때문이다.
● 실수형(Float)
실수형은 2가지의 표현 방식이 있다. float, double
float numFloat = 3.14f; // 32bits
double numDouble; // 64bits
단 값을 입력 시 num = 3.14f; 와 같이 ‘f‘를 꼭 붙여줘야 된다.
만약 소수점 출력을 하고 싶으면
System.out.printf(”%.3f”, numFloat); // 소수점 3번째까지 출력
이런 식으로 print가 아닌 ‘printf‘를 사용해야 한다.
이때 버려지는 소수점이 생기면 반올림을 한다.
float num = 2.88f;
System.out.printf(”%.1f”, num);
=> 2.9
● 문자형(Character)
문자형은 문자를 표현하기 위한 자료형이다. char
- String은 클래스(Class)로 기본형이 아닌 참조형이다
char alphabet = 'a'; //16bits
여기서 주의할 점은 문자열이 아닌 문자이기 때문에 “a”가 아닌 ‘a’를 써줘야 한다.
또한 ‘ab’ 나 “ab”같은 경우 오류가 생긴다.
추가로 char은 문자형이기 때문에 숫자를 넣어도 문자로 출력할 수 있다.
이때 출력되는 문자는 아스키코드(ASCII)를 따라간다.
char alphabet = 65; // 아스키코드로 65는 A 이다.
System.out.println(alphabet);
=> A
● 논리형(Boolean)
논리형은 C언어에는 없는 것으로 true와 false 즉, 참과 거짓을 나타낼 때 사용한다. boolean
boolean yesNo = true; //1bit
● 형변환(Type Casting)
형변환은 위에서 배운 자료형들의 유형을 변환하는 것이다.
형변환을 하기 위해서는 (바꿀 기본형)을 넣으면 된다.
하지만 boolean은 예외적으로 형변환을 할 수 없다.
int num = 5;
float intToFloat = (float)num; // int형 변수인 num을 float으로 변환
char intToChar = (char)num; // char로 변환
byte intToByte = (int)num; // 같은 정수형끼리도 변환이 가능
float -> int의 경우 소수점은 생략된다.
float num = 5.7f;
System.out.println(num);
int floatToInt = (int)num;
System.out.println(floatToInt);
=> 5.7
5