为什么Java类文件“通常(但不一定)”存储在文件中?

时间:2012-03-06 22:29:10

标签: java class jvm

基于文档:

  

Java虚拟机要执行的编译代码使用独立于硬件和操作系统的二进制格式表示,通常(但不一定)存储在文件中,称为类文件格式。

如何理解这一行:typically (but not necessarily)。这是什么意思?我可以保存my filehello file,或者什么?

6 个答案:

答案 0 :(得分:4)

这意味着编译的类通常存储在文件中,但在某些系统中,它们可能以其他方式存储(而不是存储在文件中)。

例如,使用Oracle数据库可以用Java编写存储过程。这些存储过程将被编译,但不保存在类文件中;相反,编译的类存储在数据库的某个地方。

答案 1 :(得分:2)

嗯,这是一个描述。类加载器可以配置为从任何流中读取类。所以,如果它是一个applet ..它将是一个网络流,而不是一个文件

答案 2 :(得分:1)

例如,它可以直接编译到内存中并从内存执行。

答案 3 :(得分:1)

“通常(但不一定)”限定仅仅意味着编译后的代码不会存储在文件中,尽管通常。例如:Java类可以编译,存储在内存中,并仅在内存中执行。

答案 4 :(得分:1)

它可以存在于数据库中,而不是文件中。 (Oracle就是这么做的。)或者,对于一个非常慢的JVM,可以在一个时髦的腿上纹身。

但它通常在一个以.class结尾的文件中,也许会压缩成一个罐子。

答案 5 :(得分:0)

代码可以在内存而不是文件中。在解释器从文件中加载它之后,它最终会存在。