java编程思想读书笔记一(1-5)

二:一切都是对象

2.1 用引用操作对象:你使用的只是一个引用,如用遥控器(引用)来操作电视机(对象)。

2.2 必须有你创建所有的对象。

--java的引用存储于堆栈中。

--java所有的对象存在于堆中。

--变量不用new来创建,而是创建一个并非是引用的“自动”变量。这个变量直接存储值,并置于堆栈中,因此更加高效。

2.3 永远不需要销毁对象

--变量名的作用域由花括号决定。

2.4 创建新的数据类型:类

--若类的  某个成员函数是基本类型会默认赋值。

2.5 方法,参数,返回值。

--方法只有通过对象才可以被调用(当然,除了静态方法)。

2.6 构建一个java程序

--名字可见性,使用包

--运用其他构件,import引入

--static关键字:可以用类直接调用。

三:操作符:在最底层,java中的数据是通过使用操作符来操作的。

 3.1:equals()的默认行为是比较引用。所以除非自己在自己类中覆盖equals()方法,否则可能会出现问题。

四:控制执行流程

4.1所有的条件语句都利用表达式的真与假来决定执行目录。

五:初始化与清理

5.1:可以利用构造器初始化。

根据返回值确定重载是行不通的。

this指的是当前的对象,他本身表示对当前对象的引用。

static方法的内部不能调用非静态方法。反过来是可以的。

static关键字不能作用于局部变量,因此他只能作用于域。

5.2

无论创建多少个对象,静态对象都只占一份的存储区域。

静态初始化只有在必要的时候才会运行,只有第一个对象被创建或者第一次访问静态数据的时候才会被初始化。此后,静态对象不会再次初始化。

初始化的顺序是先静态对象(如果它们尚未因前面的对象创建过程而被初始化),然后是非静态对象。

5.3:对象的创建过程(假设有一个名字为Dog的类):

1:即使没有显式地使用static关键字,构造器实际上也是静态方法。因此当首次创建Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法/静态域首次被访问时,java解释器必须查找类路径,以定位Dog.class文件。

2:然后载入Dog.class(创建一个Class对象),有关静态初始化的所有动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行一次。

3:当用new Dog()创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间。

4:这块存储空间就会被清零,这将自动的将Dog对象中所有的基本类型数据都设置成为了默认值。引用设置为null。

5:执行所有出现于字段定义处的初始化动作。

6:执行构造器。

 

posted @ 2016-01-22 16:28  戎码一生  阅读(170)  评论(0编辑  收藏  举报