其他分享
首页 > 其他分享> > 2021-11-04 编译/解释、动态/静态、强类型/弱类型

2021-11-04 编译/解释、动态/静态、强类型/弱类型

作者:互联网

jvm

"一次编译,到处运行"说的是Java语言跨平台的特征,Java的跨平台特征与Java虚拟机是密不可分的,可在不同的环境中运行,比如说Windows平台的Linux平台都有相应的JDK,安装好JDK后就有了Java语言的运行环境。其实Java语言本身与其他的编程语言没有特别大的差异,并不是Java语言可以跨平台,而是在不同的平台上都有可以让Java语言运行的环境而已,所以才有了Java一次编译,到处运行这样的效果。严格的讲。跨平台的语言不止Java一种,但是Java是较为成熟的一种.

1. 解释性、编译型

Java是存在编译过程的,但是它编译成的不是【机器指令】,而是【字节码】,字节码只能由JVM识别,硬件没办法识别,运行的过程是由jvm使用解释的方式执行的.(加一层:要么屏蔽复杂要么屏蔽不同)

但是为了提升效率,JVM推出了JIT(just in time complie 即时编译器),就是运行过程中,能将部分热点代码,直接编译成机器码,加快执行效率,甚至在Java9 中提出了AOT 编译器(Ahead Of Time,运行前编译)

So far, 在JVM中有三个非常重要的编译器,他们分别是:前端编译器,JIT编译器,AOT编译器。

而在JVM中,通过这几种不同的方式的配合,使得JVM的编译质量和运行速度达到最优的状态。
在这里插入图片描述

Java是解释型和编译型兼顾的语言

2. 动态类型、静态类型

Java是一种静态类型的语言

3.强类型定义语言、弱类型定义语言

强类型定义语言:一旦一个变量被指定了数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。强类型定义语言是类型安全的语言。
弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反,一个变量可以赋不同数据类型的值。强类型定义语言在速度上可能略逊色与弱类型定义的语言,但是强类型定义语言带来的严谨性能有效的避免许多错误。

Java是一种强类型定义语言

标签:11,Java,语言,04,定义语言,编译,编译器,2021,类型
来源: https://blog.csdn.net/qq_46049113/article/details/121150568