《Java编程思想》(笔记2)-- 一切都是对象

是决定花一段连续的时间把《Java编程思想》看一遍,看书怎么能不做笔记呢,明明知道自己有些地方看完肯定会忘掉的,所以想把每章的笔记重点放在博客上,与大家共享!

第二章 一切都是对象

1.存储到什么地方

万物皆为对象,那么创建的对象存储到什么地方?
有5个地方可以存储数据(记下来吧!觉得难懂多理解两遍就ok了)

  • 寄存器:最快的存储区,存放在处理器内部,但是数量极其有限。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。
  • 堆栈:位于通用RAM中,但通过堆栈指针可以从处理器那边获得直接支持,有一种快速有效的分配存储方法--堆栈指针下移,分配新的内存;堆栈指针上移,释放内存。创建程序时,Java系统必须知道存储在堆栈中的数据的确切生命周期,以便上下移动堆栈指针,明显限制的java的初衷。但是某些Java数据还是存储在堆栈中,特别是对象引用,Java对象不存储在其中。
  • 堆:也位于RAM中,用于存放所以的Java对象,堆里的数据并不需要知道存活多长时间(编译器不知道),体现了灵活性,常常说,事物都有两面性,灵活性同时带来了存储分配和清理需要更多的时间。
  • 常量存储:(常量池)常量值常常存放在程序代码内部。
  • 非RAM存储:数据如果独立程序存在,可以不受程序控制。给出两个基本的例子--流对象和持久化对象。流对象是将对象转化为字节流;持久化对象,对象被存放在磁盘中。

2.static关键字

Keep this in mind:static修饰的字段对每个类来说只有一份存储空间,非static字段对每个对象有着一份存储对象
应用场景:

  • 为某特定域分配单一存储空间,不考虑创建多少对象,甚至不创建对象
  • 希望某个方法不与包含它的类的任何对象实例关联在一起

祝进步

猜你喜欢

转载自blog.csdn.net/zhaohancsdn/article/details/88595707