认识Java--走进Java和Java虚拟机的发展史

php是最好的语言
php是最好的语言 原创
2018-08-10 15:37:04 1230浏览

Part I: 走进Java

第一章 走进Java

概述

优点:

  • 结构严谨,面向对象的编程语言;

  • 摆脱硬件平台的束缚,实现了“一次编写,到处运行”的理想;

  • 提供相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题;

  • 实现了热点代码检测和运行时编译及优化;

  • 有一套完善的应用接口程序接口以及无数的第三方类库;

Java技术体系

1.png

JDK是用于支持Java开发的最小环境,包含Java程序设计语言、Java虚拟机、Java API类库三部分;

JRE是支持Java程序运行的标准环境,包含Java API类库中的Java SE API 子集和Java虚拟机两部分;

按照Java技术关注的重点业务领域来划分,Java技术体系可分为4个平台:

  • Java Card:支持Applets(Java小程序)运行在小内存设备(如智能卡)上的平台;

  • Java ME(Micro Edition):支持Java运行在移动终端上的平台;(今有Android SDK)

  • Java SE(Standard Edition):支持面向桌面级应用的Java平台;

  • Java EE(Enterprise Edition):支持使用多层架构的企业级应用(如ERP、CRM应用)的Java平台;

Java发展史

1.png

  • JDK 1.0:Java虚拟机、Applet、AWT等;

  • JDK 1.1:JAR文件格式、JDBC、JavaBeans、RMI、内部类、反射;

  • JDK 1.2:拆分为J2SE/J2EE/J2ME、内置JIT编译器、一系列Collections集合类;

  • JDK 1.3:JNDI服务、使用CORBA IIOP实现RMI通信协议、Java 2D改进;

  • JDK 1.4:正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器;

  • JDK 1.5:自动装箱、泛型、动态注解、枚举、可变参数、遍历循环、改进了Java内存模型、提供了java.util.concurrent并发包;

  • JDK 1.6:提供动态语言支持、提供编译API和微型HTTP服务器API、虚拟机优化(锁与同步、垃圾收集、类加载等);

  • JDK 1.7:G1收集器、加强对Java语言的调用支持、升级类加载架构;

  • JDK 1.8:Lambda表达式、函数式接口等;

Java虚拟机发展史
  • Sun Classic/Extract VM:Classic VM是第一款商用虚拟机,纯解析器方式来执行Java代码,如果要使用JIT编译器就必须进行外挂,解析器和编译器不能配合工作,编译器执行效率非常差;Exact VM是Sun虚拟机团队曾在Solaris平台发布的虚拟机,支持两级即时编译器、编译器和解释器混合工作、使用准确内存管理(虚拟机可以知道内存中某个位置的数据具体是什么类型),但很快就被HotSpot VM所取代;

  • Sun HotSpot VM:Sun JDK和OpenJDK所带的虚拟机,目前使用范围最广;继承了前两款虚拟机的优点,还支持热点代码探测技术(通过计数器找出最具编译价值的代码);2006年Sun公司宣布JDK包括HotSpot VM开源,在此基础上建立OpenJDK;

  • Sun Mobile-Embedded VM/Meta-Circular VM:一些Sun开发的面对移动和嵌入式发布的和实验性质的虚拟机;

  • BEA Jrockit/IDM J9 VM:JRockit VM曾经号称是世界上最快的Java虚拟机,专注于服务器端应用,不包含解析器实现,全部靠即时编译器编译执行;J9 VM定位于HotSpot比较接近,主要目的是作为IBM公司各种Java产品的执行平台;

  • Azul VM/BEA Liquid VM:特定硬件平台专有的高性能虚拟机;

  • Apache Harmony/Google Android Dalvik VM:Apache Harmony包含自己的虚拟机和Java库,但没有通过TCK认证;Dalvik VM是Android平台的核心组成部分,其并没有遵循Java虚拟机规范,不能直接执行Class文件,使用的是寄存器架构而不是JVM常见的栈架构;

  • Microsoft JVM及其他:微软曾经是Java技术的铁杆支持者,开发过Windows下性能最好的Java虚拟机,但后来被Sun起诉终止其发展;

展望Java技术的未来
  • 模块化

  • 混合语言:通过特定领域的语言去解决特定领域的问题

  • 多核并行

  • 进一步丰富语法

  • 64位虚拟机

相关推荐:

Java 的发展(历史)轨迹和历史变迁

详解Java虚拟机概述

以上就是认识Java--走进Java和Java虚拟机的发展史的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。