JVM从零开始:Java体系结构--认识Java(一)

原文地址:www.sudo.ren/article/75?…java

1.认识Java

根据不一样的技术规范,Java划分为3中结构独立但又相互依赖的技术分支:Java SE(标准版)、Java EE(企业版)、Java ME(精简版)正则表达式

Java SE:活跃在桌面领域,主要包含Java API组件。

Java EE:活跃在企业级领域,主要包含Java API组件、Web组件、事务组件、分布式组件、EJB组件、消息组件;综合这些技术开发人员彻底能够构建出一个具有高性能、结构严谨的企业级应用,而且Java EE也是构建SOA架构的首选平台。

Java ME:活跃在嵌入式领域,称为精简版是由于JavaME仅保留了Java API中的部分组件,以及适应设备的一些特有组件。

Java的发展,除了来自互联网的崛起,还有Google选择Java做为Android操做系统(手持移动设备、嵌入式设备、我的电脑。。。)的应用层编程语言有关。算法

(1)与生俱来的优势

体系结构中立 :

Java源代码的默认编译结果并非可执行代码(本地机器指令),而是具备平台通用性的字节码;实现了“一次编译,到处运行”,而且只能在java虚拟机中运行,与物理宿主环境隔离。编程

安全性优越 :

由于java字节码只能在java虚拟机中运行,与物理宿主环境隔离,实现了安全模型,有助于防止错误发生,加强程序的可靠性。同时,Java的废弃指针操做,自动内存管理,数组边界检查,类型转换检查,线程安全机制和物理环境访问限制等语法限制也保证了程序的安全。数组

多线程 :

Java使用多线程的并发机制将任务进行分散,而不是所有集中在主线程内,采用异步的方式并发执行多项任务,具备极高的执行效率。浏览器

分布式 :

Java与生俱来对分布式技术的支持比较完善,充分利用分布式环境中的每个节点去协同处理任务,具备高效的执行效率,还能有效下降单机负载以及提高稳定性和可用性。(如:RMI--Java远程方法调用,JMS--Java消息服务)丰富的第三方开源组件 :随处可见成熟的第三方开源框架。安全

(2)语法结构和对象模型

Java继承了C语言的语法结构,并改编了C++的对象模型。 类是Java最基本的封装单元,全部的操做都发生在类中; 属性和方法构成了一个简单的类,属性用于定义对象的各类“器官”,而方法用于定义对象的一系列“行为”。 在类内部,咱们能够定义不少元素特征,统称为类成员,Java的一些基本类元素信息以下: 关键字; 标识符 操做符(空白分隔符、普通分隔符); 注解(@Annotation类型、描述类型); 数据类型(原始数据类型、引用类型); 属性(常量、变量); 运算符和表达式; 控制语句(流程控制语句、循环控制语句); 异常处理; 方法体; 在语法层面上,开发人员能够在程序中直接使用 new关键字建立对象,并返回当前对象的一个引用(reference)。要注意,Java中的引用毫不等价于C++中的指针,由于引用类型的变量持有的仅仅只是一个引用而已非实际值,也就是说不能直接与对象打交道,而必须经过引用进行“牵引”,在程序中,即使不存在对象实例,引用也容许独立存在,也就是说能够声明一个引用,不必定要与对象关联,但务必确保在真正使用一个对象时,它已经完成了初始化操做。(以下图) 多线程

(3)历史版本追溯

1991年: Sun公司的James Gosling(Java语言主要创始人,Java之父)等人为嵌入式设备开发了一种叫Oak的语言,没有引发大多数人注意;
1994年:随着互联网和3W的发展,他们使用Oak编写了一个叫作HotJava的浏览器,获得Sun公司首席执行官的支持;
1995年:为了促销和法律的缘由,Oak正式改名为Java,同年Sun发布了Java1.0版本,并提出了“Write Once,Run Anywhere”(一次编译,出处运行)的口号。Java1.0 功能并很少,只有JDK配套的纯解释器实现Java虚拟机(Sun Classic VM),Applet,AWT等技术。
1997年:Java1.1发布,在Java1.0的基础上,添加了JDBC、JAR格式支持、JavaBeans、RMI等技术,并在语法上开始支持反射和内部类等操做。
1998年:Java1.2发布,将Java划分为3种结构独立却彼此依赖的技术体系分支,分别是J2SE(标准版)、J2EE(企业版)、J2ME(精简版),在这个版本中添加了EJB、Java Plug-in、Java IDL、Swing等技术,而且Sun公司首次在JDK中内置了JIT编译器。
2000年:Java1.3发布,没有引进太多的技术和改变,只是在基础类库上作了改进。
2002年:Java1.4发布,引进了至关多的特性,如正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等,意味着Java开始走向成熟。
2005年:Java1.5发布,同时也是在1.5版本发布后,后续的Java版本都改成以Java五、Java六、Java7等规则进行命名。在早期中Sun公司对Java各版本的语法改变并不大,但1.5版本针对语法层面的改进至关多,几乎致使整个API都发生了变化。好比自动装箱/拆箱、泛型、枚举、@Annotation、可变长参数、foreach、粗粒度的并行模型等。
2006年:Java6发布,改变动可能是体如今虚拟机内部,主要以同步对象锁、垃圾回收、类型装载等方面的算法更新为主。同年Sun公司正式宣布Java以GPL(General Public License)v2的开源协议进行源代码公开,并创建了OpenJDK对Java的源代码库进行独立管理。
2010年:因为Sun公司无力推进Java7的研发工做,正式被Oracle公司收购,并接替Java7的后续研发。因为Java7预期的功能很是多,不得不致使Oracle将部分功能进行裁剪,延迟到Java8的版本中再进行发布。Java7在语法层面上作了较大的改变,还引入许多新技术,好比更新了Java的文件系统、细粒度的Fork/Join并行编程、混合语言等;同时Java虚拟机内部也作了许多改进和调整,好比Java7提供了G1垃圾收集器、类装载器的并行装载加强实现等。复制代码
相关文章
相关标签/搜索