Java编程思想第四版读书笔记——第二章 一切都是对象

嗯,这是第二章 一切都是对象 的读书笔记


第二章 一切都是对象


1.用引用操纵对象


Java里,一切皆是对象。尽管如此,操纵的标识符实际上是对对象的一个引用。

这里s就是一个引用,并未关联对象。



2.必须由你创建所有对象


通常使用new操作符关联一个对象。

比如


可以写成更通用的形式


存储位置:

寄存器:最快的存储区,不能直接控制其分配。(r0,r1...那些吧)

堆栈:位于RAM中,是仅次于存储器的快速有效的分配存储方法。(C++的那些指针,先进后出blabla)

堆:位于RAM中,用于存放所有的Java对象。具有很大灵活性,代价是进行存储分配和清理可能比用堆栈进行存储分配需要更多时间。(C++在栈中创建对象,Java在堆中创建对象)

常用存储:直接放在程序代码内部。比如ROM中的常量。

非RAM存储:数据完全存活于程序之外,两个基本的例子是流对象和持久化对象。流对象就是字节流,发给别的机器。持久化对象就是放在磁盘上那些吧。


基本类型:

java的基本类型大小固定,方便移植。


基本类型和包装器类型可以互相转换


Java中的数组:

C和C++使用数组是很危险的,可能访问到超出数组大小的位置,也可能忘了初始化。

Java中创建一个数组对象,实际上就是创建了一个引用数组,每个引用自动初始化为null,如果视图使用一个还是null的数组,运行时就会报错。(不会像C++那样忘了初始化而犯了严重错误)

基本数据类型的数组所占内存自动初始化为0



3.永远不要销毁对象


作用域(scope):

在C、C++和Java中,作用域是由花括号的位置决定。

有意思的是



将一个较大作用域的变量“隐藏”起来的做法,这样在C和C++中合法,在Java中却不可以。


对象的作用域:

当new一个java对象,它可以存活于作用域之外。也就是引用在作用域终点就消失了,然而对象仍然继续占据内存空间。java有一个垃圾回收器来自动监释放收这些对象的内存空间。


4.创建新的数据类型:类


类的基本数据类型成员默认值:



如果不是某个类的成员变量,那么这个基本类型数据就会被初始化为任意值,如果忘了初始化,Java会在编译时报错,这正是Java优于C++的地方之一。



5.方法,参数和返回值


简单如

这种调用方法即为“向对象发送消息”,对象是a,消息是f()。

方法的参数列表传递的是一种引用。



6.构建一个Java程序



一个包含static数据的类,实例化出多个对象,这多个对象对这个static数据享有相同的存储空间,即其中一个对象对这个static数据改动,其他对象中的该数据也会产生相应的变化。如下所示:


引用static对象有两种方法一个是用对象. 的方式,一个是用类名. 直接引用,如下所示:




7.编码风格


驼峰风格:类名的首字母要大写,若果由几个单词构成,每个单词首字母大写。

类名,方法(函数),字段(成员变量),对象引用名称都如此。只是它们的标识符的第一个字母要小写。










你可能感兴趣的:(读书笔记)