2012-03-06 5 views
0

:Java仮想マシンで実行されるJavaクラスファイルは「通常(ただし必ずしも必要ではない)」ファイルに格納されるのはなぜですか?ドキュメントに基づい

コンパイルされたコードは(必ずしもそうではないが)、典型的には、ハードウェアとオペレーティングシステムに依存しないバイナリ形式を使用して表されるファイルに格納されている、としても知られていますクラスファイル形式。

この行の理解:typically (but not necessarily)。どういう意味ですか?私はmy filehello fileのようなものを保存することができますか?

答えて

4

コンパイルされたクラスは通常ファイルに格納されますが、システムによっては(ファイルではなく)別の方法で格納されることがあります。

たとえば、Oracleデータベースでは、ストアドプロシージャをJavaで記述することができます。これらのストアドプロシージャはコンパイルされますが、クラスファイルには保存されません。代わりに、コンパイルされたクラスはどこかのデータベースに格納されます。

1

たとえば、メモリに直接コンパイルしてメモリから実行することができます。

1

「は、典型的には(必ずしも必要ではないが)」資格だけでコンパイルされたコードは、それが通常は可能でしょうがは、ファイルに格納されている必要はありませないことを意味します。たとえば、Javaクラスをコンパイルしてメモリに格納して実行することができます。

2

これは説明です。クラスローダーは、任意のストリームからクラスを読み取るように構成できます。したがって、アプレットであれば、ファイルではなくネットワークストリームになります。

1

ファイルではなくデータベースに存在する可能性があります。 (Oracleはそうしています)。または、本当に遅いJVMの場合は、ヒップスターの脚に入れ墨を入れてください。

通常は、.classで終わるファイルにあります。おそらく、jarファイルに圧縮されています。

0

コードはファイルではなくメモリ上にある可能性があります。インタプリタがファイルからファイルを読み込んだら、最終的にそこに存在します。

関連する問題