一.代码块:分为静态代码快和普通代码块,普通代码块可用于处理构造器中含有相同的语句,不管调用哪个构造器,都会先调用代码块,调用顺序优先于构造器。静态代码块随着类的加载执行,并且只执行一次,普通代码块每创建一个对象就执行。类什么时候会被加载:创建对象实例;创建子类实例父类会被加载;使用类的静态成员时;执行顺序:父类的静态代码块和属性>子类的静态代码块和属性>父类的普通代码块和普通属性>父类的构造器>子类的普通代码块和普通属性>子类的构造器。静态代码块只能调用静态成员,普通代码块可以调用任意成员。构造器隐藏了super和普通代码块的代码,实际在执行,先类加载再输出
二.设计模式:单例设计模式:饿汉式(只能有一个对象 先将构造器私有化->再在类内部创建对象->提供一个公共的static方法,返回对象)在进行类加载时就已经创建了对象,懒汉式:使用时才创建对象,构造器私有化->定义一个静态属性对象->提供一个静态方法,可以返回静态对象。
饿汉式: