どのような設計上の理由からjavaにsizeof演算子がありませんか?それがC++やC#で非常に有用であることと、必要に応じて特定の型のサイズを取得する方法を知っていますか?なぜJavaにはsizeofがありません
答えて
size of primitive typesはJava言語によって明示的に指定されているためです。 JVMの実装には違いはありません。
さらに、その引数に応じてnew
演算子によって割り当てが行われるため、必要なメモリ量を指定する必要はありません。
最大ヒープサイズの要件などを見積もるためにオブジェクトがどれくらいのメモリを使用するかを知ることは時々便利ですが、Java言語/プラットフォーム設計者はそれが重要な側面だとは思わなかったと思います。
みんな、C#と同じです。設計上の理由があると思います –
デザインの結果です。 – nullpotent
"人々はJavaでの不在を批判しました"とは、C#の多くの事柄の設計上の理由です。 – Affe
Inは、手動でメモリを割り当てて解放する必要があるため、有用です。ただし、javaでは自動ガベージコレクションが存在するため、これは必須ではありません。
まで... – nullpotent
私は時にはそれが役に立つかもしれないことを知っていますが、@ mericsが指摘したように、おそらくデザイナーはそれを言語仕様に追加する必要はないと思ったでしょう。オブジェクトのサイズを知る方法はまだありますが、質問のコメントの1つを確認してください。 – rabusmar
Javaでは、メモリで直接動作しないため、通常はオブジェクトのサイズを確認する場合はは不要です。this questionをチェックしてください。
メモリ管理は、JavaのVMによって行われ、おそらくこれはあなたを助けるかもしれない:int型とlong型のサイズはOSやコンパイラに依存して変化するのでhttp://www.javamex.com/java_equivalents/memory_management.shtml
Cははsizeofを必要としていました。またはそれは少なくともそれまで慣れていた。 :-) Javaでは、すべてのサイズで、ビット構成(IEEE 754など)がよりよく定義されています。
EDIT - @Maericsが彼の答えにJava仕様へのリンクを提供しています。
- 1. なぜsizeof Variablename/sizeof * VariableNameは必要に応じて機能しませんか?
- 2. なぜsizeofは機能を気にしませんか?
- 3. なぜJavaフィールドはポリモーフィックではありませんか?
- 4. なぜ私のクローンの仕事はありません。 Java
- 5. Java - なぜOutOfMemoryErrorはありませんか?
- 6. なぜこの作品はありません(JavaのArrayList)?
- 7. なぜJava 8のデフォルトコンストラクタはありませんか?
- 8. なぜフォロワーリストがありませんか?
- 9. WCF - なぜWSDLがありません
- 10. sizeof(int)がsizeof(int *)と異なるのはなぜですか?
- 11. なぜaws lambdaにはaws java sdk環境がありません
- 12. なぜ@NotFunctionalInterfaceはありませんか?
- 13. なぜボトルリターンリストはありませんか?
- 14. なぜPHPはありませんか?
- 15. なぜ私はサーバーにアクセス権がありませんか?
- 16. なぜC++には〜=と!=演算子がありませんか?
- 17. なぜplone.apiには検索がありませんか?
- 18. なぜorg.lwjgl.opengl.GL43クラスにはglDrawElementsメソッドがありませんか?
- 19. はなぜ、この時に文句Javaコンパイラではありません。
- 20. Javaにフォントがありませんか?
- 21. なぜプレフィックス/ポストフィックス++がありますが、プレフィックス/ポストフィックス+ =はありませんか?
- 22. sizeof(type)== sizeof(unsigned type)という保証はありますか?
- 23. なぜ最終的な変数は定数ではありませんJava?
- 24. なぜオプション(nil)はありませんが、nilだけはありますか?
- 25. なぜコンパイラには.javaサフィックスが必要ですが、インタプリタには.classサフィックスは必要ありません。
- 26. なぜコード実行はcatchブロックに入りませんか(java)?
- 27. なぜJavaは低遅延に使用されますが、C#は実際にはありませんか?
- 28. x.nextUntilは関数ではありません - なぜわかりません
- 29. なぜ私のjava elasticsearchリクエスト翻訳は有効ではありませんか?
- 30. Rails 3.1のアセットパイプライン - パブリック/アセットのファイルがありません - なぜこれがデフォルトではありませんか?
[Javaでは、オブジェクトのサイズを判断する最善の方法は何ですか?](http://stackoverflow.com/questions/52353/in-java-what-is-the-best-wayオブジェクトのサイズを決定する) –
http://stackoverflow.com/questions/4115239/sizeof-java-object – birryree
wellコレクションには.size()メソッドがあり、配列と文字列には.length( )。特にバイトが必要ですか? – aishwarya