본문으로 바로가기

final, static 키워드

category CS 공부/Java, Spring (재정리) 2021. 4. 11. 20:10

JAVA - final 키워드

간단한 내용이지만, final 키워드가 클래스, 메소드, 변수 앞에 붙었을 때 각각의 의미에 대해서 정확히 정리하려 한다.

  • final class
    • 다른 클래스가 상속받지 못한다.
  • final method
    • 자식 클래스에서 상위 클래스의 final method를 오버라이드 하지 못한다.
  • final variable
    • 변하지 않는 상수 값이 되어 새롭게 값을 할당할 수 없는 변수가 된다.

non-static 멤버와 static 멤버의 차이

  • non-static 멤버
    • 공간적 특성 : 해당 멤버는 객체마다 별도로 존재한다.
      • 인스턴스 멤버라고 부른다.
    • 시간적 특성 : 객체 생성 시에 멤버가 생성된다.
      • 객체가 생성될 때, 멤버가 생성되므로 객체 생성 후에 멤버 사용이 가능.
      • 객체가 사라지면 해당 멤버도 사라진다.
    • 공유의 특성 : 공유되지 않는다.
      • 멤버는 객체 내에 각각 독립된 공간을 유지하므로 공유되지 않는다.
  • static 멤버
    • 공간적 특성 : 해당 멤버는 클래스 당 하나만 생성된다.
      • 해당 멤버는 객체 내부가 아닌 별도의 공간에 생성된다.
      • 클래스 멤버라고 부른다.
    • 시간적 특성 : 클래스 로딩 시에 멤버가 생성된다.
      • 객체가 생성되기 전에 이미 생성되므로 객체를 생성하지 않고도 사용 가능.
      • 객체가 사라져도 해당 멤버가 사라지지 않는다.
      • 해당 멤버는 프로그램이 종료될 때, 사라진다.
    • 공유의 특성 : 동일한 클래스의 모든 객체들에 의해 공유된다. (하나의 클래스로부터 생성된 여러 객체가 공유한다.)

'CS 공부 > Java, Spring (재정리)' 카테고리의 다른 글

String, StringBuffer, StringBuilder  (0) 2021.04.11
Java의 메모리 구조  (0) 2021.04.11
자바 프로그램의 실행, 컴파일 과정  (0) 2021.04.11
Spring - AOP  (0) 2021.04.08
Spring - MVC, 서블릿  (0) 2021.04.01