크리스의 개발일기

[JAVA] static final과 final이란? 본문

JAVA

[JAVA] static final과 final이란?

ChrisJang 2020. 11. 17. 13:06

 final 변수란?

: 한번 값을 선언하면 Immutable 형식(값 변경이 불가능한)이 된다.

 

final 클래스란?

: 클래스를 final로 선언한다면, 이 클래스를 상속하는 것을 허용하지 않겠다는 뜻이다.

 

final 메소드란?

: 메소드의 오버라이딩을 금지시키겠다는 뜻이다. 

: 클래스의 상속은 되지만 메소드만 재정의하여 사용할 수 없다.

 


 

static 변수란?

: static 으로 선언된 변수는 메모리 공간에 하나만 존재하며, 어디서나 접근이 가능한 변수이다.

어디서나 접근이 가능하려면 static 변수도 public으로 선언되어야 한다.

 

- 클래스 내부에서는 얼마든지 직접 접근이 가능하다.

- 클래스 외부에서 인스턴스의 이름이나 클래스의 이름을 통해 접근하는 것도 가능하다. 

 

static 변수의 초기화 시점

: static 변수는 인스턴스가 생성되기 이전에 별도의 메모리 공간에 할당되어 초기화까지 완료된다.

초기화되는 시점은 JVM(Java Virtual Machin) 에 의해서 클래스가 메모리 공간에 올라가는 순간이다.

 

static 변수 사용 이유

: 인스턴스 간에 데이터 공유가 필요한 상황에서 static 변수를 선언한다.

 

static final 선언

: 클래스 내부 또는 외부에서 참조의 용도로만 선언된 변수는 static final로 선언한다.

ex ) static final double PI = 3.14; 

 

static 메소드란?

: 인스턴스를 생성하지 않아도 static 메소드를 호출할 수 있다.

사용 이유는 객체를 생성할 필요가 없는 메소드에 붙인다.

인스턴스 변수에 접근하지 않는다면 static 메소드로 정의해야 한다.

 

 

 

출처 :

hunit.tistory.com/159?category=523912

goodncuteman.tistory.com/4

 

[JAVA] final 과 static 의 핵심 정리

JAVA의 final 과 static을 클래스, 메소드, 변수에 사용할 때의 차이점과 용도에 관한 정리입니다. * final 변수란? 변수를 상수화 시킨다. 즉 한번 값이 결정된 변수의 값은 변경이 불가능하다.  * fina

goodncuteman.tistory.com

 

'JAVA' 카테고리의 다른 글

[JAVA] JSTL Core Tag란?  (0) 2020.11.20
[JAVA] 하이라키(Hierarchy) 구조란?  (0) 2020.11.17
[JAVA] LIST와 ArrayList란?  (0) 2020.11.17
[JAVA]Map이란? (HashMap, Hashtable, TreeMap)  (3) 2020.11.16
[JAVA] @RequestBody와 @ResponseBody 분석  (0) 2020.11.16
Comments