4.1 this只能用在方法中,表示调用所在方法的对象。
4.1 构造器中调用重载构造器,只能是在构造器的第一句,且只能调用一个构造器,且只有构造器可以调用构造器。
4.2 this(参数) 根据参数不同调用不同构造器
4.3 代表数据成员 this.s。 s不是参数也不是局部变量
4.4 调用其他方法 this.fun()
4.5 作为返回值 return this ,返回的是调用此方法的对象
5.1 static方法就是没有this的方法
5.2 static方法不能直接调用非静态方法,非静态方法可以调用静态方法。
5.2. 调用一个非静态方法必须要使用对象引用调用 对象引用.f();
5.3 static方法不需要对象就可直接调用, 类. static方法名
6.1 垃圾回收器只回收经new分配的内存
6.2 对象可能不被回收
6.3 垃圾回收不等于构析
6.4 垃圾回收只与内存有关,只要内存用不完对象就不会被回收,因为垃圾回收器也是要消耗内存的。
1.将对象内存空间初始化为二进制0(所有的数据成员被设为默认值)
2.如果该类有基类则初始化其基类
3. 静态成员和静态域(谁在前谁先初始化,且在内存中只占一份空间,同一个类不同对象可以共享)
4.main方法
5.非静态成员变量,引用,实例初始化 被初始化
6. 构造器
初始化顺序中的1,2,3,4,为类加载过程,5,6为创建对象过程,只有创建了对象才会执行。。
8.1 定义数组 int[ ] a1; 数组保存同一类型的数据
8.2初始化: int[ ] a1 = { 1, 2, 3 ,4 };
Integer[ ] a1 = { new Integer(2), 3, 4}; //自动包装机制
Integer[ ] a1 = new Integer[ ] { 2, 3, 4 }
8.3 int[ ] a2; a2 = a1; 引用复制,指向同一数组
8.4 int[ ] a3 = new int[5]; 只定义了数组大小(索引 0-4),其中数据并未赋值,默认初始化为0,null,false .
8.5 a3.length() 返回数组元素个数5
8.6 Arrays.toString() 可打印一维数组
int[] a = new int[5]; a[1] = 5; System.out.println(Arrays.toString(a)); //[0, 5, 0, 0, 0]
public class Arrayss { public static void main(String[] args) { // 使用最大的基类Object创建数组这样才能传入不同类型的参数 f(new Object[] { new Integer(20), new Double(8.0), "java" }); } static void f(Object[] s) {}; }
public class Arrayss { public static void main(String[] args) { // 不必编写数组,但是编译器实际上会创建数组,且不会使用自动包装机制 f(new Integer(20), new Double(8.0), "java"); g(new Integer(6), 9); // 可变参数列表可与自动包装机制共存 h(new Double(8.1), 9.2); // 自动包装机制 g1(9); // 自动包装机制 } static void f(Object... s) { System.out.println(s.getClass()); }; static void g(int... s) { System.out.println(s.getClass()); }; static void h(Double... s) { System.out.println(s.getClass()); }; static void g1(Integer... s) { System.out.println(s.getClass()); }; }
输出:
class [Ljava.lang.Object; class [I class [Ljava.lang.Double; class [Ljava.lang.Integer;
public enum EnumName { NOT, MILD, MEDIUM, HOT }
使用enum 需要创建一个该类型引用,并赋值给某个实例
EnunName howHot = EnunName.HOT;
原文:https://www.cnblogs.com/mibloom/p/9040362.html