Replies: 4 comments
-
크게 세가지 차이점이 있습니다. 첫째로, static은 JVM이 클래스를 로드하는 시점에 생성되고, 프로그램이 종료될 때까지 유지됩니다. 둘째로, staic은 클래스 레벨에 속합니다. 때문에 모든 객체가 같은 값을 공유합니다. 셋째로, static은 메소드 영역에 속합니다. |
Beta Was this translation helpful? Give feedback.
-
static 멤버(메소드), non-static 멤버(메소드)의 차이는 다음과 같다. static은 클래스에 속하고, non-static은 객체에 속하게 된다. static은 non-static과 달리 클래스가 로딩할 때 생성되므로, 클래스의 인스턴스(객체)를 생성하지 않고도 사용할 수 있다. 용도는 static의 경우 주로 유틸리티 메서드 등을 표현하거나, 상수 값을 저장하는데 사용된다. 또, 객체를 생성하기 전에 사용해야하는 작업을 수행할 때 사용하게 된다. 대표적인 예로 정적 팩토리 메소드가 있다. |
Beta Was this translation helpful? Give feedback.
-
static (정적 멤버)정적 멤버는 클래스가 메모리에 로드될 때 한 번만 생성되고 초기화됩니다. 이들은 메서드 영역(Method Area)에 저장됩니다. 정적 변수나 메서드는 클래스의 모든 인스턴스에 의해 공유되며, 이들은 클래스 단위로 존재하기 때문에 인스턴스 간에 데이터를 공유하는 데 사용될 수 있습니다.
non-static (비정적 멤버)비정적 멤버 (인스턴스 멤버)는 객체가 생성될 때마다 각 인스턴스에 대해 별도로 메모리가 할당됩니다. 이런 멤버들은 힙 메모리에 저장됩니다. 각각의 객체는 자신만의 인스턴스 변수 복사본을 가지고 있으며, 이 변수들은 객체가 생성될 때 힙 메모리에 할당됩니다.
|
Beta Was this translation helpful? Give feedback.
-
static non-static |
Beta Was this translation helpful? Give feedback.
-
.
Beta Was this translation helpful? Give feedback.
All reactions