From b52f304bc9c1a99965c9d7e3be2b895b82cf2a72 Mon Sep 17 00:00:00 2001 From: guide Date: Mon, 15 Nov 2021 16:16:54 +0800 Subject: [PATCH] =?UTF-8?q?[feat]Java=E5=9F=BA=E7=A1=80=E7=9F=A5=E8=AF=86&?= =?UTF-8?q?=E9=9D=A2=E8=AF=95=E9=A2=98=E6=80=BB=E7=BB=93=E2=80=94=E2=80=94?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A6=82=E5=BF=B5=E4=B8=8E=E5=B8=B8=E8=AF=86?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...序转变为机器代码的过程.drawio | 1 + ...va程序转变为机器代码的过程.png | Bin 0 -> 39832 bytes .../编译型语言和解释型语言.drawio | 1 + .../编译型语言和解释型语言.png | Bin 0 -> 40440 bytes docs/java/basis/java基础知识总结.md | 89 ++++++++++-------- 5 files changed, 53 insertions(+), 38 deletions(-) create mode 100644 docs/java/basis/images/java程序转变为机器代码的过程.drawio create mode 100644 docs/java/basis/images/java程序转变为机器代码的过程.png create mode 100644 docs/java/basis/images/编译型语言和解释型语言.drawio create mode 100644 docs/java/basis/images/编译型语言和解释型语言.png diff --git a/docs/java/basis/images/java程序转变为机器代码的过程.drawio b/docs/java/basis/images/java程序转变为机器代码的过程.drawio new file mode 100644 index 00000000..bc9ad63a --- /dev/null +++ b/docs/java/basis/images/java程序转变为机器代码的过程.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/java/basis/images/java程序转变为机器代码的过程.png b/docs/java/basis/images/java程序转变为机器代码的过程.png new file mode 100644 index 0000000000000000000000000000000000000000..881376521bfde2d168863be360ca0c0dd6710089 GIT binary patch literal 39832 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 \ No newline at end of file diff --git a/docs/java/basis/images/编译型语言和解释型语言.png b/docs/java/basis/images/编译型语言和解释型语言.png new file mode 100644 index 0000000000000000000000000000000000000000..af483a7674add3241de206b25138237d91fb388e GIT binary patch literal 40440 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

