java虚拟机实例中 静态对象 只有一个吗?
阿神
阿神 2017-04-18 10:32:45
0
3
433

一个静态内部类, 当他的外部类的对象 销毁后,静态内部类 对象 还存在内存中 ,
一个类的对象,无论创建销毁多少次 ,静态内部类的静态对象还是只有那一个,修改的时候,只是在原来的静态对象上,进行修改? 这样理解对不对..

阿神
阿神

闭关修行中......

모든 응답(3)
巴扎黑

정적 내부 클래스만 이야기한다면 클래스에 기생하는 최상위 클래스라고 생각하면 됩니다. 서로 아무런 관련이 없지만 액세스하려면 외부 클래스 이름이 필요합니다.

마찬가지로 특정 클래스의 정적 필드인 경우 해당 클래스의 기생 변수라고 생각하면 됩니다. 기생 클래스만 가져오면 됩니다. 클래스 이름에 액세스하려는 경우 이 변수는 가상 머신에 단 하나의 인스턴스를 갖습니다. All Class.static은 이 개체를 반환하며 모든 작업은 해당 개체에 대해서만 수행됩니다. 클래스를 삭제한 다음 팔로우해도 상관없습니다

迷茫

우선, 정적 내부 클래스는 자신을 래핑하는 외부 클래스에 종속되지 않습니다(멤버, 메서드, 익명 내부 클래스와 달리). 본질적으로 두 개의 독립 최상위 클래스입니다. 정적입니다. 내부 클래스는 외부 클래스의 네임스페이스를 사용합니다. 즉, 정적 내부 클래스는 OutClass.InnerStaticClass와 같은 일반적인 최상위 클래스처럼 사용할 수 있습니다. 동시에 정적 내부 클래스는 외부 클래스의 멤버이므로 액세스 수정자를 사용하여 가시성을 수정할 수 있습니다. public protected private package visible

PHPzhong

"정적 내부 클래스"라는 개념을 들어본 적이 없습니다. 정적의 사용 시나리오는 정적 변수, 정적 메서드 및 정적 블록의 세 가지뿐입니다.
[정적 변수]

객체가 생성되면 멤버변수는 힙에 저장되고, 정적 멤버변수는 힙이 아닌 클래스 정보와 함께 메소드 영역에 저장됩니다. a class”(메서드 영역에 저장됨)는 클래스가 생성하는 객체 수에 관계없이 가능합니다.

【정적 방식】

정적 수정 메서드는 특정 객체에 대해 연산을 수행할 필요가 없습니다. 연산 결과는 호출 시 클래스 이름으로 직접 참조할 수 있으며 this 키워드는 사용할 수 없습니다.

【정적 블록】

정적 블록은 클래스에 속하는 코드 블록입니다. 코드 블록은 클래스 로딩 중에(객체 생성 전) 한 번만 실행되며 정적 리소스(이미지, 오디오)를 로드하는 데 사용할 수 있습니다. , 등) 소프트웨어에서.

위 객체들은 클래스가 로드되면서 메소드 영역에 로드되는데, 복사본이 하나만 있습니다. Java 메모리 모델 분석을 말씀하시는 것 같습니다. 관심이 있으시면 이 글을 읽고 널리 알려주세요.

JVM 메모리 모델: http://blog.csdn.net/u0121526...

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