프로그래밍 언어에서 변수란 단 하나의 값을 저장한 수 있는 메모리상의 공간
이라고 한다.
int age; //int -> 변수 타입, age -> 변수 이름
변수타입
은 변수에 저장될 값이 어떤 타입인지를 지정하는 것변수이름
은 말 그래도 변수에 붙인 이름변수를 선언하면, 메모리의 빈 공간에 변수타입
에 알맞은 크기의 저장공간이 확보되고 앞으로 이 저장공간은 변수이름
을 통해 사용할 수 있게 된다.
변수를 선언한 이후부터는 변수를 사용할 수 있으나, 그 전에 반드시 변수를 초기화
해야 한다. 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 알 수 없는 값(쓰레기값)
이 남아있을 수 있기 때문이다.
int age = 25; // 변수 age를 선언하고 25로 초기화한다.
변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것
_
와 $
만을 허용한다.값의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이 자료형
이다.
실제 값(data)
을 저장한다.주소(memory address)
를 값으로 갖는다.자바는 C언어와 달리 참조형 변수 간의 연산을 할 수 없으므로 실제 연산에 사용되는 것은 모두 기본형 변수이다.
다음은 Date클래스 타입의 참조 변수 todayfmf 선언한 것이다. 참조 변수는 null 또는 객체의 주소를 값으로 가지며 참조변수의 초기화는 다음과 같이 한다.
Date today = new Date(); // Date 객체를 생성해서, 그 주소를 today에 저장
객체를 생성하는 연산자 new의 결과는 생성된 객체의 주소이다. 이 주소가 대입 연산자 =
에 의해서 참조변수 today에 저장되는 것이다. 이제 참조변수 today를 통해서 생성된 객체를 사용할 수 있게 된다.
분류 | 타입 | 설명 |
---|---|---|
논리형 | boolean | true와 false 중 하나를 값으로 갖으며, 조건식과 논리적 계산에 사용된다. |
문자형 | char | 문자를 저장하는데 사용되며, 변수에 하나의 문자만 저장할 수 있다. |
정수형 | byte, short, int, long | 정수를 저장하는데 사용되며, 주로 int가 사용된다. byte는 이진 데이터를 다룰 때 사용되며, short은 C언어와의 호환을 위해서 추가되었다. |
실수형 | float, double | 실수를 저장하는데 사용되며, 주로 double이 사용된다. |
boolean을 제외한 나머지 7개의 기본형은 서로 연산과 변환이 가능하다.
종류 | 1 byte | 2 byte | 4 byte | 8 byte |
---|---|---|---|---|
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
상수(constant)는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다.
final int MAX_SPEED = 10; // 상수 MAX_SPEED를 선언 & 초기화
상수의 이름은 모두 대문자로 하는 것이 암묵적인 관례이다.
리터럴은 단지 우리가 기존에 알고 잇던 상수
의 다른 이름일 뿐이다.
int year = 2014; // year 변수, 2014 리터럴
final int MAX_VALUE = 100; // MAX_VALUE 상수, 100 리터럴
int triangleArea = ( 20 * 10 ) / 2;
int rectangleArea = 20 * 10;
final int WIDTH = 20;
final int HEIGHT = 10;
int triangleArea = ( WIDTH * HEIGHT ) / 2;
int rectangleArea = ( WIDTH * HEIGHT;
위 코드와 아래코드의 차이점을 살펴보자.
여러 곳을 수정할 필요 없이 상수의 초기화만 다른 값으로 해주면 된다.
변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 형변환(casting)
이라고 한다.
형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여주기만 하면 된다.
(타입)피연산자
여기서 사용되는 괄호()는 캐스트 연산자
또는 형변환 연산자
라고 한다.
double d = 85.4;
int score = (int) d;
기본형에서 boolean을 제외한 나머지 타입들은 서로 형변환이 가능하다.