[Java] Static 키워드

해니·2024년 3월 6일
0

Java

목록 보기
11/34
post-thumbnail

자바 메모리 구조

  • Static Area (=Method Area)
    • 클래스, 인터페이스, 메소드, 필드, static 변수 등 바이트 코드를 보관한다.
  • Heap Area
    • new 키워드를 통해 생성한 객체는 Heap영역에 생성된다.
    • Garbage CollectorHeap 영역 메모리를 관리한다.

💡 ClassMethod Area에 생성되고, new 키워드를 사용해서 만든 객체는 Heap Area에 생성된다.



Static 메소드(정적 메소드)

  • Static 영역에 존재하므로 객체가 생성되기 이전에 이미 할당되어 있기 때문에 객체 생성 없이 호출이 가능하다.
  • 일반적으로 유틸리티 관련 함수들은 여러 번 사용되므로, static 메소드로 구현하는 것이 적합하다.
  • static 메소드에 접근하기 위한 변수는 static 변수로 선언되어야 한다.

public class StaticMethodEx {
    public static void main(String[] args) {

        StaticMethodEx2.staticMethod(); // 1)
        // StaticMethodEx2.notStaticMethod(); // 2)

        StaticMethodEx2 st2 = new StaticMethodEx2();

        st2.notStaticMethod(); // 3)
        st2.staticMethod(); // 4)
    }

}

class StaticMethodEx2{

    static void staticMethod(){
        System.out.println("Static 메서드입니다.");
    }
    void notStaticMethod(){
        System.out.println("Static 메서드가 아닙니다.");
    }
}
  • 1) static 메서드는 객체 생성 없이 바로 접근할 수 있다.
  • 2) static 메서드가 아닌 경우, 객체 생성 없이 바로 접근할 수 없다.
  • 3) static 메서드가 아닌 경우,new 키워드로 변수 생성 후 접근이 가능하다.
  • 4) static 메서드는 new 키워드로 변수 생성 후 접근이 가능하지만, 지양해야 한다.





출처
[Java] static 키워드에 대해 알아보자 !
[Java] static변수와 static 메소드

profile
💻 ⚾️ 🐻

0개의 댓글