java的核心思想_科学网—Java中的四个核心技术思想 - 李飞的博文

本文深入探讨了Java技术中的关键概念,如Java虚拟机的类装载机制、平台无关性和网络移动性,展示了如何通过类装载器体系结构实现代码隔离,并重点介绍了Java class文件在跨平台和网络应用中的优势。

Java中的四个核心技术思想

已有 466 次阅读

2011-3-29 23:09

|系统分类:科研笔记

[导读]Java已经成为一个庞大而复杂的技术平台, 要想更好的掌握Java技术, 深化理解底层的技术处理细节必不可少。 有助于提升我们对整个Java平台的理解力。   Java已经成为一个庞大而复杂的技术平台, 对于开发人员而言, 要想更好的掌握Java技术, 深化理解底层的技术处理细节必不可少。 对核心概念和思想的掌握可以帮助我们触类旁通、触类旁通, 这里所介绍的是Java技术平台的几个核心概念, 其中所蕴含的思想有助于我们更深刻的理解Java技术。   Java虚拟机的次要义务是装在class文件并且执行其中的字节码。 Java虚拟机包含一个类装载器, JavaAPI中只有程序执行时需求的那些类才会被装载。 执行引擎能够实现得十分不同。 在由软件实现的虚拟机中, 另一种执行引擎更快, 但是也更消耗内存, 第一次被执行的字节码会被编译成本地机器代码。 编译出的本地机器代码会被缓存, 当方法以后被调用的时候可以重用。 第三种执行引擎是自顺应优化器。 程序运转的时候, 虚拟机只把那些活动最频繁的代码编译成本地代码, 其他的代码由于使用得不是很频繁,   当Java虚拟机是由主机操作零碎上的软件实现的时候, Java中有两种方法:Java方法和本地方法。 Java方法是由Java语言编写, 编译成字节码文件, c++或汇编语言)编写的, 格式是各个平台专有的。 运转中Java程序调用本地方法时,   经过本地方法, Java程序可以直接访问底层操作零碎的资源。 它们又无法从JavaAPI访问, 那么可以写一个平台相关的Java程序来调用本地方法。 如果希望保证程序的平台无关性, 那么只能经过JavaAPI来访问底层零碎资源。 启动类装载器(这是零碎中唯一的)是Java虚拟机实现的一局部。 启动类装载器通常使用某种默许方式从本地磁盘中装载类, 包括JavaAPI类(启动类装载器也被称为原始类装载器、零碎类装载器或者默许类装载器)。   Java应用程序能够在运转时安装用户定义的类装载器, 例如, 但用户定义的类装载器能够用Java来编写, 能够被编译成class文件, 还能够像其它对象一样实例化。   由于有用户定义类装载器, 所以不必再编译的时候就知道运转中的Java应用程序中最终会参加的一切的类。 用户定义的类装载器使得在运转扩展Java应用程序成为能够。 应用程序能够解决它需求哪些额外的类, 能够决定是使用一个或是更多的用户定义的类装载器来装载。 由于类装载器是用Java编写的, 所以用任何在Java代码中可以表述的作风来进行类装载。 这些类可以经过网络下载, ?踔量梢跃蔡??伞?Java虚拟机都监视这个类, 看到它到底是被启动类装载器还是被用户定义类装载器装载。 虚拟机就会使用装载第一个类的类装载器装载援用的类。 例如, 它就会使用这个类装载器装载Volcano类使用的一切类。   JAVA由于Java虚拟机采取这种方式进行类的装载, 运转时的Java程序中的每一个类装载器都有自己的命名空间。   Java应用程序可以创立多少个(或多少种)被不同的类装载器装载的类寄存在不同的命名空间中, 从不同源文件装载的类可以分隔在不同的命名空间中。 就能够使用Java类装载器的体系结构来控制任何不同源文件中装载的代码之间的相互影响, Web阅读器使用用户定义的类装载器从网络下载用于Javaapplet的class文件。 这个用户定义的类装载器通常被称为JavaApplet类装载器, 它知道如何向HTTP效劳器请求class文件。 JavaApplet可以作为静态扩展的例子, 只有当阅读器遇到有Javaapplet的页面时, 不同的用户定义类装载器装载不同来源的class文件。 这就可以把它们分别放置在Java主机应用程序的不同命名空间之下。 由于不同来源的Javaapplet文件放置在不同的命名空间中, 恶意的Javaapplet代码就不会直接访问从别的地方下载的class文件。   Javaclass文件次要在平台无关性和网络移动性方面使Java更适合网络。 它在平台无关性方面的义务是:为Java程序提供独立于底层主机平台的二进制形式的效劳。 这种途径途径打破了C或者C++等语言所遵照的传统, 使用这些传统语言写的程序通常首先被编译, 然后被连接成单独的、专门支持特定硬件平台和操作零碎的二进制文件。 一个平台上的二进制可执行文件不能在其他平台上工作。 由于这个二进制文件包含了对目标处理器的机器语言。 因此它们可以快速地在网络上传送。 其次, class文件可以在需求的时候才下载。   JavaAPI经过支持平台无关性和平安性, 使得Java顺应于网络应用。 JavaAPI是运转库的集合, 它提供了一套访问主机零碎资源的规范方法。   在一个平台能偶支持Java程序以前, 必须在这个特定平台上明白地实现API的功能。 由于JavaAPIclass文件调用了本地方法, Java程序就不需求再调用它们了。 JavaAPIclass文件为底层主机提供了具有平台无关性、规范接口的Java程序。 对Java程序而言, JavaAPI都会有异样的表现和可预测的行为。 因此, Java程序自身就能够成为具有平台无关性的程序。 当JavaAPI的方法进行任何有潜在风险的操作(比如进行本地磁盘写操作)之前, 访问控制器是一个类, 该类用来执行栈检验, 已决定能否允许某种操作。

转载本文请联系原作者获取授权,同时请注明本文来自李飞科学网博客。

链接地址:http://blog.sciencenet.cn/blog-559366-427751.html

上一篇:Java或web中解决所有路径问题

下一篇:C语言运算符优先级等级口诀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值