자바에서 변수를 선언할 때는 주어지는 타입에 따라 변수에 저장할 수 있는 값의 종류와 허용범위가 달라진다. 변수를 선언한 뒤에는 값을 변경할 수 없다는 것을 명심하자. 변수의 타입은 기본타입(primitive type)과 참조형타입(reference type)으로 나뉘는데 먼저 기본타입에 대해 알아보자.
1 | 2 | 4 | 8 | |
---|---|---|---|---|
정수형 | byte | short | int | long |
실수형 | float | double | ||
문자형 | char | |||
논리형 | boolean |
[ 정수형 ]
byte num1 = -10;
byte num2 = 200; //컴파일에러: 메모리사용크기 초과
int num3 = 200;
long num4 = 200;
[ 실수형 ]
float num5 = 3.14; //컴파일 에러: double로 인식하여 float에 저장할 수 없음
float num6 = 3.14f;
double num7 = 3.14;
[ 문자형 ]
char num8 = 'a'; //유니코드: 97
char num9 = 97;
int num10 = 'a';
System.out.println(num8); // 소문자 a 출력
System.out.println(num9); // 소문자 a 출력
System.out.println(num10); // 숫자 97출력
[ 논리형 ]
앞서 자바의 타입 중 기본타입에 대해 알아보았다. 이번에는 참조형타입에 대해 알아보자.
참조형 타입은 객체의 번지를 참조하는 타입으로 String, 배열, 열거, 클래스, 인터페이스를 말한다.
참조형타입을 객체타입이라고도 한다.
❓ 기본타입과 참조형타입은 데이터를 저장하는 곳이 다르다. 각각 어디에 저장할까?
🙋♂️ 값을 입력받을 수 있는 Scanner클래스 객체를 생성하는 예제
Scanner input = new Scanner([System.in](http://system.in/)); //new로 새로운 주소값 생성
System.out.println("권한을 입력하세요."); //입력받을 수 있음
String role = input.next(); // 입력받은 값을 변수 role에 저장
자바에서는 타입을 크게 기본타입(Primitive type)과 참조형타입(Reference type)으로 나뉜다.
기본타입은 하나의 데이터가 스택영역에 저장되지만 참조형 타입은 힙영역에 객체를 생성하여 번지를 참조한다.
기본타입의 종류로는 byte, short, int, long, float, double, char, boolean으로 총 8가지가 있으며 저장할 수 있는 메모리의 크기를 초과하거나 다른 타입에 해당하는 값을 넣었을 때 컴파일 에러가 발생한다.
참조형타입의 종류로는 사실상 기본타입을 제외한 모든 것이라고 할 수 있다. 그 중 대표적으로 String, 배열, class, interface가 있는데 이는 다음에 다시 배우겠다.