为什么JAVA要使用单继承体系
大家都知道JAVA中使用OBJECT作为唯一的基类。但是JAVA的设计者为什么要这样做呢?重读《TTHINKING IN JAVA》,得出以下原因:
1,JAVA是纯面向对象的语言。单继承体系保证了所有新建的或JDK中已有的类都必须继承自OBJECT。这样,保证了所有的类都具有一些基本的方法。例如一个String对象有toString()方法,另外一个Math对象也有这个方法,不需要为每个对象都去写一个这样的方法。
2,java中有个垃圾回收器机制,当一个对象不再被需要时,由垃圾回收器回收并销毁这个对象,释放它占用的内存空间。而单继承体系让垃圾回收器的实现变得简单多了。这缘于每个对象都具有从OBJECT继承而来的finalize
()
方法。
3,OBJECT中有个getClass()方法,得到对象的运行时类。这样就保证了每个JAVA对象都在运行时具有一个运行时类的信息。
4,有利于容器的复用。JAVA设计让容器可以存储OBJECT,这也就意味着可以存储其它任何类型。当然,涉及到容器存储,有个对象的向上转型和向下转型。具体过程是这样的:我们放入容器中的,其实是对象的引用,但是由于容器只存储OBJECT对象,所以所有的对象引用都要被向上转型为OBJECT,但是在从容器中取出对象的时候,所获取到的,其实是对一个OBJECT对象的引用,而不是放入的时候的那个类型的对象的引用,这时候,就必须用到向下转型。而向下转型是无法保证安全的,这里就用到了泛型的概念。这也是JDK5的新特性之一。
5,OBJECT提供了其它便利和常用的方法,如clone()。
暂时只想到这么多。
相关文档:
Java 理论与实践: 描绘线程安全性
2007-12-15 00:10
——线程安全不是一个非真即假的命题
Brian Goetz (brian@quiotix.com), 首席顾问, Quiotix Corp
2003 年 11 月 15 日
7月份我们的并发专家 Brian Goetz 将 Hashtable 和 Vector 类描述为“有条件线程安全的”。一个类难道不是线程安全就是线程 ......
之前在做findbugs的时候经常会查看字节码,都是一知半解的
那天看到一个问题,刚好可以从字节码来解释
这些题目常见于面试题,通常要是谁敢这么写代码,完全是在找死。。
Java代码
public class Test {
public static void main(String[] ......
这个框架也是为google app engine准备的。当时感觉直接在gae上sevlet太烦人了,就封装个简易的框架。使用的时候只需要配置web.xml中DispacherSevlet和package.properties中的package.path(默认扫描的包)即可
gae例子:http://orzblogs.appspot.com/Home.htm
大学的时候很BS java,学了之后就扔掉了,现在工作了才开始 ......
每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。
学习Java的第一步是安装好JDK,写一个Hello World, 其实J ......
转自:
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。
Json必需的包
commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-l ......