您的位置:首页 > 编程语言 > Java开发

重读《Java编程思想》之一:一切皆是对象

2011-11-28 10:53 267 查看
最近重新开始读《Java编程思想》,系统的复习一下Java基础知识,只有打好了坚实的基础,才能有进一步的提高。

在读的过程中发现好多东西又有了更深的理解,还有些东西已经遗忘,为了避免再次遗忘,在这里简单的做一些记录,以备以后查阅。

1. 在Java里一切都被视为对象,但操纵的标识符实际上是一个引用,可以将这一情绪想象成遥控器和电视机,只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频道或者减小音量时,实际操纵的知识遥控器(引用),再由遥控器来调控电视机(对象)。

2. 对象存储在什么地方?

1) 寄存器,这是最快的存储区,处在处理器内部。

2) 堆栈,位于通用RAM(随机访问存储器)中。

3) 堆,一种通用的内存池,也位于RAM区,堆不同于堆栈的地方是编译器不需要知道存储的数据在堆里存活多长时间。

4) 常量存储,常量通常直接存储在程序代码内部。

5) 非RAM存储,例如流对象和持久化对象。

3. 所有数值类型都有正负号,所以不要试图去寻找无符号的数值类型。

4. Java有一个垃圾回收器,用来监视new创建的所有对象,并辨别哪些对象不会再被使用,随后就会释放这些对象的内存空间,以便供其他新的对象使用。也就是说你根本不需要担心内存回收问题。你只需要创建对象,一旦不再使用,他们就会被自行回收,这样做就消除了内存泄露的问题(是由于程序员忘记释放内存引起的)。

在项目中遇到hibernate报错,提示内存中已存在一个与当前提交的对象主键相同的对象,发生冲突,这就是由于没有清楚内存中存在的对象引起,可以用session.clear()来清除内存中的对象(以hashmap的方式存放在内存中)。

5. 在Java中你所做的全部工作就是定义类,创建这些类的对象,以及发送消息给这些对象。

6. 如果类的某个成员变量是基本类型,即使没有进行初始化,Java也会在对象实例化的时候为这些变量赋一个默认值。默认值只是针对全局变量的,局部变量必须手动进行初始化。

7. 方法名和参数合起来唯一的标识某一个方法,Java的方法只能作为类的一部分来创建,且方法只能通过类对象来调用。

8. 在Java中向方法传递参数是,如果参数是基本类型,传递的就是参数里面的值,当参数是对象的时候,其实传递的是对象的引用,而不是对象的值。

9. Return包括两方面的意思:首先它代表“已经做完,离开此方法”。其次,如果此方法产生了一个值,这个值要放在return之后返回。当方法的返回类型是void时,return的作用只是用来退出方法。也就是说是用return可以在方法的任何地方返回,而不需要非要等到方法结束。

10. 当创建类的时候,就是在表述那个累的对象的外观行为。除非用new来创建这个对象的实例,否则,实际上并未获得任何对象。执行new来创建对象的时候,数据存储空间才被分配,其方法才供外界调用。

11. Static关键字可以使它修饰的方法不用通过创建类对象就可以直接使用类名来调用。Static修饰的变量只占用一份内存空间,无论创建几个对象,他们都共用一个static变量。因为一个static字段对每个类来说都只有一份存储空间,而非static字段则是每个对象都有一份存储空间。但是如果static用于某个方法,差别没那么大,static方法的一个重要用法就是在不创建任何对象的前提下就可以调用它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: