ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:30KB ,
资源ID:3219850      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3219850.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java中的四个核心技术思想.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

Java中的四个核心技术思想.doc

1、 Java 中的四个核心技术思想 http:/ 2010-06-29 09:06 maozj JavaEye 论坛 我要评论(2)对 Java 核心概念和思想的掌握有助于提升我们对整个 Java 平台的理解力。这里将介绍四个 Java 中的核心技术思想,包括 Java 虚拟机、类装载器的体系结构、class 文件和 API。Java 已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握 Java 技术,深入理解底层的技术处理细节必不可少。对核心概念和思想的掌握可以帮助我们举一反三、触类旁通,有助于提升我们对整个 Java 平台的理解力。这里所介绍的是 Java 技术平台的几个核心

2、概念,其中所蕴含的思想有助于我们更深刻的理解 Java 技术。Java 虚拟机Java 虚拟机的主要任务是装在 class 文件并且执行其中的字节码。Java 虚拟机包含一个类装载器,它可以从程序和 API 中装载 class文件。Java API 中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。不同的 Java 虚拟机中,执行引擎可能实现得非常不同。在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码。另一种执行引擎更快,但是也更消耗内存,叫做“即时编译器(just-in-time compiler)“。在这种情况下,第一次被执行的字节码会被编译成本地机器代码。编译出

3、的本地机器代码会被缓存,当方法以后被调用的时候可以重用。第三种执行引擎是自适应优化器。在这种方法里,虚拟机开始的时候解释字节码,但是会监视运行中程序的活动,并且记录下使用最频繁的代码段。程序运行的时候,虚拟机只把那些活动最频繁的代码编译成本地代码,其他的代码由于使用得不是很频繁,继续保留为字节码-由虚拟机继续解释它们。一个自适应的优化器可以使得 Java 虚拟机在 80%90%的时间里执行被优化过的本地代码,而只需要编译 10%20%的对性能有影响的代码。当 Java 虚拟机是由主机操作系统上的软件实现的时候,Java 程序通过调用本地方法(native method)和主机交互。Java 中

4、有两种方法: Java 方法和本地方法。Java 方法是由 Java 语言编写,编译成字节码文件,存储在 class 文件中的。本地方法是由其他语言(比如 c,c+或汇编语言)编写的,编译成和处理器相关的机器代码。本地方法保存在动态链接库中,格式是各个平台专有的。运行中 Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。本地方法是联系 Java 程序和底层主机操作系统的连接方法。通过本地方法,Java 程序可以直接访问底层操作系统的资源。一个本地方法接口(Java Native Interface, JNI)-使得本地方法可以在特定主机系统的任何一个 Java 平

5、台实现上运行。如果希望使用特定主机上的资源,它们又无法从 Java API 访问,那么可以写一个平台相关的 Java 程序来调用本地方法。如果希望保证程序的平台无关性,那么只能通过 Java API 来访问底层系统资源。类装载器的体系结构一个 Java 应用程序可以使用两种类装载器:“启动(bootstrap)“类装载器和用户定义的类装载器。启动类装载器(这是系统中唯一的)是Java 虚拟机实现的一部分。启动类装载器通常使用某种默认方式从本地磁盘中装载类,包括 Java API 类(启动类装载器也被称为原始类装载器、系统类装载器或者默认类装载器)。Java 应用程序能够在运行时安装用户定义的类

6、装载器,这种类装载器能够使用自定义的方式来装载类。例如,从网络下载 class 文件。尽管启动类装载器是虚拟机实现的本质部分,而用户定义的类装载器不是,但用户定义的类装载器能够用 Java 来编写,能够被编译成 class 文件,能够被虚拟机装载,还能够像其它对象一样实例化。由于有用户定义类装载器,所以不必再编译的时候就知道运行中的 Java 应用程序中最终会加入的所有的类。用户定义的类装载器使得在运行扩展 Java 应用程序成为可能。当它运行时,应用程序能够解决它需要哪些额外的类,能够决定是使用一个或是更多的用户定义的类装载器来装载。由于类装载器是用 Java 编写的,所以用任何在 Java

