どのような設計上の理由から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. WCF - なぜWSDLがありません
- 3. Java - なぜOutOfMemoryErrorはありませんか?
- 4. なぜこの作品はありません(JavaのArrayList)?
- 5. なぜPHPはありませんか?
- 6. sizeof(int)がsizeof(int *)と異なるのはなぜですか?
- 7. なぜ私はサーバーにアクセス権がありませんか?
- 8. Javaにフォントがありませんか?
- 9. なぜプレフィックス/ポストフィックス++がありますが、プレフィックス/ポストフィックス+ =はありませんか?
- 10. はなぜ、この時に文句Javaコンパイラではありません。
- 11. なぜコード実行はcatchブロックに入りませんか(java)?
- 12. Rails 3.1のアセットパイプライン - パブリック/アセットのファイルがありません - なぜこれがデフォルトではありませんか?
- 13. なぜコンパイラには.javaサフィックスが必要ですが、インタプリタには.classサフィックスは必要ありません。
- 14. なぜプロパティはankhsvnで効果がありませんか?
- 15. なぜJavaは低遅延に使用されますが、C#は実際にはありませんか?
- 16. sizeof(type)== sizeof(unsigned type)という保証はありますか?
- 17. JDBC ResultSet:最後ではありませんが、次はありません、なぜですか?
- 18. なぜ 'object'クラスにユーザ設定属性がありません
- 19. WPF:なぜメッセージボックスにタイトルバーのアイコンがありませんか
- 20. なぜPyQt 4.9にWebKitがありません
- 21. なぜT-SQLにエラーがありませんか?
- 22. なぜNode.jsにこのコードブロックがありませんか?
- 23. プロジェクトにpersistence.xmlがありません。なぜですか?
- 24. なぜMFC :: CHttpFile 'PUT'は私にはありませんか?
- 25. 応答がありませんサーバーソケットJava
- 26. Java Decryption Textがありません
- 27. Javaのメモリリークがありません
- 28. Eclipseのjavaプロジェクトオプションがありません
- 29. javaエラーがありませんreturn文
- 30. Javaはガベージコレクトメモリではありません
[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