什么以及如何构建Java框架?
我知道这个问题有点傻 我是一名Java程序员,以前从未研究过Java源代码,我一直在使用Java(官方)框架(例如javax.swing.,Java.util.,Java.collection.*和诸如此类)来构建一些应用程序 现在,我尝试查看Java源代码(我是黑盒编程范例的受害者),发现源代码完全是用Java编写的。现在,我很困惑,Java(在Java源代码中,我知道这里有点混乱)正在使用什么框架来形成我们正在使用的框架 诚恳地说,我希望在Java源代码中看到一些汇编类代码,但事实并非如此。我“觉得”我们使用的普通框架(java..,javax..)不是JVM的最低入口点。一定有比这更低的东西 有人能解释一下吗?我不是专家,但 JVM将Java源代码转换为机器代码。这是最低级别,一旦你有了运行Java源代码的东西(JVM),你就可以围绕它(用Java)构建一个框架 也就是说,仍然有一些本机操作系统函数调用-很抱歉,我不太了解它们 FYI.NET也是一样,框架是用.NET编写的,到处都是本机调用。大多数Java库(您称之为框架)是用Java编写的。解释编译的字节码的JVM大部分是用C++实现的,而且库中确实包含了用较低层语言(C或C++)编写的“原生”方法。p> 方法是用较低级别的语言编写的,原因只有两个:平台依赖性(在每个平台上必须有所不同)和性能(一直被使用并从本机代码中获益的东西)什么以及如何构建Java框架?,java,compiler-construction,frameworks,Java,Compiler Construction,Frameworks,我知道这个问题有点傻 我是一名Java程序员,以前从未研究过Java源代码,我一直在使用Java(官方)框架(例如javax.swing.,Java.util.,Java.collection.*和诸如此类)来构建一些应用程序 现在,我尝试查看Java源代码(我是黑盒编程范例的受害者),发现源代码完全是用Java编写的。现在,我很困惑,Java(在Java源代码中,我知道这里有点混乱)正在使用什么框架来形成我们正在使用的框架 诚恳地说,我希望在Java源代码中看到一些汇编类代码,但事实并非如此。
最终的结果是,几乎所有的库都是平台无关的,不必为每个平台重写。非Java代码的范围仅限于平台特定的内容。Java源代码:一些用Java程序语言编写的代码 javac:一个命令行实用程序,用于将Java源代码编译成类文件(包含字节码) jvm:加载类文件,并在该文件中执行字节码 字节码:一种指令集,看起来像汇编语言。一条指令的长度是一个字节(这就是为什么它被称为字节码) JNI:Java本机接口(主要由C/C++编写),一个扩展Java程序能力的接口,很难/无法使用Java实现,例如一些关于操作系统的程序 字节码是这样的:
public static void main(java.lang.String[]);
Code:
0: ldc #16 // String a a \"fsd fsd\" sfd gfd \"fs d\"
2: astore_1
3: getstatic #18 // Field java/lang/System.out:Ljava/io/PrintStream;
6: aload_1
7: invokestatic #24 // Method t:(Ljava/lang/String;)Ljava/lang/String;
10: invokevirtual #28 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
13: return
您可以使用命令实用程序javap获取上面的代码。不知道它是否算作框架,但是Swing根据平台的不同使用DirectX和OpenGL……我只是不明白我们正在使用的Java框架如何实际将自己用作框架。