一些乱七八糟的总结
当 String 类型的对象进行修改操作的时候,编译器会自动引入 StringBuilder 类型, 编译器会自动构造一个 StringBuilder 对象,用以构造最终的 String 。但是别指望编译器能有多智能,当String类型的对象进行循环更改操作的时候, StringBuilder 对象是在循环体中构造的,所以每次循环都会创建一个 StringBuilder 对象,而我们通过显示的使用 StringBuilder对象就可以避免这个问题。
如果想要打印对象的内存地址,需要在重写的 toString() 方法中使用 super.toString() 方法。
一旦某个类的 Class 对象被载入内存,它就用来创建这个类的所有对象。
类加载过程 加载,链接,初始化。
使用嵌套类继承本身类并且实现 Null 接口(自己提前定义好的) 这样可以统一定义空对象而且避免空指针。
如果在集合内部使用数组的话,最好使用 Object[] 来存储而不是 T[] 。因为我们不太可能忘记这个数组的运行时类型,从而意外地引入缺陷(尽管大多数缺陷能再运行时被探测到)。
使用 System.arraycopy() 方法来赋值数组比for循环赋值来的更加高效便捷,对于对象的赋值,只是复制引用(浅拷贝)。
Arrays 类提供了重载之后的 equals() 方法 数组相等的条件是 数组元素个数相等,且对应位置上的元素也相等。
在已排序好的数组中可以使用 Arrays。binarySearch() 执行快速查找。