Java编程思想 第二章读书笔记

1.一切都是对象,我们通过什么方式来操作对象,在C++中通过指针。在Java中因为一切都是对象,那么语法就相对简单固定了,我们通过间接的方式,操作对象。我们操作对象的引用,比如我们不必直接操作电视只需要操作遥控器。开发经常遇到的问题就是null point 就是因为 引用没有指向对象。

2.创建对象,存储对象

寄存器: 位于处理器内部,数量有限, 我们不可能把对象创建在寄存器中因为我们没办法控制。寄存器对于开发人员是透明的

堆栈: RAM 随机访问寄存器,指针向下移动分配新内存,向上移动释放内存。快速分配,我们用于存储对象的引用

堆: 内存池 RAM。用于存储Java对象,堆不同于堆栈的好处是:编译器不需要知道存储的数据需要在堆里存活多久,而在堆栈的数据,Java系统必须知道每项的生命周期。

常量存储 : ROM只读存储器,放在程序代码内部,永远不会改变。

非RAM存储:数据存活于程序之外,可以不受程序任何控制,可以独立存在 于程序。例子:持久化对象,流对象。

3.永远不要销毁对象, 变量生命周期的混乱会导致大量的程序错误,我们要了解Java是如何帮我们完成清理工作的从而简化这个问题。

基本数据类型,只作用于作用域里面,new 出来的对象则可以存活于作用域以外,即使引用没了,对象所占用的空间还在,Java通过垃圾回收机制来监管所有new 出来的对象,并辨别不会再被引用的对象,随后释放这些对象的内存空间。我们不要销毁对象的意思是不要主动释放内存空间,我们只需要释放引用就可以了,通过Java回收机制就可以让不再使用的对象空间得以释放以防止内存泄露。

4.类 为什么要有类,一切都是对象了,为什么要有类,类是用来描述一类对象的外观和行为(属性和方法也称作成员数据和成员函数)我们给对象定义类型。当我们定义成员数据的时候,基本数据类型都是由默认值的,这个和局部变量不同,比如顶一个成员数据 int 那么它的默认值就是0,在方法里面的定义一个局部的int 那么它的值如果不赋值则可以为任何值,所以编译的时候会提醒我们写法有问题。

5.参数列表  参数列表指定了需要给方法传递的信息类型,因为一切都是对象,所以传递的信息也都是基本数据类型或者是对象(这里的对象也是对象的引用)。我们必须按照参数列表传递信息,否则就会报错。

6.构建Java程序的准备知识:

名字可见性:遇到的问题是,两个模块都有了同样的名字的类,如何区分这两个类,尤其是类库的开发者经常会遇到这个问题,如何自己写的类不与比人写的类重名。要么名字独一无二,要么需要引入一个新的机制,引入了 名字空间的概念。通过使用独一无二的域名反转域名为文件夹名,来划分目录。这样每个文件能够自动存活于他们自己的名字空间内,同一个文件内的每个类都有唯一标识。

引入其他构件:如何引入其他构件,编译器如何知道构件的位置?我们需要告诉编译器去哪里找到这个类的源文件,我们通过import通知编译器去导入一个包,通过引入这种方式,我们就不必为每一个引入类挨个加域名(以防名字冲突导致的误会)。

static 关键字:有了static 有什么不一样?没有又有什么不一样。我们知道操作一个类,必须new 出来这个类的对象,然后通过这个对象去调用这个类的属性和方法。如果没有创建,就没办法拿到任何东西,还有一个情况需要我们也无法满足,我们想为特定域分配空间,不需要考虑是否创建了或者创建了多少对象,或者是某个方法不与包含它 的类的任何对象关联在一起。  static 修饰的属性或者方法,表明它可以独立于对象,而是作为整个类的一部分而存在的。

7.注释,嵌入式文档

注释文档最大的目的是记录代码修改。

你可能感兴趣的:(Java基础)