《Java编程思想》第4版学习笔记
第2章
参考资料:《Java编程思想》第4版
- 存储到什么地方
- 寄存器:位于处理器内部,是最快的存储区域。
- 堆栈:位于RAM(随机访问储存器),速度仅次于寄存器。里面存储最重要的当属对象引用。Java必须知道存储在堆栈中所有对象的确切生命周期,以便上下移动堆栈指针。
- 堆:一种通用的内存池,也位于RAM。主要存储Java对象。
- 常量存储:常量值通常直接存放在程序代码内部。一般选择存放在ROM(只读储存器)
- 非RAM存储:主要分为“流对象”和“持久化对象”。“流对象”就是将Java对象转换为字节流,通过网络传输到另一个机器上。“持久化对象”就是将Java对象存放在外部存储,并不会随程序结束而消失,同时保持自身的状态。
- 基础类型为什么不存放在堆中?
new对象存储在堆中,但是对于特别小的变量这样做是不值得的,所以其创建了一个并非引用的“自动”变量,直接存储数据,存放于堆栈中,提高程序效率。 - 两个精度计算类
BigInteger和BigDecimal。 - 对象作用域
对象作用域与基础变量和对象引用作用域不同。存放在堆栈中的变量随着{}结束而结束。然而对象依旧保存在堆中,只是此时其对象引用已经不存在了,这个对象就不能被访问了。 - 创建新的类
Class ClassName{
Type TypeName;
RetrunType methodName(Argument list){
Method body
}
}
字段(成员变量):成员变量会自动设置初始值。“局部”变量(方法体内部变量)是不会自动设置初始值,需要手动赋值。
字段类型 | 默认值 |
---|
boolean | false |
char | ‘\u0000’(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
Object | null |
方法(成员函数):成员函数由访问限制符+返回类型+方法名+参数名以及方法体组成。其中方法名和参数列表合称为方法签名,能够作为方法的唯一标识。
public ReturnType methodName(Argument list){
Method body
}
- 名字空间
名字空间是为了解决类的唯一标识问题的。不过Java设计者希望程序员用自己的域名来保证其独一无二性。例如:net.mindview.utility.foibles。反转域名后,句点就用来代表目录的划分。 - static关键字
static可以被称之为“静态”,其可以标识字段和方法,对应的为“静态变量(类数据)”、“静态方法(类方法)”。被其标识的变量和方法不会与其对应的任何对象实例关联在一起,即表示就算没有创建对象实例也可以调用。
class StaticTest{
static int i = 47;
static int retrunInt(int i){
retrun i;
}
}
这里就可以不用new一个对象实例再调用字段和方法了。可以直接使用类调用
//调用字段
StaticTest.i++;
//调用方法
StaticTest.returnInt();
import java.util.Date;
// 每个程序文件开头,必须声明import语句,以便引入文件代码中需要用到的额外的类。
//这里额外的类是指java.lang以外的类。java.lang是more导入到每个java文件中的。