Java语言特点?编译与解释并存?

Java语言特点:

· 面向对象(封装,继承,多态);

· 平台无关性( Java 虚拟机实现平台无关性);

· 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);

· 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便);

· 编译与解释并存;

 

Java和C++的区别:

· 多线程

· GC

· 单继承(接口多继承)

· 指针

 

编译与解释并存:

   编译型 :编译型语言,会通过编译器将源代码一次性翻译成可被该平台执行的机器码。一般情况下,编译语言的执行速度比较快,开发效率比较低。常见的编译性语言有 C、C++、Go、Rust 等等。
   解释型 :解释型语言,会通过解释器一句一句的将代码解释(interpret)为机器代码后再执行。解释型语言开发效率比较快,执行速度比较慢。常见的解释性语言有 Python、JavaScript、PHP 等等。

  Java 语言既具有编译型语言的特征,也具有解释型语言的特征。

  因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(.class 文件),这种字节码必须由 Java 解释器来解释执行。

  我们需要格外注意的是 .class->机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT(just-in-time compilation) 编译器,而 JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言

 

https://limingxie.github.io/java/java_javac_compiler/

javac的编译(.java => .class)过程大体上可以分3个步骤。

  1. 解析填充符号表Parse and Enter
  2. 插入式注解处理器的注解处理过程Annotation Processing
  3. 分析与字节码生产过程Analyse and Generate
posted @ 2023-04-17 23:11  壹索007  阅读(82)  评论(0编辑  收藏  举报