第四章:
1、for循环:可以在初始化和步进控制部分,采用逗号表达式,处理多个相同类型变量的计算。
2、break和continue都是结束当前循环,不再执行当前循环剩余的语句。不同的是,break结束循环语句,continue从循环下一个开始节点继续执行。
3、switch可使用的类型:int、char、enum
第五章:
1、构造方法:创建对象时,需要调用类的构造方法。如果在类中不声明构造方法,编译器会自动生成一个不带形参的默认构造方法,如果声明了构造方法,就只能调用声明好的构造方法创建对象并初始化。
2、对象初始化时的执行顺序:父类的静态代码块(包括带初始化的成员变量)、子类的静态代码块(包括带初始化的成员变量)、父类的构造函数、子类的构造函数。
3、方法重载的几个类型:形参类型、个数、顺序不同;返回值类型不同。调用方法时,会自动匹配完全相同的形参组合,如果找不到合适的,会自动往上转型进行调用。往下转型需要强制转换。
4、this:当前对象的引用,加上参数列表以后可以在构造函数中调用重载的其他构造函数(非构造方法不能调用构造函数,一个构造函数中不能同时调用两个其他构造函数)
5、对象初始化:
A、创建对象的过程:加载.class,生成class对象,并对所有静态成员、静态块进行初始化。new为对象分配空间、对所有非静态成员进行初始化。执行构造函数。
B、静态成员或者静态块:只有在第一次生成对象或者调用类成员时才会调用或初始化、静态块只能处理静态成员。非静态块在每次生成对象的时候都会执行,用于处理非静态成员
6、数组的初始化
A、int[] a :一个数组引用,未分配对象空间
B、int[] a = {1, 2, 3};
C、int[] a = new int[10]; (基本对象都会被初始化成默认值,对象默认值为null)
7、可变参数列表:Object... list:接受任意数量的object对象,包括0个。
举几个列子String... list 可以匹配 A、("abc", "bbb") B、("abc", new String("bbb")) C、()
匹配重载函数时,固定部分和可变部分都按照自动往上的原则进行匹配。
8、枚举类型:可配合switch使用,toString():实例名 ordinal() 声明顺序 values() 常量构成的数组
PS:print(a),a为对象时打印类名@地址;getClass()表示该类类型的编码字符串;垃圾回收单独总结。