2.1 用引用操作对象
每种编程语言都有自己的操作内存中元素的方式。
在Java中,一切都可以视为对象,因此可以采用单一的固定语法。
2.2 必须由你创建所有对象
一旦创建一个引用,就希望它能与一个新对象相关联。通常用new操作符来实现这一目的。
2.2.1 数据存储在什么地方
有五个地方可以存储数据:
- 寄存器:这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但寄存器数量有限,所有寄存器根据需求进行分配。
- 堆栈:位于通用RAM中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针向下移动则是分配内存,如果是向上移动就是释放内存。
- 堆:一种通用的内存池,用于存放所有Java对象。堆不同于栈的是:编译器不需要知道存储的数据在堆里存活多长时间。但使用堆分配存储和清理可能比用堆栈进行存储分配需要更多的时间。
- 常量存储:常量值通常直接存放在程序代码内部,因为它们永远不会改变。
- 非RAM存储:如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时,也可以存在。
2.2.2 特例:基本类型
不用new来创建变量,而是创建一个并非是引用的自动变量。这个变量直接存储值,并置于堆栈中,因此更加高效。
Java要确定每种基本类型所占用存储空间大小。
2.3 永远不需要销毁对象
2.3.1 作用域
作用域决定了在其内定义的变量名的可见性和生命周期。
在作用域里定义的变量只可用于作用域结束之前。
2.4创建新的数据类型:类
class这个关键字之后跟着的就是新类型名称。
class ATypeName{
}
2.4.1 字段和方法
一旦定义了一个类,就可以在类中设置两种类型的元素:字段和方法。字段可以是任何类型的对象,可以通过其引用与其进行通信,也可以是基本类型中的一种。
基本成员默认值
若某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。
2.5 方法、参数和返回值
方法基本组成部分包括:名称、参数、返回值、方法体。
返回类型描述的是在调用方法之后从方法返回的值。
2.5.1 参数列表
方法的参数列表指定要传递给方法什么样的信息。