[Java] 03. 변수(1)
변수란, 단 하나의 값을 저장할 수 있는 메모리 공간을 의미합니다
컴퓨터는 0, 1을 나타내는 최소 단위의 데이터인 비트(bit)가 있습니다
8비트 : 바이트(Byte) / 1,024바이트 : 킬로바이트(Kilobyte, KB) / 1,024킬로바이트 : 메가바이트(Megabyte, MB)
컴퓨터 용량이나 작업 관리자에서 성능을 보면 기가바이트와 함께 자주 볼 수 있죠
저희는 메모리를 사용하면서 변수를 하나씩 만들고 사용할 예정입니다
- 메모리 공간은 기초 단위인 “1Byte”로 구성됨
- 메모리 공간은 각각 구분할 수 있도록 “메모리 주소”를 가지고 있음
1. 변수 만들기
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Main {
public static void main(String[] args) {
boolean falg; // 1byte로 true 또는 false로, 2개의 값만 가짐
char grade; // 2byte로 문자 표현
byte val; // 1byte로 정수 표현 (-128 ~ 127)
short sval; // 2byte로 정수 표현 (-32,768 ~ 32,767)
int num; // 4byte로 정수 표현 (-2,147,483,648 ~ 2,147,483,647)
long lval; // 8byte로 정수 표현 (-2^32 ~ 2^32-1)
float tax; // 4byte로 실수 표현
double score; // 8byte로 실수 표현
String str; // 문자열 표현
}
}
처음 변수를 만들 때, “[변수 타입] [변수 이름];”으로 작성하면 됩니다
1-1. 변수의 이름을 지을 때
변수는 다음과 같은 규칙이 있습니다
- 대소문자가 구분되며 길이에 제한 없음
- 예약어(예: true, long 등) 사용 불가 자바에 사용중인 이름들은 사용X
- 숫자로 시작 불가
- 특수문자 _와 $만 허용
그리고 변수의 이름은 보통 카멜 케이스(Camel Case)와 스네이크 케이스(Snake Case)형태로 짓는 편입니다
- Camel Case : varTest, avgGrade, sumAge, …
- Snake Case : var_test, avg_grade, sum_age, …
자바를 사용할 때는 보통 카멜 케이스를 따릅니다
하지만 클래스나 타입의 이름을 지을 때에는 파스칼 케이스(Pascal Case)를 따르는게 일반적입니다
MyClass, CalculationDiscountAmount, …
2. 변수 초기화 & 출력
초기화 : 변수에 처음으로 값을 저장하는 것을 의미합니다
변수를 만들고 값을 넣는 방법 : [변수 타입] [변수 이름] = [값];
으로 작성합니다
- int age; age = 23;
or int age = 23;
변수를 출력하는 코드 System.out.println()
과 함께 적용해봅시다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class projectName {
public static void main(String[] args) {
boolean flag = false;
char grade = 'A';
byte val = 127;
short sval = 128;
int num = 32768;
long price = 2_147_483_648L;
float tax = 3.14f;
double score = 3.14159265358979;
System.out.println("boolean = " + flag);
System.out.println("char = " + grade);
System.out.println("byte = " + val);
System.out.println("short = " + sval);
System.out.println("int = " + num);
System.out.println("long = " + price);
System.out.println("float = " + tax);
System.out.println("double = " + score);
}
}
3. 상수와 리터럴
상수 : 한 번만 값을 저장할 수 있는 변수
- 선언 방법 :
final [변수 타입] [변수 이름];
- 변수에 의미있는 이름을 붙여 코드 자체의 가독성을 늘리기 위해 상수를 사용합니다
1
2
3
4
5
6
7
8
class ConstantClass {
public static void main(String[] args) {
final String myPassword = "q1w2e3r4";
System.out.println("my password = " + myPassword);
// myPassword = "asdf1234"; <-- 변수 값 변경을 시도하면 오류 발생
}
}
리터럴 : 값 그 자체
- 단순히
100
,5000
과 같은 값 그 자체를 의미합니다
1
2
3
4
5
6
7
8
class LiteralClass {
public static void main(String[] args) {
int age = 21;
final int score = 98;
System.out.println("age = " + age + ", score = " + score);
}
}
age
: 변수score
: 상수21
,98
: 리터럴
3-1. 리터럴의 접두사와 접미사
각 데이터에 따라 리터럴을 작성하는 방법이 다양하게 있습니다
접미사에 0x
를 붙여 16진수로 작성하거나, 0b
를 붙여 2진수로 표현할 수 있습니다
접두사의 경우, 특정 변수 타입에 작성해야 합니다
- long :
L
ex) Long lvar = 1234567890L; // int 범위에 있으면 L 생략 가능 - float :
f
ex) float fvar = 3.14f; - double :
d
ex) double dvar = 3.14159265358979d; // d 생략 가능