我有一个关于用Java存储包的问题。
通常,我们假设包存储在本地文件系统中,每个文件只应有一个公共类或接口。
但是对于存储在“某种数据库”中的包不是这种情况。
它是用Java SE 8规范编写的:
“在Java SE平台的简单实现中,包和编译单元可以存储在本地文件系统中。其他实现可以使用分布式文件系统或某种形式的数据库来存储它们。”
参见JLS第7.2节。
通常,我们将Java SE下载为一个简单的exe文件(对于Windows情况),该文件将一组文件夹和文件安装到本地文件系统中。我们将其命名为“Java SE安装”。
您知道吗,“数据库案例”是否有“Java SE安装”? 或者你知道如何实施它吗?
答案 0 :(得分:0)
看起来我理解了这个问题。
1)首先,是的,他们将实现该功能的细节留给了Java实现者。
2)编译单元是Java Compiler(javac.exe)的“食物”,而不是JVM(java.exe),我们指定这个“食物”就像
javac MyClass.java
和in -sourcepath选项。 所有这些东西都是文件(java文件,文件夹,jar / zip文件)。
3)从我的观点来看,“Database Java SE”可以选择直接连接到数据库并从表中获取源 并推回数据库编译的二进制代码。
例如javac_db“从db获取源”“将二进制代码发布到db”
4)关于服务器上的applet。 事实上,applet作为二进制类文件存储在服务器中,因此它们不是编译器的“食物”。 通常它们存储为单独的类文件或jar / zip文件。
5)关于自动生成的Java代码,如编译的JSP页面。 当我们将JSP页面转换为servlet时,我们在内存中创建Servlet源,但在编译之前,我们将其序列化为文件然后发送到javac.exe。 因此我们在这里处理文件。
因此“Database Java SE”主要涉及Java工具,如“java_db.exe”,“javac_db.exe”等。