文章目录
- 第一,万物皆对象?
- 第二,JDK和JRE?JVM和HotSpot虚拟机的关系?平台无关性和语言无关性的辨析?
- 第三,Java IO?
- 第四,启动:Java编译 + Java解释执行?
- 第五,结束:JVM垃圾收集器 同步运行与异步运行?
第一,万物皆对象?
Java中万物皆对象,表示一切类继承于Object类。
第二,JDK和JRE?JVM和HotSpot虚拟机的关系?平台无关性和语言无关性的辨析?
问题1:一句话总结JDK和JRE?
回答1:JDK是Java开发工具,jre是Java运行环境;Java开发需要JDK,Java运行需要JRE。
问题2:JVM和HotSpot虚拟机的关系?
问题2:JVM是运行.class文件的平台,是理论上的,HotSpot虚拟机实现JVM一种方式,是实际上的。所以,我们使用的是HotSpot虚拟机实现的JVM。
问题3:平台无关性和语言无关性的辨析?
回答3:
平台无关性:java程序只要配合上JVM,就可以在任何操作系统是运行,本质是因为JVM平台可以在任何操作系统上搭建;
语言无关性:JVM只运行.class文件,而并不需要这个.class文件是.java文件编译生成的,可以是其他语言生成的,只要是.class文件就好。
第三,Java IO?
Java中提供的IO有关的API,在文件处理的时候,其实依赖操作系统层面的IO操作实现的。可以把Java中的BIO、NIO和AIO理解为是Java语言对操作系统的各种IO模型的封装。程序员在使用这些API的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。
第四,启动:Java编译 + Java解释执行?
Java程序使用 javac进行编译 和 java进行执行。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yMxMDM4EDMllTY0YDZygzMzYzXwAzNwAjMxAzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
javac:java编译器,将源代码变成称字节码,A.java文件变为A.class文件,JVM只能识别.class文件,这就是JVM的语言无关性,JVM可以在不同操作系统上执行,这就是JVM的平台无关性,跨平台。
java:java解释器,用来执行Java程序的字节码文件。
javac 后面跟着的是java文件的文件名,例如 HelloWorld.java。 该命令用于将 java 源文件编译为 class 字节码文件,如: javac HelloWorld.java。运行javac命令后,如果成功编译没有错误的话,会出现一个 HelloWorld.class 的文件。
java 后面跟着的是java文件中的类名,例如 HelloWorld 就是类名,如: java HelloWorld。
注意:java命令后面不要加.class。