第二章 一切都是对象
1. 用引用操纵对象
在JAVA中,一切皆为对象(少数基本类型除外)。对对象的操纵是通过对象的引用来完成,而非直接去操作对象。
String s = new String(“Hello World!”);
该语句只定义了一个字符串的引用s,该引用指向一String对象。对该对象的操纵皆需要通过s来完成。
2. 对象的创建与存储
a) 对象为类的一个实例,创建对象的方法,只需要通过关键字new来操作该对象所对应的类即可。如1中语句即为String对象的创建方法。其他类的对象的创建与此相同
b) 数据可以存储的地方
i. 寄存器:在处理器内部,读取、写入速度最快的地方。但在JAVA中无法直接控制
ii. 堆栈:位于RAM中。对象的引用存放在这个区域
iii. 堆:一种通用内存池(位于RAM中),所有的对象皆存放在这个区域
iv. 常量存储:常量值通常存放在程序代码内部。可选择存放在ROM中
v. 特例:基本类型
基本类型变量因为很小、很简单,所以不会创建引用而通过引用去操纵对象,而是直接在堆栈内直接存储“值”,因此基本类型更加高校。基本类型及其对应包装类型如下所示:
基本类型 | 大小 | 最小值 | 最大值 | 包装器类型 |
boolean | — | — | — | Boolean |
char | 16-bit | 0 | 216-1 | Character |
byte | 8 bits | -128 | 128 | Byte |
short | 16 bits | -215 | +215-1 | Short |
int | 32 bits | -231 | +231-1 | Int |
long | 64 bits | -263 | +263-1 | Long |
float | 32 bits | IEEE754 | IEEE754 | Float |
double | 64 bits | IEEE754 | IEEE754 | Double |
void | — | — | — | Void |
3. static关键字
static可以满足这样两个需求:一是,只想为特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本不需要创建任何对戏那个。另一种是,希望某个方法不与包含它的类的任何对象关联在一起。
Static作用于字段时,会改变数据创建的方式。一个static字段对每个类来说只有一份存储空间,而非static字段则是每个字段拥有一份存储空间。
Static作用于类方法时,差别没有那么大。重要的用法就是在没有创建对象的前提下,可以用过“类名.方法名”的方法来调用该方法。
4. 编码风格
类名首字母要大写,如果类名由几个单词组成,每个单词的首字母都需要大写。
classAllTheColorOfTheRainbow{ };
几乎其他所有内容——方法、字段(成员变量)以及对象引用名等,公认风格与类一样只是标识符的第一个字母需要小写。