Java体系结构介绍,java体系结构
分享于 点击 524 次 点评:9
Java体系结构介绍,java体系结构
Java技术的核心就是Java虚拟机——所有Java程序都在其上运行,需要Java虚拟机、Java API和Java,class文件的配合,Java程序才能够运行为什么使用Java通过网络连接起来的智能设备和计算机组成的基础结构开创了软件的新环境,它为软件开发者带来了新的挑战和机遇。Java可以很好地帮助软件开发者面对挑战,抓住挑战。因为Java是为网络而设计得。Java的这种适合网络环境的能力是由其体系结构决定的,它可以保证安全的、健壮的且平台无关的程序通过网络传播,在很多不同的计算机和设备上运行。
网络带来的挑战和机遇平台无关性:软件开发者面对的挑战之一是这种逐渐增长的以网络为核心的硬件环境,其包含的设备越来越广泛。一般网络都有很多不同的设备、不同的硬件体系、不同的操作环境,用于不同的用途。Java通过创建与平台无关的程序来解决这个问题。和一个特定的系统以及操作环境编译的程序比起来,用Java编写的平台无关的程序会更容易编写、管理和维护,代价也更低安全性:Java体系结构对程序健壮性有一定的保证,一些有害代码不会在Java代码中出现,比如:内存泄漏。Java先天上防止了很多bug的出现,所以它还带来和网络无关的另一个好处:提高程序员的生产力网络移动性:运动对象——它同时在2网络上传递代码和状态,Java实现了对象移动的诺言——通过它的对象序列化API和RMI(远程调用方法),对象在网络化的运动型分布式系统编程创造了新模型,有效地把面向对象编程的优点带到了网络上
体系结构Java体系结构包括四个独立但相关的技术:
- Java程序设计语言
- Java.class文件格式
- Java应用编程接口(API)
- Java虚拟机
- 在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码;
- 另一种引擎更快,但是也消耗内存,叫做“即时编译器”,这种情况下,第一次被执行的字节码会被编译成本的机器代码,编译出的本地机器会被缓存,当方法以后被调用的时候可以重用;
- 第三种引擎是自适应优化器,在这种方法里,虚拟机开始的时候解释字节码,但是会监视运行中程序的活动,并且记录下使用最频繁的代码段。
- Java方法使用Java语言编写,编译成字节码文件,存储在.class文件中的
- 本地方法是由其他语言(比如C,C++,或者汇编语言)编写的,编译成和处理器相关的机器代码
类装载器的体系结构Java虚拟机中存在着多个类装载器,因而结构图中的类装载器方块实际上表示的是一个可能包含多个类装载器的子系统,类装载器的体系结构是Java虚拟机在安全性和网络移动性上发挥重要作用的一个方面。两个装载器:
- 启动类装载器是Java虚拟机实现的一部分
- Java应用程序能够在运行时安装用户定义的类装载器,这是以自定义方式装载类
Java.class文件Java.class文件主要在平台无关性和网络移动性方面使Java更适应于网络。在平台无关性方面的主要任务是:为Java程序提供独立底层主机的二进制形式的服务,Java.class文件是可运行在任何支持Java虚拟机的硬件硬件平台和操作系统上的二进制文件在网络移动性的主要任务是:首先.class文件设计紧凑,有助于在快速在网上传送,其次,由于Java程序是动态连接和动态扩展的,.class文件可以在需要的时候才下载,可以最大限度的减少终端用户的等待时间
Java APIJava API是运行库的集合,它提供一套访问主机系统资源的标准方法。编写Java程序时,可以假设在任何可运行程序的Java虚拟机上都能够获取Java API .class文件,所有被装载的class文件(包括从应用程序和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。Java API的class文件天生就与主机平台密切相关,而Java API的内部设计也和平台无关性相关例如:Java API的用户图形界面库——即AWT(Abstract Windows Toolkit,抽象窗口工具箱)和Swing的设计目的是使用户设计的界面能够在所有平台上运行。由于不同平台上用户界面的外观风格具有相当大的差异,创建平台无关的用户界面是一件很困难的。AWT类库体系结构并没有强制Java API把所有平台上的Java程序用户界面都做成一个模式。恰恰相反,AWT类库体系结构鼓励在外观风格上适应于相应的底层平台。Swing类库甚至提供了更加灵活的方式:允许程序员自己选择外观风格。而且由于平台与平台之间字体大小、按钮和其他用户界面控件存在相当大的差异,AWT和Swing都包含了运行时定位窗体或对话框成员的布局管理器,布局管理器在不同平台上采用了些许不同的方式来定位对话框控件。除此之外,还有一些方面,Java API的内部系统结构把推动Java程序平台无关性的发展作为一个设计目的Java API在Java安全模型方面做出了贡献:通过强制执行安全管理器和访问控制器建立的安全环境的建立,在这种安全环境中,可以运行具有潜在危险的代码
Java程序设计语言Java技术非常适用于网络,但Java程序设计语言是相当通用的。使用Java语言编写程序,能够充分利用如下的许多软件技术:
- 面向对象
- 多线程
- 结构化错误处理
- 垃圾收集
- 动态连接
- 动态扩展
Java体系结构的代价和其他技术(诸如C++)相比·,Java程序中的执行速度可能比较低,这是Java在面向对象网络特性上所付出的最主要的代价之一。第一个Java虚拟机诞生于1995年,它可以在一个解释器上执行字节码,这是一项较为简单的技术,性能不高。不久,它的编译器诞生了。和解释器相比,它极大的提高了Java的性能。随着最近虚拟机技术的发展,即使不能说Java速度上的缺陷完全消失了,但也有显著的改善。适应性优化等先进技术使Java程序能够以和本地编译的C程序相媲美的速度运行Java开发者所面对的困难一是:即使特定的Java虚拟机能够提供相当好的性能,但一般情况下,开发者无法选择他们的程序将会在哪一种Java虚拟机上运行Java是一个非常灵活的工具,它提供许多方法去解决潜在的性能问题,例如:如果需要提供的仅仅是一个单独的可执行文件,就可以:
- 随程序附带一种虚拟机
- 把程序中对时间要求严格的部分作为本地方法实现
- 把整个程序编译成一个单独的可执行文件,就像C和C++一样
结论Java能在极大程度上提高程序员得到效率,增强程序耳朵健壮性,与老的程序设计技术(如C和C++)相比,具有过的去的性能,为新兴的以网络为中心的计算提供了一种工具
相关文章
- 暂无相关文章
用户点评