찾다

 >  Q&A  >  본문

Java中的枚举类型存储在Jvm运行期的那个区域?为什么单例模式用枚举就完美解决了?

Java中的枚举类型是存储在Java运行期的那个区域?为什么单例模式用枚举就完美解决了?

枚举的内存分配是发生在什么时候?初始化又是啥发生在什么时候?代码中使用枚举时候,发生了什么事情?

PHP中文网PHP中文网2802일 전628

모든 응답(1)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-18 10:52:17

    Java의 열거형은 Method Area(메서드 영역)

    에 존재합니다. 으아악

    위 코드는 다음과 같이 컴파일됩니다.

    으아악

    자바의 정적 변수는 결국 Method Area에 저장되어 있는데 실제로는 상수가 정적 변수로 컴파일되는 것을 볼 수 있습니다.


    单例模式의 목적은 메모리에 단 하나의 인스턴스 가 있도록 하는 것이며 枚举值 고정 되어 숫자를 제어하는 ​​목적만 달성할 수 있습니다. 인스턴스

    싱글턴을 구현하기 위해 class을 사용하는 것과 enum을 사용하는 것의 차이점은 class이 액세스를 우회하는 것을 방지하려면 constructor 액세스 수준을 private로 설정해야 한다는 것입니다. reflect을 제어하여 객체를 생성하려면 다음과 같은 추가 처리가 필요합니다.

    으아악

    회신하다
    0
  • 취소회신하다