땃쥐네

변수의 선언과 초기화 본문

Java

변수의 선언과 초기화

ttasjwi 2021. 11. 4. 17:25

1. 변수(Variable)란?

단 하나의 데이터를 저장할 수 있는 메모리 공간

2. 변수의 선언 및 초기화

1) 변수의 선언

저장하는 데이터에 맞는 변수 타입를 지정해야하고, 그 변수를 어떤 이름으로 사용할 것인지 설정해야함.

타입 변수명;
int age; (int 타입의 변수 a 선언)

2) 변수의 초기화

변수를 사용하기 전에 처음으로 값을 저장하는 것

  • 메모리는 여러 프로그램이 공유하는 자원이므로 다른 프로그램에 읭해 저장된 알 수 없는 값이 남아있을 수 있다.

  • 변수를 사용하기 전에 변수에 적절한 값을 처음으로 저장해주는 작업을 해줘야 변수를 사용할 수 있다.

  • 변수를 사용하기 전에 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다.

  • (참고) 대입연산자 '=' : 우변의 데이터를 좌변의 변수에 저장

    타입 변수명;
    변수명 = 데이터;
    
    int age;
    age = 14; // 14를 age에 저장
    타입 변수명 = 초기화할 값;
    
    int age = 14;
  • 같은 타입의 변수를 여러개 선언 및 초기화가 가능하지만, 가급적 지양하는게 좋을 듯.

    타입 변수명1 = 값1, 변수명2 = 값2;
    
    int x = 7, y = 8;

3) 두 변수의 값 변경하기 (swap)

두 변수에 저장된 값을 직접적으로 바로 변경하는 것은 불가능.
값을 바꾸는 중간 과정에서 임시 저장용 변수를 하나 생성하여 이를 이용해 교체해야한다.

int x = 1;
int y = 2;

int tmp = x; // x의 값을 임시로 저장할 변수 
x = y; // y에 저장된 값을 x에 저장
y = tmp; // tmp에 저장된 값(기존 x값)을 y에 저장 

3. 변수명 명명 규칙

프로그래밍에서 사용하는 모든 언어는 '식별자(identifier)'라고 하며, 식별자는 같은 영역 내에서 서로 구분(식별)할 수 있어야함.

1) 필수로 지켜야할 규칙

  1. 대소문자 구분, 길이 제한 없다.
  2. 예약어를 사용해선 안 된다.
    • 예약어(reserved word, keyword)
      • 프로그래밍 언어의 구문에 사용되는 단어. 클래스, 변수, 메서드의 이름(identifier)로 사용할 수 없다.
        (예시) abstract, assert, boolean, break, byte, ...
      • 예약어 목록 : java tutorial를 참조하면 될 것. 그 이후 업데이트 된 내역은 반영되어있지 않다.
  3. 숫자로 시작해서는 안 된다.
  4. 특수문자는 '_'와 '$'만을 허용.

2) 권장 사항

  1. 클래스의 첫 글자는 항상 대문자, 패키지명, 변수와 메서드의 이름의 첫 글자는 항상 소문자로 함.
  2. 여러 단어로 이루어진 이 름은 단어의 첫 글자를 대문자로 한다.
    예> lastIndexOf, StringBuilder, ArrayList
  3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다.
    예> Math.PI, Integer.MAX_NUMBER

4. 선언 위치에 따른 변수의 종류

1) 클래스 변수

클래스의 (메서드 바깥)에 선언된 변수

  1. static 변수(cv)
    • 객체를 생성하지 않고 사용할 수 있음
    • 클래스가 JVM의 클래스로더에 의해 메모리의 메서드 영역에 올라갈 때 자동으로 초기화 (참조형 : null, boolean : false, char : '\u0000', byte/short/int : 0, long : 0L, float : 0.0f, double : 0.0d 또는 0.0)
  2. 인스턴스 변수(iv)
    • 인스턴스가 힙(Heap)에 생성된 순간부터 사용할 수 있음.
    • 객체가 생성된 순간 자동으로 초기화됨. (참조형 : null, boolean : false, char : '\u0000', byte/short/int : 0, long : 0L, float : 0.0f, double : 0.0d 또는 0.0)

2) 지역 변수

메서드 영역(메서드 안)에 선언된 변수

  • 메서드 영역(매개변수 및 메서드 안)에 선언된 변수
  • 자동으로 초기화되지 않기 때문에 수동으로 초기화 코드를 작성해야 호출해서 사용할 수 있다.

  • 참조 : 자바의 정석 3판(남 궁성 저)

'Java' 카테고리의 다른 글

[Java] 자바 시작하기  (0) 2023.01.29
Scanner(java.util.Scanner) 클래스  (0) 2021.11.05
주석  (0) 2021.11.03
Comments