본문 바로가기

웹 프로그래밍/Spring Framework

[JAVA] 변수에 관해서

package test;
import java.util.Scanner;

class Aircon {
 int memvar; 
 static int staticVar;
 
}
public class test {
 static int staticVar2 = 20;
 
 public static void main(String[] args) throws Exception {
  int localVar;
  
  Aircon vk1 = new Aircon();
  
  System.out.println("vk1.memVar" + vk1.memvar); //멤버 변수는 컴파일 시 0으로 자동으로 초기화 된다.
  System.out.println("vk1.staticVar" + vk1.staticVar); //정적 변수 역시 0으로 자동으로 초기화 된다.
  System.out.println("Aircon.staticVar" + Aircon.staticVar); //정적변수의 경우 Heap영역이 아닌 Class Area 영역에 존재한다.
  System.out.println("staticVar : " + staticVar2); //같은 클래스 내부의 정적변수는 클래스를 사용하지 않아도 쓸 수 있다.
  //System.out.println("localVar : " + localVar); //로컬 변수의 경우 초기화하지 않으면 컴파일 에러가 난다.
  Aircon vk2 = new Aircon();
  vk1.staticVar = 20;
  System.out.println("vk2.staticVar : " + vk2.staticVar);
  //스태틱변수는 Class Area내에 존재하기에 같은 클래스로 선언된 인스턴스 모두 공용으로 사용하게 된다.
 }
}