赛迪网 > IT技术 Java > Java读书频道-中
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Java2参考大全:第14章 java.lang 研究 (18)

发布时间:2006.05.17 01:39     来源:清华大学出版社    作者:Herbert Schildt 著 张玉清 吴溥峰等 译

14.14 ThreadLocal和InheritableThreadLocal
在Java 2的java.lang中增加了两个与线程有关的类:
· ThreadLocal 用于创建线程局部变量。每个线程都拥有自己局部变量的拷贝。
· InheritableThreadLocal 创建可以被继承的线程局部变量。
14.15 Package
在Java 2中增加了一个称为Package的类。这个类封装了与包有关的版本数据。包版本信息由于包的增值以及由于Java程序可能需要知道哪些包版本可以利用而变得更加重要。Package中定义的方法列在表14-18中。下面的程序通过显示程序当前已知的包而说明了Package。
表14-18 由Package 定义的方法
方法 描述
String getImplementationTitle( ) 返回调用包的标题
String getImplementationVendor( ) 返回调用包的实现程序的程序名
String getImplementationVersion( ) 返回调用包的版本号
String getName( ) 返回调用包的名字
Static Package getPackage(String pkgName) 返回一个由pkgName指定的Package对象
续表
方法 描述
Static Package[ ] getPackages( ) 返回调用程序当前已知的所有包
String getSpecificationTitle( ) 返回调用包的规格说明的标题
String getSpecificationVendor( ) 返回对调用包的规格说明的所有者的名字
String getSpecificationVersion( ) 返回调用包的规格说明的版本号
Int hashCode( ) 返回调用包的散列码
Boolean isCompatibleWith(String verNum)
throws NumberFormatException
如果verNum小于或等于调用包的版本号,则返回true
Boolean isSealed( ) 如果调用包被封,则返回true;否则返回false
Boolean isSealed(URL url) 如果调用包相对于url被封,则返回true;否则返回false。
String toString( ) 返回调用包的等价字符串形式
// Demonstrate Package
class PkgTest {
public static void main(String args[]) {
Package pkgs[];
pkgs = Package.getPackages();
for(int i=0; i < pkgs.length; i++)
System.out.println(
pkgs[i].getName() + " " +
pkgs[i].getImplementationTitle() + " " +
pkgs[i].getImplementationVendor() + " " +
pkgs[i].getImplementationVersion()
);
}
}
14.16 RuntimePermission
在Java 2的java.lang中也新增加了RuntimePermission。它与Java的安全机制有关,这里不做进一步的讨论。
14.17 Throwable
Throwable类支持Java的异常处理系统,它是派生所有异常类的类。在本书第10章已经讨论过它。
14.18 SecurityManager
SecurityManager是一个子类可以实现的抽象类,它用于创建一个安全管理程序。一般不需要实现自己的安全管理程序,如果非要这样做,需要查阅与你的Java开发系统一起得到的相关文档。
14.19 Comparable接口
Java 2在java.lang中新增加了一个接口:Comparable。实现Comparable的类的对象可以被排序。换句话说,实现Comparable的类包含了可以按某种有意义的方式进行比较的对象。Comparable接口说明了一个方法,该方法用于确定Java 2调用一个类的实例的自然顺序。该方法如下所示:
int compareTo(Object obj)
这个方法比较调用对象和obj。如果他们相等,就返回0。如果调用对象比obj小,则返回一个负值。否则返回一个正值。该接口由前面已经介绍的几种类实现。特别是Byte,Character,Double,Float,Long,Short,String以及Integer类定义了compareTo( )方法。另外,下一章将会介绍到,实现这个接口的对象可以被使用在不同的集合中。
14.20 java.lang.ref和java.lang.reflect包
在Java中定义了两个java.lang的子包:java.lang.ref和java.lang.reflect。下面分别予以简单介绍。
14.20.1 java.lang.ref
在前面学到过,在Java中,垃圾回收工具自动确定何时对一个对象,没有引用存在。然后这个对象就被认为是不再需要的,同时它所占的内存也被释放。在Java 2中新增加的java.lang.ref包中的类对垃圾回收处理提供更加灵活的控制。例如,假设你的程序创建了大量的在后面某个时间又想重新使用的对象,可以持续保持对这些对象的引用,但是这可能需要更多的内存开销。作为替代,可以对这些对象定义“软”引用。如果可以利用的内存接近用完的话,一个可以“软实现”的对象可以从垃圾回收工具中释放。在那种情况下,垃圾回收工具将这个对象的“软”引用设为空(null)。否则,垃圾回收工具保存对象以便以后使用。程序设计人员具有确定是否一个“软实现”的对象被释放的能力。如果它被释放了,可以重新创建它。如果没有释放,该对象对于后面的应用将一直是可以利用的。也可以为对象创建“弱”(weak)和“假想”(phantom)引用,不过关于这些以及java.lang.ref包中其他特性的讨论已经超过了本书的范围。
14.20.2 java.lang.reflect
Reflection是一个程序分析自己的能力。包java.lang.reflect提供了获得关于一个类的域、构造函数、方法和修改符的能力。需要这些信息去创建可以使你利用Java Beans组件的软件工具。这个工具使用映射动态地确定组件的特征。这个主题将在第25章中讨论。另外,包java.lang.reflect包括了一个可以动态创建和访问数组的类。

<<上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Java2 参考大全:第13 章 字符串处理 (05-10)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管