认识Java--走进Java和Java虚拟机的发展史
Part I: 走进Java
第一章 走进Java
概述
优点:
结构严谨,面向对象的编程语言;
摆脱硬件平台的束缚,实现了“一次编写,到处运行”的理想;
提供相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题;
实现了热点代码检测和运行时编译及优化;
有一套完善的应用接口程序接口以及无数的第三方类库;
Java技术体系
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发展史
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-day01【发展史、跨平台原理、JRE和JDK、常用DOS命令、关键字、常量、数据类型、变量使用的注意事项、标识符、类型转换】
-
深入理解Java虚拟机---(4)对象是否“死亡”的判断和GC的相关收集算法
-
Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别
-
java--字节流和字符流的转换
-
Erlang和Java的内存模型比较 erlangjava虚拟机
-
认识Java--走进Java和Java虚拟机的发展史
-
简单认识一下Java中的if语句和switch语句
-
认识Java--走进Java和Java虚拟机的发展史
-
荐 Java-day01【发展史、跨平台原理、JRE和JDK、常用DOS命令、关键字、常量、数据类型、变量使用的注意事项、标识符、类型转换】