Chapter 2 一切都是对象

2.1 用引用操纵对象

如果想要操纵一个词或者一个句子,则可以创建一个String引用:String s;这里所创建的s只是一个引用并不是对象,如果向s发送消息则会产生一个错误。这是因为此时s实际上没有与任何事物相关联。因此,一种安全的做法是:创建一个引用时便进行初始化。

2.2 存储数据的区域

有五个不同的地方可以存储数据:

1)寄存器:最快的存储区,不能够直接控制

2)堆栈:位于通用RAM中,可以通过堆栈指针从处理器哪里获得直接支持。Java 虚拟机必须知道存储在堆栈内的所有项的确切生命周期,以便上下移动堆栈指针。对象引用存储在堆栈中。

3)堆:一种通用的内存池(位于RAM),用于存放所有的Java对象。堆不同与堆栈的好处是:编译器不需要是知道数据在堆里存活多长时间。

4)常量存储:常量值通常直接存放在程序代码内部,这样是安全的,因为他们永远不会被改变。

5)非RAM存储:如果数据完全存活与程序之外,那么它可以不受程序的控制,在程序没有运行时也可以存在。其中两个基本例子是流对象和持久化对象。

2.2.2 特例:基本类型

用new 创建一个很“小”的变量(存储在堆里),往往效率不是很高。因此,这些基本类型创建一个并非是引用的“自动”变量,这个变量存储值,并置于堆栈中,因此更加高效。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容