第二章 一切都是对象
2.1用引用操纵对象
String s;
创建的是引用,并不是对象
String s = "asdf";
JAVA 允许字符串用带引用的文本初始化
2.2 必须由你创建所有对象
eg. String s = new String("asdf");
2.2.1 存储到什么地方
- 寄存器
- 最快的存储区
- 堆栈
- 堆栈指针
- 对象引用存储在其中
- 堆
- 用于存放所有的 JAVA 对象
- 常量存储
- 常量值通常直接存放在程序代码内
- 非RAM存储
2.2.2 基本类型
基本类型 | 二进制位数 | 包装器类型 | 最小值 | 最大值 |
---|---|---|---|---|
boolean | Boolean | |||
char | 16 | Character | 0 | 65535 |
byte | 8 | Byte | -128 | 127 |
short | 16 | Short | -2^15 | 2^15-1 |
int | 32 | Integer | -2^31 | 2^31-1 |
long | 64 | Long | -2^63 | 2^63-1 |
float | 32 | Float | IEEE754 | IEEE754 |
double | 64 | Double | IEEE754 | IEEE754 |
void | Void |
- 在堆中创建一个非基本对象
char c = 'x' ;
Character ch = new Character(c) ;
或者
Character ch = 'x' ;
2.3 永远不需要销毁的对象
2.3.2 作用域 scope
{
int x=12;
{
int x=4;//illegal
}
}
- 在C/C++是合法的,但在 JAVA 中是不合法的;C/C++ 里把一个较大的作用域“隐藏”起来,在 JAVA 中是不允许的。
2.3.2 对象作用域
- 当用new创建一个 JAVA 对象是,它可以存活于作用域之外。
{
String s = new String("ssds");
}
引用s在作用域结束就消失,而s指向的String对象仍继续占用内存空间。
2.4 创建新的数据类型
- 当变量作为类的成员变量时,即使没有进行初始化,JAVA 会给定其默认值。
基本类型 | 默认值 |
---|---|
boolean | false |
char | '\u0000'(null) |
byte | 0(byte) |
short | 0(short) |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
2.5 方法、参数和返回值
2.6 构建一个程序
2.6.1名字可见性
- 域名反转,句点代表子目录的划分
- 假如我的域名为my.net
- 我的工具类库名可以为net.my.car.accelerator
- 整个包名都为小写
2.6.3 static 关键字
静态方法只能操纵静态数据
class StaticTest{
static int i = 47;
}
- 引用static变量/方法可以通过对象去定位,也可以通过其类名去直接引用。
- eg. 在main里面
StaticTest.i++;
2.7 你的第一个 JAVA 程序
2.8注释和嵌入式文档
/**
*
*@author author-information
*@version 1.0
*/
2.9 编码风格
类名首字母大写,如果类名由几个单词构成(不用下划线的话),每个单词的首字母大写。