摘要: class TestThread implements Runnable { private int i = 1; public void run() { while (true) { synchronized (this) { notify(); System.out.println(Thread 阅读全文
posted @ 2018-12-04 14:21 原来是这样啊 阅读(386) 评论(0) 推荐(0) 编辑
摘要: HashMap 结构: 数组+链表(红黑树) 放数据: public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } key的hash(): key==null,其hash为0,不为null其值 阅读全文
posted @ 2018-11-24 19:35 原来是这样啊 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 数组 数组创建与初始化 格式:className[] cn = new className[]{}; 可以省略{},但必须在[]里表明长度(变量必须提供维度表达式或数组初始值设定项),可以不用new,直接使用{}初始化,数组在创建时指定长度后只能一个一个的填充数组,不能使用{ }填充数组 优点 :访 阅读全文
posted @ 2018-11-08 13:17 原来是这样啊 阅读(1968) 评论(0) 推荐(0) 编辑
摘要: 创建对象 1. 直接赋值 2. 通过构造器 String s1 = "aa"; String s2 = "aa"; String s3 = new String("aa"); System.out.println(s1 == s2);//true System.out.println(s1 == s 阅读全文
posted @ 2018-11-06 14:03 原来是这样啊 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 抽象类 类和接口的中庸之道 包含一个或多个抽象方法的类为抽象类 继承抽象类 1. 子类实现抽象方法 2. 子类没实现抽象方法就必须限定子类为抽象类 注: 1. 抽象类不可用private修饰,因为这样就不可以实现抽象方法 2. 不能创建对象?? 接口 1. 方法确定方法名、参数列表、返回类型,默认为 阅读全文
posted @ 2018-11-05 19:11 原来是这样啊 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 前期绑定与动态绑定 前期绑定 程序执行前就已经知道方法所属的类 注: final 、static、private修饰的方法是前期绑定,其余方法都是后期绑定 后期(动态)绑定 运行时根据对象的类型进行绑定(面向接口) 注:使用final可以关闭动态绑定,但不会增加性能 构造器 1. 不具有多态,实际是 阅读全文
posted @ 2018-11-05 13:58 原来是这样啊 阅读(70) 评论(0) 推荐(0) 编辑
摘要: final的三种情况:数据、方法、类 final数据 基本类型 数值恒定不变 引用类型 引用恒定不变,对象自身可以修改 final数据必须被初始化,可以调用方法初始化也可以在构造器内 final方法 锁定方法,不会被继承覆盖,不会被修改 ,private方法默认为final方法 final类 不允许 阅读全文
posted @ 2018-11-05 13:16 原来是这样啊 阅读(117) 评论(0) 推荐(0) 编辑
摘要: static 静态字段 静态方法(类名调用,调用时才执行) 静态代码块(和字段相同) 静态导入(导入类中的静态方法) import static 类名 初始化顺序 class A { A() { System.out.println("A的构造器"); } int i = i(); static S 阅读全文
posted @ 2018-10-30 21:50 原来是这样啊 阅读(1305) 评论(0) 推荐(1) 编辑
摘要: 操作符 自动递增和递减 x += 4;// x=x+4; 自动递增和递减 前缀式: ++i;//先增加再引用 后缀式: i++;//先引用再增加 关系操作符 返回boolean结果 ==:引用比较 equal:值比较 String a = "a"; String b = "a"; System.ou 阅读全文
posted @ 2018-10-30 14:14 原来是这样啊 阅读(125) 评论(0) 推荐(1) 编辑