对java平台的理解

        Java特性: 1 面向对象(封装,继承,多态), 2 平台无关性(JVM运行.class文件),语言(泛型,Lambda),类库(集合,并发,网络,IO/NIO),JRE(Java运行环境,JVM,类库),JDK(Java开发工具,包括JRE,javac,诊断工具)

        Java平台中有两大核心:1. Java语言本身、JDK中所提供的核心类库和相关工具。2. Java虚拟机以及其他包含的GC。

        Java运行过程:1,Java源代码经过Javac编译成.class文件。2,.class文件经JVM解析或编译运行。

        Java虚拟机:Java语言具有跨平台的特性,也正是因为虚拟机的存在。Java源文件被编译成字节码,被虚拟机加载后执行。这里隐含的意思有两层:1,大部分情况下,编程者只需要关心Java语言本身,而无需特意关心底层细节。包括对内存的分配和回收,也全权交给了GC。2,对于虚拟机而言,只要是符合规范的字节码,它们都能被加载执行,当然,能正常运行的程序光满足这点是不行的,程序本身需要保证在运行时不出现异常。所以,Scala、Kotlin、Jython等语言也可以跑在虚拟机上。

        围绕虚拟机的效率问题展开,将涉及到一些优化技术,例如:JIT、AOT。因为如果虚拟机加载字节码后,完全进行解释执行,这势必会影响执行效率。所以,对于这个运行环节,虚拟机会进行一些优化处理,例如JIT技术,会将某些运行特别频繁的代码编译成机器码。而AOT技术,是在运行前,通过工具直接将字节码转换为机器码。

对java平台的理解_第1张图片
对java平台的理解_第2张图片

你可能感兴趣的:(对java平台的理解)