본문 바로가기
공부이야기/Java

[Java] static ? final ? static final ?

by coderoom 2021. 4. 29.

 

 

 

 

static

Java에서 static은 클래스 멤버(정적)를 설정하는 키워드이다.

 

Java 프로그램이 실행될 때 JVM에 의해 클래스 로딩을 하는데 static을 사용한 모든 멤버는 JVM의 메소드 영역에 올라간다.

따라서, 별도의 객체 생성없이 사용 가능하며 객체 간에 데이터가 공유된다.

단, static 메소드가 아닌 곳에서는 언제든 객체 생성없이도 static 요소들에 접근할 수 있지만

static 메소드 안에서는 static이 아닌 외부에 접근할 수 없다.

 

 

 

 

final

마지막, 최종적이라는 의미로 Java에서 final은 상수, 메소드, 클래스를 정의한 뒤 변경하지 못하게 할 때 사용된다.

 

  • 상수 정의: 상수에 언제든 값을 한 번 저장하고 다시 바꾸지 않을 때 사용
  • 메소드에 사용: 오버라이딩을 못 하게 한다.
  • 클래스에 사용: 상속을 못 하게 한다.

 

 

static final

클래스 내에 변하지 않는 상수. 객체마다 값이 바뀌는 것이 아니며 선언과 동시에 초기화를 해 주어야 하는 클래스 상수이다.

public class Test
{
	static final int a=1;  //선언과 동시에 초기화
	public static void main(String args[]) {
		 System.out.println(a);
	}
}

 

 

 

 

 

 

참고 링크

 

 

 


 

댓글