随笔分类 - Java
摘要:使用异常机制的技巧: 不能用异常处理代替测试 不要过分细化异常 早抛出,晚捕获 使用断言: 断言机制允许在测试期间向代码中插入一些检査语句。当代码发布时, 这些插人的检测 语句将会被自动地移走。 assert 这个关键字有两种形式: assert 条件; 和 assert 条件: 表达式; 这两种形
阅读全文
摘要:错误发生之后应该怎么办: •向用户通告错误; •保存所有的工作结果; •允许用户以妥善的形式退出程序。 Java中所有异常都是派生于类Throwable的一个实例: 各种异常分类的标准: RuntimeException相当于逻辑错误 关于受查异常和非受查异常: 方法后的声明: 如果在子类中覆盖了超
阅读全文
摘要:匿名内部类 假如只创建这个类的一个对象,就不必命名了。这种类被称为匿名内部类 通常的格式: supertype可以是一个接口,内部类要实现这个接口,也可以是一个类,内部类就要扩展它 由于构造器的名字必须与类名相同, 而匿名类没有类名, 所以, 匿名类不能有构造器。 取而代之的是, 将构造器参数传递给
阅读全文
摘要:关于Comparator接口的comparing方法中的键提取器函数: 还有thenComparing方法: ...一些琐碎的东西 内部类 内部类是定义在另一个类中的类 使用内部类的原因: A类包含B类,创建A类实例的过程中不会包含B类实例 b有一个隐式引用,指向了创建它的外部对象a 再具体一点的实
阅读全文
摘要:Lambda表达式用于传递代码段并回调 Arrays.sort()的第二个参数可以用下面的Lambda表达式代替: 并且: 没有参数的情况: 类型推导: 省略小括号的情形: 无须指定返回值的类型: Lambda表达式不合法的情形: 函数式接口 下文中,让方法不再是抽象的意思是,子类不必须再去实现这个
阅读全文
摘要:Arrays类中的sort方法可对实现了Comparable的接口进行排序 接口中所有的方法自动属于public,声明方法的时候,不必提供关键字public 接口中可以定义常量,不能含有实例域(实现接口的那个类实现方法和提供实例域) 可以将接口看做没有实例域的抽象类 实现接口的原因: 接口的一些特性
阅读全文
摘要:枚举类 反射 反射进行数组转换的时候,参数标识为对象数组和对象有什么区别? 接口能取代函数指针嘛 继承的设计技巧 1 将公共操作和域放在超类 2 不要使用受保护的域(子类和同一个包中都能看到) 3 继承实现的是is-a 关系 4 除非所有继承的方法都有意义,否则不要使用继承 5 覆盖方法时,不要改变
阅读全文
摘要:在继承链上进行向下的转换的一些事项: 超类转换为子类前要检查(为什么要将超类转换成子类?这通常意味着超类的设计存在问题) 抽象类 如果一个方法用abstract修饰,则在这个类里就不用实现这个方法了 抽象类的语法和注意事项 子类是否实现抽象的影响: 注意: 关于抽象超类引用的问题: 关于调用的问题
阅读全文
摘要:super不是对象的引用,只是一个指示编译器调用超类方法的特殊关键字 使用super调用构造函数的语句必须是子类构造函数的第一条语句 (e在Employee数组的for each循环中)多态和动态绑定 is-a,替换法则,里氏法则 可能staff[i]引用了另一个不是manager的子类,这样就乱套
阅读全文
摘要:包 使用包的作用:确保类名的唯一性没有在源文件中放置package语句,则这个源文件中的类就被放置在默认包中。默认包没有名字 权限控制:默认的类,方法或者变量可以被同一个包中的所有方法访问 由于类中的变量在不加权限的情况下可以被包中的其他类看见,所以必须显式地添加private (这地方可使用通配符
阅读全文
摘要:public class Test{ public static void main(String[] args) { System.out.println("I am testing"); //how to use substring api String s = "abcde"; System.out....
阅读全文