찾다

 >  Q&A  >  본문

java - 整数的封装对象中的对象开销和填充字节是什么东东

看到书里有这么一段话:
一个Integer对象会使用24字节,其中分别是:

我想请教的是:

PHP中文网PHP中文网2810일 전432

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

  • ringa_lee

    ringa_lee2017-04-18 09:57:50

    1. 16바이트는 Object Header입니다. Mark word, Class 유형 정보를 포함합니다... (16바이트는 64비트 시스템의 크기이며 포인터 압축이 활성화되지 않음)

    2. HotSpot의 정렬은 8바이트 정렬입니다. 최종 크기가 8바이트의 배수가 아닌 모든 개체는 채워집니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 09:57:50

    객체 오버헤드에는 객체의 기본 정보가 포함되며, 패딩 바이트는 바이트 수를 채우는 데 사용됩니다. 객체가 차지하는 바이트는 8바이트의 배수여야 합니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:57:50

    다음은 무책임한 추측일 뿐입니다.
    Integer는 Object를 생성할 때 먼저 Object를 생성해야 합니다. 이때 객체 오버헤드는 8바이트가 빈 객체이고 4워드입니다. 섹션은 객체 참조이지만 Java의 바이트 할당은 8 단위이므로 여기서는 16바이트를 사용하고 쓸모 없는 바이트를 패딩 바이트라고 합니다.
    아래 패딩 바이트는 동일합니다.

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