7、 代码中可以表述的风格来进行类装载。这些类可以通过网络下载,可以从某些数据库中获取,甚至可以动态生成。每一个类被装载的时候,Java 虚拟机都监视这个类,看到它到底是被启动类装载器还是被用户定义类装载器装载。当被装载的类引用了另外一个类时,虚拟机就会使用装载第一个类的类装载器装载引用的类。例如,如果虚拟机使用一个特定的类装载器装载Volcano 这个类,它就会使用这个类装载器装载 Volcano 类使用的所有类。由于 Java 虚拟机采取这种方式进行类的装载,所以被装载的类默认情况下只能看到被同一个类装载器装载的别的类。通过这种方法,Java 的体系结构允许在一个 Java 应用程序中建立多个

8、命名空间。运行时的 Java 程序中的每一个类装载器都有自己的命名空间。Java 应用程序可以创建多少个(或多少种)被不同的类装载器装载的类存放在不同的命名空间中,它们不能相互访问,除非应用程序显示地允许这么做。当编写一个 Java 应用程序的时候,从不同源文件装载的类可以分隔在不同的命名空间中。通过这种方法,就能够使用 Java 类装载器的体系结构来控制任何不同源文件中装载的代码之间的相互影响,特别是能够阻止恶意代码获取访问或破坏善意代码的权限。Web 浏览器是一个动态扩展的例子,Web 浏览器使用用户定义的类装载器从网络下载用于 Java applet 的 class 文件。Web 浏览器

9、使用一个用来安装用户定义类装载器的 Java 应用程序。这个用户定义的类装载器通常被称为 Java Applet 类装载器,它知道如何向HTTP 服务器请求 class 文件。Java Applet 可以作为动态扩展的例子,因为 Java 应用程序并不知道它什么时候会开始从网络下载浏览器请求的 class 文件。只有当浏览器遇到有 Java applet 的页面时,才决定是否需要下载 class 文件。Web 浏览器启动的 Java 应用程序通常为每个提供 class 文件的网络地址分别创建不同的用户定义类装载器,因此,不同的用户定义类装载器装载不同来源的 class 文件。这就可以把它们分别

10、放置在Java 主机应用程序的不同命名空间之下。由于不同来源的 Java applet 文件放置在不同的命名空间中,恶意的 Java applet 代码就不会直接访问从别的地方下载的 class 文件。这就能够限制或阻止不同来源的代码之间的相互访问。Java class 文件Java class 文件主要在平台无关性和网络移动性方面使 Java 更适合网络。它在平台无关性方面的任务是:为 Java 程序提供独立于底层主机平台的二进制形式的服务。这种途径途径打破了 C 或者C+等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文

11、件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而 Java class 文件时可以运行在任何支持 Java 虚拟机的硬件平台和操作系统上的二进制文件。当编译和连接一个 C+程序时,所获得的可执行二进制文件只能在指定的硬件平台和操作系统上运行,因为这个二进制文件包含了对目标处理器的机器语言。而 Java 编译器把 Java 源文件的指令翻译成字节码,这种字节码就是 Java 虚拟机的“机器语言“。class 文件设计得紧凑,因此它们可以快速地在网络上传送。其次,由于 Java 程序是动态连接和动态扩展的,class 文件可以在需要的时候才下载。这个特点使得 Java 应用程序

12、能够安排从网络上下载 class 文件的时间,从而可以最大限度地减少终端用户的等待时间。Java APIJava API 通过支持平台无关性和安全性,使得 Java 适应于网络应用。Java API 是运行库的集合,它提供了一套访问主机系统资源的标准方法。运行 Java 程序时,虚拟机装载程序的 class 文件所使用的 Java API class 文件。所有被装载的 class 文件(包括从应用程序中和从 Java API 中提取的)和所有已经装载的动态库(包含本地方法)共同组成了再 Java 虚拟机上运行的整个程序。在一个平台能偶支持 Java 程序以前,必须在这个特定平台上明确地实现

13、API 的功能。为访问主机上的本地资源,Java API 调用了本地方法。由于 Java API class 文件调用了本地方法,Java 程序就不需要再调用它们了。通过这种方法,Java API class 文件为底层主机提供了具有平台无关性、标准接口的 Java 程序。对 Java 程序而言,无论平台内部如何,Java API 都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了 Java 虚拟机和 Java API,因此,Java 程序自身就能够成为具有平台无关性的程序。Java API 在 Java 安全性模型方面也有贡献。当 Java API 的方法进行任何有潜在危险的操作(比如进行本地磁盘写操作)之前,都会通过查询访问控制器来检验是否得到了授权。访问控制器是一个类,该类用来执行栈检验,已决定是否允许某种操作。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。