2011-3-19,今天开始读《Java编程思想》
第二章 一切都是对象
java语言假定我们只进行面向对象的程序设计。也就是说,在开始用java进行设计之前,必须将思想转换到面向对象的世界中来。
2.1 用引用操纵对象
尽管将一切都“看作”对象,但操纵的标识符实际上是对象的一个“引用”(reference)。
你拥有一个引用,并不一定需要有一个对象与它关联。因此,一种安全的做法是:创建一个引用的同时便进行初始化。
2.2 必须由你创建所有对象
2.2.1 存储到什么地方
1)寄存器 这最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。
2)堆栈。位于通用RAM(随机访问存储器)中,但通过“堆栈指针”可以从处理器那里获得直接支持。
3)堆。一种通用的内存池(也位于RAM区),用于存放所有的Java对象。
4)静态存储。这里的“静态”是指“在固定的位置”(尽管也在RAM里)。
5)常量存储。常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永远不会被改变。
6)非RAM存储。如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。
2.2.2 特例:基本类型
对于基本类型,Java采用与C和C++相同的方法。也就是说,不用new来创建变量,而是创建一个并非是“引用”的“自动”变量。这个变量拥有“值”,并置于堆栈中,因此更加高效。
八种基本类型:
byte,占1字节; short,占2字节; int ,占4字节; long, 占8字节;
float,占4字节; double,占8字节;
char,占1字节;The boolean
data type has only two possible values: true
and false
.“马士兵老师的视频 IO中 马老师讲到:boolean 在内存中占一个字节,用一个字节中的最低位表示,其余位全是0. 因为内存的处理是以byte为单位的,而不是以bit ”
所有数值类型都有正负号,所以不要去寻找无符号的数值类型。
最大值最小值:
byte:-128~127,也就是(-27) ~ (27-1);
short:(-215) ~ (215-1);
int:(-231) ~ (231-1);
long:(-263) ~ (263-1);
float:IEEE754~IEEE754
double:IEEE754~IEEE754
疑问:为什么byte类型在计算机里的大小是-128~127?等以后有空我再来研究这个问题,现在先往下读!