《Head Frist Java》
对象(object)、堆、堆栈、变量
1.对象都在堆上,方法都在堆栈上
2.实例变量和局部变量的区别
实例变量在类中声明但不在方法内声明,它表示每一个对象拥有的字段,在实例被创建的时候创建,在被摧毁的时候被摧毁,
局部变量在方法内声明,包括方法参数,他们是临时的只有当方法在堆栈上时才有效,在方法被创建的时候创建,在方法被摧毁的时候跟着被销毁
3.对象引用变量的用法和原始变量类似,如果引用被声明为局部变量,则会被放在堆栈中
4.所有对象都在在堆中,无论引用的是实例变量、局部变量
5.类变量(静态变量)
在类中以 static 关键字声明,但必须在方法之外。
6.对象声明和赋值的三步
声明引用变量、创建变量、将对象赋给引用
构造函数
1.实例变量位于堆上它们所属的对象内
2.如果实例变量是对对象的引用。两个引用及其引用的对象都在堆上
3.构造函数必须与类具有相同的名称,并且不得具有retum类型
4.如果不在类中放入构造函数,编译器将放入默认构造函数,默认构造函数始终是无参数构造函数。如果在类中放置构造函数或任何构造函数,编译器将不会生成默认构造函数
5.如果想构造一个无参数函数,然后你又已经构造了有参数的函数,那么你需要自己构建一个无参数函数
6.如果可以,请始终提供一个无参数构造函数,以便于程序员创建工作对象。提供默认值
7.重载构造函数意味着类中有多个构造函数,重载构造函数必须具有不同的参数列表
8.不能有两个构造函数具有相同的事件列表。参数列表包括参数的顺序和/或类型
9.实例变量被指定一个默认值,即使您没有显式指定一个。默认值为0/0。基本体为0/false。引用为空