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虚拟机的发展史的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境