反醒一下,兼java.lang的一点点东西

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

天生就是一个糊涂鬼,改了这么多年了还是没有改回来,不知道怎么搞,我晕。

以前在用 Math.***() 的时候,一直都把 java.math.* 给 import 进来,从来没有人跟我说过这是不必要的,今天看那个 J2SE1.3 的 ROSE 模型,我才看到,也才恍然大悟,调用的时候用的就是调用 Math 的类方法,也就是说 Math 本身就是一个类,就是 java.lang.Math,而且是 final 型的。而 java.math ,这不是一个包吗?为什么连这个都没想到呢?汗!

今天心血来潮,突然想看一下 UML ,以前(九个月前大概)下载过几个 rose 模型,一直没看,惭愧呀!今天打开其中的一个看了一下,居然是 J2SE 1.3 的所有东西的模型,狂喜一下。还看什么 UML 啊,直接看 javax.swing 了,想把这个搞清楚已经是很久以前的事了,可老是静不下心来,不过今天还是老样子,没把心静下来。看了一下,感觉 class 太多了,以前也没怎么用它,肯定很生疏,这样搞不可能看得懂。于是就看 java.lang 了,认真地看了两个来回,认识马上就比以前更清楚很多了。

这个模型没有把 java.lang.Object 放在顶部,而是默认让其它的 class 继承它而不指明,这样一来又少了好多箭头,也把 java.lang.Throwable 放到了“顶部”,它有两个直接子类,分别是 java.lang.Error & java.lang.Exception ,原来 Exception 和 Error 是这样子的,才知道。

另外还有就是那些原始类型的封装类,都继承自 abstract class java.lang.Number,实现了 comparable。再就是这些了: class: Thread, Subset, ThreadLocal, InheritableThreadLocal; interface : Runable; final class: UnicodeBlock; 这里还有一些继承/实现关系。

最后就是剩下的这些‘孤立’(实际上并不孤立,只是他画成了孤立)的东西了。

注:红色的是 final class, 蓝色转圈是 interface, 灰色的则是 abstract class, 再就是 class 了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航