Java技术框架概述

上传人:jin****ng 文档编号:165248283 上传时间:2022-10-27 格式:DOCX 页数:7 大小:17.79KB
返回 下载 相关 举报
Java技术框架概述_第1页
第1页 / 共7页
Java技术框架概述_第2页
第2页 / 共7页
Java技术框架概述_第3页
第3页 / 共7页
点击查看更多>>
资源描述
Java技术框架概述欧锋;邹敏;李晓桢【摘要】从体系结构的角度分析了目前流行的java技术框架,详细阐述了 java技 术体系结构的各主要组成部分对目前流行的java社区的各种技术进行了说明,并对 java 技术的发展趋势进行了分析.This paper describes the popular Java technology framework from the perspective of architecture, elaborates on the major component of Java technology architecture, introduces the popular Java communities with various techniques, and analyses the development trend of Java technology.期刊名称】 计算机系统应用年(卷),期】 2012(021)008【总页数】4页(P236-239)【关键词】Java;JVM技术框架Java社区;发展趋势【作 者】 欧锋;邹敏;李晓桢【作者单位】 江南计算技术研究所,无锡214083;江南计算技术研究所,无锡214083;江南计算技术研究所,无锡214083【正文语种】 中文1引言Java技术是随着Internet的普及而迅速推广起来的一种技术,因其固有的网络移 动、面向对象、平台无关、安全等诸多特征,迅速成为企业级应用开发的首选技术。Java虚拟机(JVM)在多个平台上实现了统一语言,Java语言丰富的开放式类库大 量使用设计模式,成功地改变了很多程序员的编程思想和习惯。很多人了解Java 语言,知道 Java 虚拟机。但对于 Java 的技术体系结构是如何衔接和有效运作的, 却不是每个程序员都十分了解的。Java的技术框架包括了 Java语言、Java虚拟 机、Java API和Java Class文件(字节码),虽然Java 词被多数人认可为Java 程序设计语言。可用图1来说明Java的技术框架各部分的关系。Java程序设计语言是编写Java程序的基础,Java字节码和class文件是Java跨 平台性的基础,java文件通过Java编译器生成class文件。Java类库是Java程 序快速开发的根本,也是Java社区最大的财富。Java虚拟机是平台相关的,在不 同体系结构和不同的操作系统环境中,都需要有与平台相关的 Java 虚拟机的实现。 图1 Java技术框架2 Java程序设计语言Java语言最初是由James Gosling为嵌入式消费电子应用设计的,原名为“Oak”,后经多年多人设计优化和多方支持帮助,发展为通用目的的、并发的、 基于class的面向对象程序设计语言。允许程序设计者一次编写Java程序,可以 在多个不同体系结构、不同操作系统、运行有Java虚拟机的平台上运行。Java语言具有简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可 移植性、解释型、高性能、多线程、动态性等多种特性。Java是C+语言的“纯净”版本,没有头文件、指针运算(指针语法)、结构、联 合、操作符重载、虚基类等等。Java剔除了 C+ +中许多很少使用、难以理解、易 混淆的特性。另外,Java的基本解释器以及类支持大约仅为40KB,加上基础的标 准类库和对线程的支持(一个自含的微内核)大约仅需增加175KB。Java是一个纯 的面向对象语言,所有功能和数据都包含在类中,通过类和访问修饰符体现封装性, 通过类扩展父类的特征体现继承性,通过接口实现体现多态性。Java有一个扩展 的例程库,用于处理TCP/IP、HTTP、FTP等网络访问,Java程序能够通过URL 打开和访问网络上的对象,就像处理本地文件系统一样。J2EE是Java社区支持大 规模分布式应用开发的独立的软件体系结构。Java的设计目标从多方面保证了用 Java编写的程序的可靠性,包括早期的问题检测和后期的运行时检测。Java与 C+最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。 Java适用于网络和分布式的环境,在安全方面投入了很大的精力,使用Java可以 构建防病毒和防篡改的系统。如禁止运行时堆栈溢出,禁止在自己的处理空间之外 破坏内存,未经授权禁止读写文件等。Java通过将Java程序编译成与体系结构无 关的中间目标文件(字节码文件)并通过虚拟机运行中间目标文件实现体系结构中立 的特点。精心设计的字节码不仅可以很容易地在任何机器上被解释执行,还可以迅 速地翻译成本地机器的代码。通过虚拟机运行还有一些其它优点,如虚拟机可以检 测指令序列的行为,以增强其安全性。 Java 规范中没有“依赖具体实现”的地方, 基本数据类型的大小以及有关算法都做了明确的说明。Java解释器可以在任何移 植了解释器的机器上执行Java字节码。字节码还可以在运行时通过即时编译器 (JIT编译器)被快速翻译成运行该应用程序的特定CPU的机器码。多线程可以带来 更好的交互响应和实时行为。Java与C或C+相比更加具有动态性。它能够适应 不断发展的环境。库中可以自由地添加新方法和实例变量,而对客户端却没有任何 影响。在Java中找出运行时刻类型信息十分直观。当需要将某些代码添加到正在 运行的程序中时,动态性将是一个非常重要的特性。如从Internet上下载代码, 然后在浏览器上运行和必须在运行时分析对象的系统,比如Java GUI构建器、智 能调试器、可插入组件以及对象数据库。3 Java 虚拟机(JVM)Java虚拟机可以指一个抽象规范,也可以指一个针对JVM规范的实现,还可以指 启动运行的一个Java虚拟机实例。抽象规范是JVM实现者共同遵守的守则,具 体实现可以来源于不同的提供商,可以是不同的体系结构,还可以是不同的操作系 统平台。图2显示了 Java虚拟机的内部体系结构。图2 Java虚拟机的内部体系结构Java虚拟机启动运行后,由类装载器子系统读取java class文件,并在内存中构 建内存布局,运行时数据区主要包括方法区、堆、Java栈、PC寄存器和本地方法 栈。方法区存放类数据,主要包括类型信息,动态创建的对象存放在堆中,当一个 线程被创建时,会给它分配一个Java栈和PC寄存器,当执行Java方法时,PC 寄存器指向下一条要执行的字节码指令,Java栈存放该线程中Java方法调用的状 态包括它的局部变量,被调用时传进来的参数,它的返回值,以及运算的中 间结果等等。本地方法调用的状态,则依赖于具体的实现存放在本地方法栈中。Java栈由许多栈帧(stack frame)或帧(frame)组成,一栈帧包含一个 Java方法 的调用状态。当线程调用一个Java方法时,虚拟机压入一个新的栈帧到该线程的 Java栈中;当该方法返回时,这个栈帧被从该线程的Java栈中弹出并抛弃。Java 虚拟机没有寄存器,其指令集使用Java栈来存储中间数据。这样设计使JVM的 指令集尽量紧凑,同时也便于Java虚拟机在那些只有少量通用寄存器的平台上实 现。另外,Java虚拟机这种基于栈的体系结构,也有助于运行时某些虚拟机实现 的动态编译器和即时编译器的代码优化。各线程的Java栈内存区是私有的,任何 线程都不能访问另一个线程的PC寄存器和Java栈。4字节码及Java Class文件Java class文件是对Java程序二进制文件格式的精确定义。每一个Java class文 件都对一个Java类或者Java接口作出了全面描述。一个Java class文件只能有 个类或者接口。无论Java class文件在何种系统上产生,无论Java虚拟机在何 种系统上运行,对Java class文件的精确定义使得所有Java虚拟机都能够正确地 读取和解释所有Java class文件。class文件的版本也是随着JDK的版本演进而演进的,查看Java class文件的版本 号,可以看Java class文件的第5 8个字节。其中5、6字节为次版本号,7、8 字节为主版本号。比如由版本号为1.6.0_10的javac生成的class文件,次版本 号为0,主版本号为50。Java class文件的结构如图3所示。图3 Java class文件结构Java字节码文件结构是一个复杂的数据结构,Java class文件是8位字节的二进 制流。数据项按顺序存储在class文件中,相邻的项之间没有任何间隔,这样可以 使class文件紧凑。占据多个字节空间的按照高位在前的顺序分为几个连续的字节 存放。和Java类可以包含多个不同的字段、方法、方法参数和局部变量一样, Java class文件也能够包含许多不同大小的项。在class文件中,可变长度项的大 小和长度位于其实际数据之前。这个特性使得class文件流可以从头到尾被顺序解 析,首先读出项的大小,然后读出项的数据。5 Java类库Java类库是Java程序设计人员最喜欢最离不开的工具,Java类库是一个庞大的 库结构。java.lang.Object类是Java类库层次结构中的根,所有的类、数组等都 继承Object类的方法。随着技术的发展,Java类库也是不断扩展的。目前从 JDK1.6.0的API文档来分析,共有200余个包。按照相关功能划分,Java类库大 致可以分为以下几类:1)基础、工具类2)管理控制类3)图形相关类4)网络处理相关类5)文件IO相关类6)安全相关类7 Web Services 相关类8) 数据库操作相关类9) C0RBA相关类10) W3C相关类11) Applet相关类12) 组件框架相关类6 Java社区与Java技术的发展趋势随着网络的普及和Java技术的日益成熟,采用Java技术来开发应用程序和信息 系统越来越多,造就了庞大的Java开发队伍。为了能够更快速的开发出高质量的 应用系统,在Java技术领域,涌现出很多很好的Java技术框架,如Struts、 Spring、Hibernate等。这些Java技术框架的出现,又进一步推动了 Java技术 的普及和发展。随着网络的普及,网格计算、普适计算、服务计算、云计算、多核、众核等新兴计 算技术的发展,对Java技术的发展也产生了积极的推动作用。在Java技术的框 架中,Java语言、Java虚拟机、Java库、Java字节码文件等也会针对新技术的 发展而作出相应的变革。Java语言是否要适应多核和众核的并行编程模式;Java 虚拟机是否要充分利用多核的资源,加速Java程序的执行,优化垃圾回收算法, 支持事务存储等;Java本地库是否要适应多核和众核的环境;Java类库已经在 Web Service编程方面作出了积极的努力,推动了服务计算技术的发展;Java字 节码文件是否增加新的内容以适应新技术的发展呢;Java在对象数据库开发方面 如何提供支持;由于Java技术框架的特点,在高性能计算方面,Java 直没有好 的表现。然而Java在HPC方面的努力一直没有停止过。7小结Java技术是目前流行的、最广泛采用的软件开发技术,但很多人只是从Java程序 设计语言的角度理解Java技术,缺乏对Java技术框架的全面认识。本文针对 Java的整体技术框架进行了概述,阐述了 Java程序设计语言、Java虚拟机、Java库、Java字节码文件之间的关系,最后在新兴技术不断涌现的今天,对Java 技术的发展趋势进行了探讨。参考文献【相关文献】1 Java虚拟机规范.http:/java.s un .com/docs/books/jvms/sec on d_editio n/html/VMSpecTOC.doc.html2 Gosling J, Joy B, Steele G, Bracha G. JavaTM Language Specification. The 3rd Edition. Prentice Hall, Jun 14, 2005.3 Horstmann CS, Cornell G.叶乃文,等译.JAVA2核心技术卷I:基础知识(原书第7版)北京:机械工 业出版社,2006.4 Horstmann CS, Cornell G.陈昊鹏,等译.JAVA2核心技术卷II:高级特性(原书第7版)北京:机械工 业出版社,2006.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!