Post

[Java] 03. 변수(1)

[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. 리터럴의 접두사와 접미사

img
각 데이터에 따라 리터럴을 작성하는 방법이 다양하게 있습니다
접미사에 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 생략 가능
This post is licensed under CC BY 4.0 by the author.