私はjavaでいくつかのプログラムを書いていますが、32ビットか64ビットかどうかを知りたいのですが、それは64ビットであれば32ビットコンピュータでどのように動作するのでしょうか?私が書き込むプログラムが32ビットか64ビットかどうかをどのように知ることができますか?
答えて
私はJavaでプログラムをいくつか書きましたが、私は、彼らが32ビットまたは64ビット
でもないかどうかを知りたいと思います。 Javaプログラムは、特に32ビットまたは64ビットではありません。
すべてのJavaプログラムは、すべての最新のJava実装で実行する必要があります。
Javaプログラムをコンパイルすると、それはJava bytecodeになります。これは、コンパイルするプラットフォームや実行するプラットフォームに依存しないことがよくあります。
この質問はあなたのためにいくつかの質問に答える必要があります。Java 32-bit vs 64-bit compatibility
64ビットのJava実装は、より良い、いくつかの64ビット演算を扱うかもしれませんが、プログラムがどのように動作するかのように差があってはならない(」あなたが上がらないと仮定すると64ビットの実装を必要とするライブラリを使用して)。
JREによって決定されます。 JREの32ビットバージョンと64ビットバージョンが存在します。
コンパイルされたJavaプログラムは、システムのアーキテクチャに依存しません。あなたには、いくつかの特定のケースのためのJVMのビットサイズを確認したい場合は ケースでは、一般的に、我々は32ビットまたは64ビットを言うことができるコードを書くことはありません
System.out.println("JVM Bit size: " + System.getProperty("sun.arch.data.model"));
を使用することができます。 実際にはJREとマシンに依存します。 残りのものはJVMとCPUによって管理されます。
例えば、32ビットマシンでlongまたはdoubleのような64ビットプリミティブを使用すると、の場合でも、long var = 10l;
のような割り当て操作でさえ、アトミックな操作にはなりません。 32ビットの2つのフェーズで発生します。
しかし、同じ割り当て操作は64ビットでアトミック操作になります。
あなたは正しい答えです。http://howtodoinjava.com/core-java/basics/difference-between-32-bit-java-vs-64-bit-java/から情報を追加して、後で参考にしてください – Pfeiffer
long型とdouble型の読み込みと書き込みの値は、64ビットjvmでは絶対不可能です。jvmはそれを指定しません。また、jlsは次のように定義します。 'Javaプログラミング言語メモリモデルの目的では、揮発性のlong値またはdouble値は、2つの別個の書き込みとして扱われます。 Java VirtualMachineのインプリメンテーションは、long値とdouble値への書き込みをアトミックまたは2つの部分で自由に実行できます。」32ビットまたは64ビットは必要ありません – dabaicai
@Pfeifferいいえ、この回答は正しくありません。 **この回答は非常に間違っています。** Java仕様[17.7。非アトミックな2倍と長い処理](http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.7):明示的には*** 'volatile 'とマークされていない限り、' double'または 'long' **へのアトミック書き込みの保証はありません。 JVM実装*はアトミックな書き込みを実行するかもしれませんが、Javaプログラマはそれに頼るべきではありません。マルチスレッドの場合は、半分書かれた64ビット番号の不適切な読み取りから保護する必要があります。実際 –
- 1. コンパイルされたバイナリが32ビットか64ビットかどうかをどうやって確認できますか?
- 2. インストーラのどのアセンブリが64ビットでないかをどのように知ることができますか?
- 3. 64ビットアプリケーションの32ビット部分をどのようにデバッグ(GDB)できますか?
- 4. 32ビットと64ビットは一緒に動作できますか?
- 5. 32ビットpython(32ビットpython)は、Microsoftの64ビットODBCドライバで動作します。どうして?私が観察することができます
- 6. 64ビットのDLLを32ビットのJVMにロードできますか?
- 7. 64〜32ビットInterop - どのように?
- 8. Solaris Sparc 64ビットで64ビットプロセスが32ビット共有ライブラリをロードできるか
- 9. 64ビットpyodbcは32ビットMSアクセスデータベースと通信できますか?
- 10. 64ビットUbuntuの下で32ビットをコンパイルできますか?
- 11. 32ビットと64ビットのPythonが衝突しますか?
- 12. 64ビットvC++プログラムが32ビットモードで動作するようです。
- 13. どのように32ビットのC#アプリケーションで64ビットDLLを利用できるのですか
- 14. 64ビットOSで32ビットSTSを使用できますか?
- 15. 64ビットと32ビットのUbuntuと低メモリシステム - なぜUbuntu 64ビットが私のRAMを食べるのですか?
- 16. UEFI Shellが64ビットまたは32ビットで起動しているかどうかを確認する方法?
- 17. 32ビットExcelアドインは、64ビットExcelで動作できますか?
- 18. ユニティビルドのアプリケーションが32ビットまたは64ビットであること
- 19. Amazon EC2インスタンスが32ビットまたは64ビットであるかどうかを調べる方法は?
- 20. CUDAデバイスが32ビットまたは64ビットのアドレッシングをサポートするかどうかの問い合わせ
- 21. C - 8ビットが32ビットであるかどうかをチェックする方法?
- 22. WMIとWin32_Process - 32ビットか64ビットかを判断しますか?
- 23. ソフトウェアを32ビットから64ビットにコンパイル
- 24. Tomcatがウィンドウサーバー上で32ビットまたは64ビットであるかどうかを調べるにはどうすればよいですか?
- 25. プロセスが64ビットか32ビットかをチェックする方法はありますか?
- 26. これは32ビットまたは64ビットのJVMですか?
- 27. どうすれば64ビットで、c:¥program files(x86)を、32ビットではc:¥programファイルを使用できますか?
- 28. 32ビットと64ビットのGMPライブラリの競合を解決するにはどうすればよいですか?
- 29. 私は32ビットWindows上で64ビットJavaプログラムを実行できます
- 30. 私が作ったiOSアプリが32ビットであるかどうかは分かりますか?どのように変更できますか?
何か特別なjavaがあなたのためにすべてを処理しない限り、あなたはそれを実行します。通常のJavaコードは、64ビットまたは32ビットのjvmで実行する場合は気にしません。 – Oleg
Javaプログラムは32または64ビットではありません。適切なJVMがあれば、どちらでも実行されます。 – EJP