kca=`G7lLT>1~Gg%fieI3F2R7#kz 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 I+=rn50wDfq1poj5 literal 0 HcmV?d00001 diff --git a/docs/java/basis/java基础知识总结.md b/docs/java/basis/java基础知识总结.md index 867bfb63..86efa49b 100644 --- a/docs/java/basis/java基础知识总结.md +++ b/docs/java/basis/java基础知识总结.md @@ -20,28 +20,22 @@ tag: > **🐛 修正(参见: [issue#544](https://github.com/Snailclimb/JavaGuide/issues/544))** :C++11 开始(2011 年的时候),C++就引入了多线程库,在 windows、linux、macos 都可以使用`std::thread`和`std::async`来创建线程。参考链接:http://www.cplusplus.com/reference/thread/thread/?kw=thread +🌈 拓展一下: + +“Write Once, Run Anywhere(一次编写,随处运行)”这句宣传口号,真心经典,流传了好多年!以至于,直到今天,依然有很多人觉得跨平台是 Java 语言最大的优势。实际上,跨平台已经不是 Java 最大的卖点了,各种 JDK 新特性也不是。目前市面上虚拟化技术已经非常成熟,比如你通过 Docker 就很容易实现跨平台了。在我看来,Java 强大的生态才是! + ### JVM vs JDK vs JRE #### JVM -Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。 - -**什么是字节码?采用字节码的好处是什么?** - -> 在 Java 中,JVM 可以理解的代码就叫做`字节码`(即扩展名为 `.class` 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。 - -**Java 程序从源代码到运行一般有下面 3 步:** - -![Java程序运行过程](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/Java%20%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E8%BF%87%E7%A8%8B.png) - -我们需要格外注意的是 .class->机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT 编译器,而 JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言。 - -> HotSpot 采用了惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分系统资源的只有那一小部分的代码(热点代码),而这也就是 JIT 所需要编译的部分。JVM 会根据代码每次被执行的情况收集信息并相应地做出一些优化,因此执行的次数越多,它的速度就越快。JDK 9 引入了一种新的编译模式 AOT(Ahead of Time Compilation),它是直接将字节码编译成机器码,这样就避免了 JIT 预热等各方面的开销。JDK 支持分层编译和 AOT 协作使用。但是 ,AOT 编译器的编译质量是肯定比不上 JIT 编译器的。 - -**总结:** - Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。 +**JVM 并不是只有一种!只要满足 JVM 规范,每个公司、组织或者个人都可以开发自己的专属 JVM。** 也就是说我们平时接触到的 HotSpot VM 仅仅是是 JVM 规范的一种实现而已。 + +除了我们平时最常用的 HotSpot VM 外,还有 J9 VM、Zing VM、JRockit VM 等 JVM 。维基百科上就有常见 JVM 的对比:[Comparison of Java virtual machines](https://link.zhihu.com/?target=http%3A//en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines) ,感兴趣的可以去看看。并且,你可以在 [Java SE Specifications](https://docs.oracle.com/javase/specs/index.html) 上找到各个版本的 JDK 对应的 JVM 规范。 + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/javaguide/Java-SE-Specifications.png) + #### JDK 和 JRE JDK 是 Java Development Kit 缩写,它是功能齐全的 Java SDK。它拥有 JRE 所拥有的一切,还有编译器(javac)和工具(如 javadoc 和 jdb)。它能够创建和编译程序。 @@ -50,14 +44,40 @@ JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有 如果你只是为了运行一下 Java 程序的话,那么你只需要安装 JRE 就可以了。如果你需要进行一些 Java 编程方面的工作,那么你就需要安装 JDK 了。但是,这不是绝对的。有时,即使您不打算在计算机上进行任何 Java 开发,仍然需要安装 JDK。例如,如果要使用 JSP 部署 Web 应用程序,那么从技术上讲,您只是在应用程序服务器中运行 Java 程序。那你为什么需要 JDK 呢?因为应用程序服务器会将 JSP 转换为 Java servlet,并且需要使用 JDK 来编译 servlet。 +### 什么是字节码?采用字节码的好处是什么? + +在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 `.class` 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以, Java 程序运行时相对来说还是高效的(不过,和 C++,Rust,Go 等语言还是有一定差距的),而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。 + +**Java 程序从源代码到运行的过程如下图所示:** + +![Java程序转变为机器代码的过程](./images/java程序转变为机器代码的过程.png) + +我们需要格外注意的是 `.class->机器码` 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT(just-in-time compilation) 编译器,而 JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 **Java 是编译与解释共存的语言** 。 + +> HotSpot 采用了惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分系统资源的只有那一小部分的代码(热点代码),而这也就是 JIT 所需要编译的部分。JVM 会根据代码每次被执行的情况收集信息并相应地做出一些优化,因此执行的次数越多,它的速度就越快。JDK 9 引入了一种新的编译模式 AOT(Ahead of Time Compilation),它是直接将字节码编译成机器码,这样就避免了 JIT 预热等各方面的开销。JDK 支持分层编译和 AOT 协作使用。但是 ,AOT 编译器的编译质量是肯定比不上 JIT 编译器的。 + ### 为什么说 Java 语言“编译与解释并存”? -高级编程语言按照程序的执行方式分为编译型和解释型两种。简单来说,编译型语言是指编译器针对特定的操作系统将源代码一次性翻译成可被该平台执行的机器码;解释型语言是指解释器对源程序逐行解释成特定平台的机器码并立即执行。比如,你想阅读一本英文名著,你可以找一个英文翻译人员帮助你阅读, -有两种选择方式,你可以先等翻译人员将全本的英文名著(也就是源码)都翻译成汉语,再去阅读,也可以让翻译人员翻译一段,你在旁边阅读一段,慢慢把书读完。 +其实这个问题我们讲字节码的时候已经提到过,因为比较重要,所以我们这里再提一下。 -Java 语言既具有编译型语言的特征,也具有解释型语言的特征,因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(`*.class` 文件),这种字节码必须由 Java 解释器来解释执行。因此,我们可以认为 Java 语言编译与解释并存。 +我们可以将高级编程语言按照程序的执行方式分为两种: -### Oracle JDK 和 OpenJDK 的对比 +- **编译型** :[编译型语言](https://zh.wikipedia.org/wiki/%E7%B7%A8%E8%AD%AF%E8%AA%9E%E8%A8%80) 会通过[编译器](https://zh.wikipedia.org/wiki/%E7%B7%A8%E8%AD%AF%E5%99%A8)将源代码一次性翻译成可被该平台执行的机器码。一般情况下,编译语言的执行速度比较快,开发效率比较低。常见的编译性语言有 C、C++、Go、Rust 等等。 +- **解释型** :[解释型语言](https://zh.wikipedia.org/wiki/%E7%9B%B4%E8%AD%AF%E8%AA%9E%E8%A8%80)会通过[解释器](https://zh.wikipedia.org/wiki/直譯器)一句一句的将代码解释(interpret)为机器代码后再执行。解释型语言开发效率比较快,执行速度比较慢。常见的解释性语言有 Python、JavaScript、PHP 等等。 + +![编译型语言和解释型语言](./images/编译型语言和解释型语言.png) + +根据维基百科介绍: + +> 为了改善编译语言的效率而发展出的[即时编译](https://zh.wikipedia.org/wiki/即時編譯)技术,已经缩小了这两种语言间的差距。这种技术混合了编译语言与解释型语言的优点,它像编译语言一样,先把程序源代码编译成[字节码](https://zh.wikipedia.org/wiki/字节码)。到执行期时,再将字节码直译,之后执行。[Java](https://zh.wikipedia.org/wiki/Java)与[LLVM](https://zh.wikipedia.org/wiki/LLVM)是这种技术的代表产物。 +> +> 相关阅读:[基本功 | Java 即时编译器原理解析及实践](https://tech.meituan.com/2020/10/22/java-jit-practice-in-meituan.html) + +**为什么说 Java 语言“编译与解释并存”?** + +这是因为 Java 语言既具有编译型语言的特征,也具有解释型语言的特征。因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(`.class` 文件),这种字节码必须由 Java 解释器来解释执行。 + +### Oracle JDK vs OpenJDK 可能在看这个问题之前很多人和我一样并没有接触和使用过 OpenJDK 。那么 Oracle JDK 和 OpenJDK 之间是否存在重大差异?下面我通过收集到的一些资料,为你解答这个被很多人忽视的问题。 @@ -78,12 +98,12 @@ Java 语言既具有编译型语言的特征,也具有解释型语言的特征 🌈 拓展一下: -- BCL 协议(Oracle Binary Code License Agreement): 可以使用JDK(支持商用),但是不能进行修改。 -- OTN 协议(Oracle Technology Network License Agreement): 11 及之后新发布的JDK用的都是这个协议,可以自己私下用,但是商用需要付费。 +- BCL 协议(Oracle Binary Code License Agreement): 可以使用 JDK(支持商用),但是不能进行修改。 +- OTN 协议(Oracle Technology Network License Agreement): 11 及之后新发布的 JDK 用的都是这个协议,可以自己私下用,但是商用需要付费。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/20210425151835918.png) -相关阅读👍:[《Differences Between Oracle JDK and OpenJDK》](https://www.baeldung.com/oracle-jdk-vs-openjdk) +相关阅读 👍:[《Differences Between Oracle JDK and OpenJDK》](https://www.baeldung.com/oracle-jdk-vs-openjdk) ### Java 和 C++的区别? @@ -96,12 +116,6 @@ Java 语言既具有编译型语言的特征,也具有解释型语言的特征 - C ++同时支持方法重载和操作符重载,但是 Java 只支持方法重载(操作符重载增加了复杂性,这与 Java 最初的设计思想不符)。 - ...... -### import java 和 javax 有什么区别? - -刚开始的时候 JavaAPI 所必需的包是 java 开头的包,javax 当时只是扩展 API 包来使用。然而随着时间的推移,javax 逐渐地扩展成为 Java API 的组成部分。但是,将扩展从 javax 包移动到 java 包确实太麻烦了,最终会破坏一堆现有的代码。因此,最终决定 javax 包将成为标准 API 的一部分。 - -所以,实际上 java 和 javax 没有区别。这都是一个名字。 - ## 基本语法 ### 字符型常量和字符串常量的区别? @@ -154,8 +168,8 @@ Java 中的注释有三种: ### Java 中有哪些常见的关键字? -| 分类 | 关键字 | | | | | | | -| :-------------------- | -------- | ---------- | -------- | ------------ | ---------- | --------- | ------ | +| 分类 | 关键字 | | | | | | | +| :------------------- | -------- | ---------- | -------- | ------------ | ---------- | --------- | ------ | | 访问控制 | private | protected | public | | | | | | 类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native | | | new | static | strictfp | synchronized | transient | volatile | | @@ -686,22 +700,22 @@ public void f5(int a) { 不过,需要注意的是一般不建议使用 `对象.方法名` 的方式来调用静态方法。这种方式非常容易造成混淆,静态方法不属于类的某个对象而是属于这个类。 -因此,一般建议使用 `类名.方法名` 的方式来调用静态方法。 +因此,一般建议使用 `类名.方法名` 的方式来调用静态方法。 ```java public class Person { - public void method() { + public void method() { //...... } - + public static void staicMethod(){ //...... } public static void main(String[] args) { Person person = new Person(); // 调用实例方法 - person.method(); + person.method(); // 调用静态方法 Person.staicMethod() } @@ -1107,7 +1121,6 @@ public final void wait() throws InterruptedException//跟之前的2个wait方法 protected void finalize() throws Throwable { }//实例被垃圾回收器回收的时候触发的操作 ``` - ## 反射 ### 何为反射? @@ -1319,7 +1332,8 @@ try (BufferedInputStream bin = new BufferedInputStream(new FileInputStream(new F `transient` 关键字的作用是:阻止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被 `transient` 修饰的变量值不会被持久化和恢复。 -关于 `transient` 还有几点注意: +关于 `transient` 还有几点注意: + - `transient` 只能修饰变量,不能修饰类和方法。 - `transient` 修饰的变量,在反序列化后变量值将会被置成类型的默认值。例如,如果是修饰 `int` 类型,那么反序列后结果就是 `0`。 - `static` 变量因为不属于任何对象(Object),所以无论有没有 `transient` 关键字修饰,均不会被序列化。 @@ -1371,4 +1385,3 @@ Java IO 流共涉及 40 多个类,这些类看上去很杂乱,但实际上 - https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre - https://www.educba.com/oracle-vs-openjdk/ - https://stackoverflow.com/questions/22358071/differences-between-oracle-jdk-and-openjdk 基础概念与常识 -