1.方法重载:方法名相同,参数列表不同(参数的顺序的不同也可以区分两个方法,不过不建议)
注:不以返回值区分重载方法
2. 构造方法:创建类时,如果没有定义构造函数,系统会默认创建一个不带形参的构造器。如果有定义构造函数,
系统就不会创建默认构造函数(一般建议自己亲手创建不带形参的构造器)。
3.在构造器中调用构造器:可以使用this调用一个构造器,当不能调用两个,此外,必须将构造器调用至于最起始 处,否则编译器会报错
4.垃圾回收器如何工作:
1.引用计数。给每个对象都含有一个引用计数器,当引用连接到对象时,引用计数加1.当引用离开作用域时
或者被置为null时,引用计数减1.
缺陷:如果对象之间存在循环引用,会出现“引用计数不为零”。
2.停止-复制:先暂停程序的运行(所以不属于后台回收模式)。然后将所有存活的对象从当前堆复制到另 堆中(新堆保持紧凑)
3.标志-清扫:从堆栈和静态存储区中,遍历所有的引用,当它找到一个存活对象,就会给对象设置一个标志,当全部标志完成后,清理没有标志的对象,所以剩下的堆空间是不连续地。
5.对象的创建过程,假设有一个Dog类:
1.即使没有显示地使用static关键字,构造器实际上也是静态方法。因此,当首次创建类型为Dog对象时,或者Dog类的静态方法、静态域首次访问时,java解释器必须查找类路径,定位Dog.class
2.加载Dog.class,将静态初始化的所有动作都执行。静态初始化,只在Class对象第一次创建时进行一次。
3.当 new Dog()创建对象是,首先在堆上给对象分配足够的存储空间。并给所有数据成员初始化
4.执行构造器
6.数组的初始化
在java中,给一个数组赋值给另一个数组,如
int a [] = {1,2,3};
int[] a1 ;
a1 =a ;
其实a1和a是相同数组的别名,通过改变a1在a中可以看到变化。