前書き:
いわゆるオブジェクトは、実際には Java クラスを通じて生成されたエンティティです。
例: 建物を建てる設計図は Java クラスであり、この設計図に従って構築された建物が表示され、実際に使用される既存の建物は、この設計図を使用して取得されるオブジェクトに相当します。
Java クラスは実際には抽象概念であり、オブジェクトはこの Java クラスの抽象概念を通じて具体化された特定の概念です。
HotSpot 仮想マシンでは、これは共通の仮想マシンです。オブジェクトの構成は、オブジェクト ヘッダー、インスタンス データ、および位置合わせパディングの 3 つの領域に分かれています。
オブジェクト ヘッダー
オブジェクト ヘッダーは 2 つの部分に分かれています: オブジェクト自身の実行時データ、型ポインター
オブジェクト自身の実行時データ (HashCode、lock など)ステータスフラグ、スレッドが保持するロック、偏ったスレッドID、偏ったタイムスタンプ、GC生成経過時間など。データのこの部分の長さは、32 ビットおよび 64 ビットの仮想マシンではそれぞれ 32 ビットと 64 ビットです (圧縮ポインターが有効になっていない場合)。この部分を「マークワード」と呼びます。
Mark Word は、狭いスペースにより多くの情報を保存できるように、固定されたデータ構造を持たないように設計されており、状態に応じて異なるデータを保存します。たとえば、32 ビットの場合、ストレージの内容は次のように変化します。
# 型ポインター。これは、このオブジェクトのクラス メタデータへのポインターです。このポインタは、オブジェクトがどのクラスのインスタンスであるかを知るために使用されますが、すべての仮想マシン実装がクラスのメタデータを見つけるためにこれを使用するわけではありません。
HotSpot 仮想マシンと同様に、新しいオブジェクトには通常、オブジェクトへの参照が保存されることは誰もが知っています。この参照にはオブジェクト インスタンスのアドレスが保存されます。ただし、一部の仮想マシンの実装では、この参照にはオブジェクト インスタンスのアドレスが保存されます。 a オブジェクトのハンドル アドレス。オブジェクト インスタンス アドレスとオブジェクト タイプ アドレスが含まれます。
つまり、このタイプの仮想マシンにはハンドル プールがあります。ハンドル プールにはオブジェクトのインスタンス データ アドレスとクラス データ アドレスが保存されるため、このタイプの仮想マシンはクラス データを通じてオブジェクトを直接見つけることができます。ハンドル プール内のアドレス。どのクラスに属するかのインスタンスです。
(学習ビデオ共有: java ビデオ チュートリアル )
オブジェクトが配列の場合、記録する場所が必要ですデータの長さ。
インスタンス データ
インスタンス データは、さまざまな種類のフィールドの内容を含む、オブジェクトが実際に格納されるデータ領域です。
アライメント パディング
この部分には他の意味はなく、単にプレースホルダーとして機能します。主な理由は、HotSpot 仮想マシンのメモリ管理ではオブジェクトのサイズが 8 バイトである必要があるためです。整数倍であり、オブジェクト ヘッダーは正確に 8 バイトの整数倍ですが、インスタンス データは必ずしも整数倍である必要はないため、整列して埋める必要があります。
著者: Yes のレベリング ガイド
リンク: https://juejin.cn/post/6844903827427033096
ソース: Nuggets
関連する推奨事項:javaインタビューの質問そして答え#
以上がJava オブジェクトの構成を紹介するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版
中国語版、とても使いやすい

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
