변수의 정의
변수(variable)은 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름이다. 프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있다.
변수 선언
class Main {
public static void main(String[] args) {
int num; // int 변수 선언
}
}
값 할당
class Main {
public static void main(String[] args) {
int num1; // int 변수 선언
num1 = 1; // 값 할당
int num2 = 2; // 선언과 동시에 초기화
}
}
변수 명명 규칙
자바에서 변수명은 일반적으로 카멜 케이스(camelCase)를 사용한다.
두 번째 단어부터 대문자로 시작해 구분한다.
- int camelCase;
변수명으로 영문자, 숫자, _, $를 사용할 수 있으며, 영문자는 대소문자가 구별되어 인식한다.
숫자로 시작하는 변수명은 사용할 수 없다.
이미 사용 중인 예약어를 변수명으로 사용할 수 없다.
- int class; (x)
- int for; (x)
리터럴
사전적으로 리터럴(Literal)은 '문자 그대로의'라는 뜻을 가진다.
프로그래밍에서 리터럴이란 문자가 가리키는 값 그 자체를 의미
변수의 타입
- 기본형 : 실제 값을 저장하는 데이터 타입
- 참조형 : 어떤 값이 저장되어 있는 주소를 값으로 갖는 데이터 타입 (실제 연산 불가)
기본형
정수형, 실수형, 논리형, 문자형이 존재
- 정수형 : byte, short, int, long
- 실수형 : float, double
- 논리형 : boolean
- 문자형 : char
자주 사용되는 String은 기본형이 아니다 !
정수형
| 타입 | 메모리 | 표현 범위 |
| byte | 1byte | -128(-27) ~ 127(27 - 1) |
| short | 2byte | -32,768(-215) ~ 32,767(215 - 1) |
| int | 4byte | -2,147,483,648(-231) ~ 2,147,483,647(231 - 1) |
| long | 8byte | -9,223,372,036,854,775,808(-263) ~ 9,223,372,036,854,775,807(263 - 1) |
정수형은 기본형이 int형이다.
이 때, long 타입 리터럴의 경우에는 리터럴 뒤에 L 또는 l을 붙여준다. (일반적으로 L 사용)
byte -> short -> int -> long 으로 갈수록 데이터 타입의 크기도 커지고 표현 범위도 커진다.
즉, 데이터 타입의 크기가 데이터의 표현 범위를 결정한다.
실수형
| 타입 | 메모리 | 표현 범위 | 정밀도 |
| float | 4byte | 음수 : -3.4 * 10^38 ~ -1.4 * 10^-45 양수 : 1.4 * 10^-45 ~ 3.4 * 10^38 |
7자리 |
| double | 8byte | 음수 : -1.8 * 10^308 ~ -4.9 * 10^-324 양수 : 4.9 * 10^-324 ~ 1.8 * 10^308 |
15자리 |
실수형의 기본형은 double형이다.
이 때, float 타입 리터럴의 경우에는 리터럴 뒤에 F 또는 f를 붙여준다.
컴퓨터에서 실수를 저장할 때는 부동소수점 표현 방식으로 저장하는데, 이러한 방식은 효율적이지만 약간의 오차를 갖는다.
이 오차는 실수를 더 정밀하게 표현할수록 줄어든다. 여기서 얼마나 실수를 정밀하게 나타낼 수 있는지를 정밀도라고 하는데,
정밀도는 데이터 타입의 크기가 클수록 높아진다.
double형은 float형보다 정밀도가 높다
- 더 큰 실수를 저장할 수 있다.
- 더 정확하게 저장할 수 있다.
논리형
boolean 형은 참 또는 거짓을 저장할 수 있는 데이터 타입으로, 오직 true 혹은 false를 값으로 가진다.
단순히 참, 거짓을 구분하기 위해서는 1bit만 있어도 되지만, JVM이 다룰 수 있는 데이터의 최소 단위가 1byte이기 때문에
boolean형은 1byte 크기를 가진다.
문자형
자바에서는 유니코드 문자체계를 사용하기 때문에 char 크기가 2byte이다.
문자형 리터럴을 작성할 때에는 작은 따옴표(' ')를 사용한다.
형변환
변수 또는 리터럴의 타입을 다른 타입으로 변환하는 것이 형변화 또는 캐스팅이라고 한다.
'Programming > Java' 카테고리의 다른 글
| [Java] 조건문 (0) | 2022.12.31 |
|---|---|
| [Java] 연산자 (0) | 2022.12.31 |
| Scanner & BuffereReader (0) | 2022.12.30 |
| [Java] 문자열이란 ? (0) | 2022.12.29 |
| [Java] 자바란 ? (0) | 2022.12.28 |