相同点:
1.load:
1.加入运行时系统的类以及分类一定加载此方法,且调用顺序是 主类>分类,并且仅调用一次。
2.方法的调用会在main方法执行之前
3.在load方法中进行代码的编写是不安全的,因为编写时可能会依赖其它的类,然而在统一库中,我们不能确定类加载的顺序,因此可能造成没有初始化的类被使用,出现bug。
4.尽量精简load方法中的代码,因为load方法中会阻塞线程,执行过多的代码会影响性能
5.load方法中适合运用运行时对方法进行交换
2.initialize
1.在使用对应类之前由运行期系统调用,且只加载一次,为懒加载
2.在方法中对实例操作是线程安全的,但是由于执行此方法时会阻塞线程,所以也要尽量精简代码。
3.如果某类没有实现initialize方法,而其超类实现了,则系统会调用两次initialize方法,这点与load不同。