答えて
私はこの本を読んで覚えています。これは私が本から覚えたものです。私はこれを覚えていると十分だと思います。もっと知る必要がある場合は、もう一度読むようにします。
GCは常に、ヒープ内のメモリ位置へのポインタを保持しているため、次のオブジェクトをどこに割り当てるかがわかります。これは、次のオブジェクトポインタまたはNOPと呼ばれます。
のは、あなたがこのクラスここ
public class Employee
{
private int empId
public void Work()
{
// ...
}
}
は、インスタンスは次のようになりますどのように持っているとしましょう:
-------------------------- -4 bytes
| Object Header Word |
|------------------------| +0 bytes <------Object reference is pointed here as well
| Method Table Pointer |
|------------------------| +4 bytes for method tabel pointer
| Storage for empId |
|------------------------| +8 bytes (4 for empId) (12 in total (from -4 to +8))
ヘッダワードは、このような同期、GC、ハッシュコードなど、多くの目的のために使用されるオブジェクトファイナライズ。
メソッドテーブルポインタは、単にメソッドテーブルまたはMTと呼ばれる内部CLRデータ構造を指すポインタです。 MTはEEClassと呼ばれる別の構造を指しています。 MTとEEClassは、仮想メソッド、インタフェースメソッドを呼び出すために一緒に動作し、ランタイムオブジェクトのタイプを決定します。
あと、64ビットシステムでは、オブジェクトヘッダーワードは8バイト(4ではなく)です。 int
の代わりに上記のクラスにbool
という1つがあったとしても、ヒープ内のオブジェクトは最も近い4バイトの倍数に揃えられているため、12バイトを占有します。
お返事ありがとうございます。 –
「オブジェクト見出し語」には何が入っていますか?私はどこにでも説明を見つけることができません。 – rolls
- 1. C#で定数オブジェクトを作成するには? C#で一定のオブジェクトを作成する方法
- 2. C++でCocoaオブジェクトを作成する方法は?
- 3. Cでオブジェクトのインスタンスを作成する方法#
- 4. C#でjsonオブジェクトを作成する方法は?
- 5. MongoDBでオブジェクトを作成する方法
- 6. MEFでオブジェクトを作成する方法
- 7. .ps1ファイル内にC#文字列オブジェクトを作成する方法
- 8. C#辞書戻りオブジェクトからリストを作成する方法
- 9. C#2.0 generics:パラメータがゼロのActionオブジェクトを作成する方法
- 10. バイト配列CからManaged.Graphics.Direct2D.Bitmapオブジェクトを作成する方法#
- 11. C#でゲームエンジンを作成する方法
- 12. C#でグローバルオブジェクトを作成する方法
- 13. データベースをC++で作成する方法
- 14. C++でログファイルを作成する方法
- 15. Cでレジストリキーを作成する方法
- 16. Cでカスタムカレンダーを作成する方法#?
- 17. Cでオブジェクトを作成する
- 18. MonoTouch(C#)でJSONオブジェクトを作成する
- 19. C++でオブジェクトのコピーを作成する
- 20. C++でインターフェイスのオブジェクトを作成する
- 21. オブジェクトを作成するボタンを作成する方法は?
- 22. 回転する3Dオブジェクトの作成方法C#
- 23. 3Dオブジェクトを作成する方法
- 24. NSDictionary。 NSDictionaryオブジェクトを作成する方法
- 25. Pythonユニットテストで別のオブジェクトからオブジェクトを作成する方法
- 26. オブジェクトSpringでオブジェクトを作成する方法JPA(Jhipster)
- 27. C++でのオブジェクト作成
- 28. c#で関数を使って作成したオブジェクトにアクセスする方法
- 29. C#でオブジェクトのjson配列を作成して格納する方法
- 30. C++で2つのベクトルからJSONオブジェクトを作成する方法は?
C#book –
でCLRの第3章(タイプの基礎)を読んでくださいあなたがここで何をしているのかは不明です。正確なものは何ですか? CLRのメモリ割り当て、ガベージコレクションなど、あるいはコンストラクタ、フィールドイニシャライザなどの順序はどうですか? –
こんにちはJohnさん、ありがとうございます。実際に私はC#を学んでいると私はオブジェクトの作成についてすべてを知る必要があります。すべてのメモリ割り当てから呼ばれるコンストラクタへ。 –