Search
📁

변수 종류

네 가지의 변수가 존재

public class Calculator { public static void main(String [] args) { System.out.println("Calculator class started"); Calculator calc = new Calculator(); int a = 10; int b = 5; System.out.println(*add="+calc.add(a,b)); System.out.println("subtract="+calc.subtract(a,b)); System.out.println("multiply="+calc.multiply(a,b)); System.out.println("divide="+calc.divide(a,b)); } // 이하생략 }
Java
복사
내용을 어딘가 담아둬야 하는데 담아 두는 것을 변수 Variable 라고 한다.
a 와 b 는 변수.
public class Car { int speed; int distance; String color; // 이하생략 }
Java
복사
변수는
지역 변수 local variables :
중괄호 내에 선언된 변수
a, b, calc
매개 변수 parameters :
메소드에 넘겨주는 변수
args
인스턴스 변수 instance variables :
메소드 밖에, 클래스 안에 선언된 변수. 앞에 static 존재X
speed, distance, color
클래스 변수 class variables :
인스턴스와 같지만 앞에 static 존재O
class Test{ String first; // 인스턴스 변수 static String second; // 클래스 변수 void test(){ String third; // 지역 변수 } }
Java
복사
각 생명 주기가 달라서 이름을 다르게 부른다.
지역 변수 local variables :
중괄호 내에서만 유효.
매개 변수 parameters :
호출될때 시작 되고 메소드가 끝나면 소멸.
인스턴스 변수 instance variables :
메객체가 생성될때 시작되고 객체를 참조하고 있는 다른 객체가 없으면 소멸.
클래스 변수 class variables :
클래스가 처음 호출될때 시작되고 프로그램이 끝날때 소멸.
자바에는 가비지 콜렉터가 알아서 때가 되면 메모리에서 청소해줌.
변수 종류
선언 위치
설명
생성 시기
소멸 시기
저장 메모리
클래스 변수 (Static variable)
클래스 영역
static 키워드가 붙고 여러 객체에서 공통으로 사용 할 때 사용
클래스가 메모리에 올라갈때
프로그램 종료 시
Static
인스턴스 변수 (Instance variable)
클래스 영역
클래스 영역에서 static이 아닌 변수
인스턴스가 생성
인스턴스 소멸시
Heap
지역 변수 (Local variable)
메서드 영역
메서드 내부에서 선언된다. 초기 값을 지정해야 사용가능.
블록 내에서 변수의 선언문이 실행
블록을 벗어날 때
Stack
매개 변수 (parameter)
메서드 영역
메서드 호출 시 '전달하는 값'을 가지고 있는 인수
호출될때 시작
메소드가 끝나면
Stack

참고

자바의 신1권