详解Java平台

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youngogo/article/details/81120371
  • 首先我们回顾JRE(Java Runtime Environment )java运行环境,以及JDK(Java Development Kit)组成

jre是java运行环境,包含JVM,java类库以及一些模块,jdk可以看做是jre的超集,提供了更多工具,比如编译器各种诊断工具

  • java平台

java平台顾名思义就是,java语言在计算机上能执行的环境以及工具


  • 宏观角度

       这也是和C/C++的最大不同点,c/c++编程是面向操作系统,需要程序员考虑不同操作系统之间的差异性,而java通过JVM屏蔽了面向操作系统编程,这样程序员无需考虑不同操作系统之间的差异性.

       通过一个间接的中间层达到解耦的目的,是计算机领域非常常用的一种艺术方法,虚拟机是这样, 操作系统HTTP也是如此

  • 微观角度

    从微观角度java平台由两大核心组成

  1. java自身语言特性,java类库以及一些工具
  2. java虚拟机以及它包含的GC机制

1.java自身语言特性,java类库以及一些工具

      从事Java平台的开发,掌握Java语言、核心类库以及相关工具是必须的,我觉得这是基础中的基础。
>> 对语言本身的了解,需要开发者非常熟悉语言的语法结构;而Java又是一种面对对象的语言,这又需要开发者深入了解面对对象的设计理念;以及java 的反射代理泛型等;
>> Java核心类库包含集合类、线程相关类、IO、NIO、J.U.C并发包等;
>> JDK提供的工具包含:基本的编译工具、虚拟机性能检测相关工具等。

2.java虚拟机以及它包含的GC机制

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

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

关于java编译执行过程转我的博客:java源代码编译执行过程

欢迎多多交流指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章