static的作用总结:可以修饰成员变量和成员方法
* 作用:保值-使成员的存活时间(生命周期)与程序的一致
*
* 被static修饰的成员变量的特点
* 1.被当前类的所有对象共享
* 2.由随着对象的加载而加载变成随着类的加载而加载,变量被放在了静态方法区,执行顺序优先于非静态的成员变量
* 3.可以使用类名或引用调用
*
* 静态的成员变量与非静态的成员变量的区别:
* 1.存储的数据的使用:非静态的只能供当前的对象使用.静态的供所有对象共享
* 2.生命周期:非静态的跟对象一致,静态的跟程序一致
* 3.存储的位置:非静态的:对象中 静态的:静态方法区
* 4.访问的方式:非静态的:引用 静态的:引用或类名
*
* 被static修饰的成员方法的特点
* 静态的成员方法内部只能使用静态的成员变量
* 非静态的内部既可以使用静态的成员变量,也可以使用非静态的成员变量
静态代码块儿:随着类的加载而加载,在整个程序运行的过程中只执行一次,执行顺序优先于main方法
* 构成:static+{代码}
* 作用:做类的初始化工作
* 代码块儿(构造代码块儿):随着对象的加载而加载,每次创建对象都会执行一次,执行顺序优先于构造方法.
* 构成:{代码};
* 作用:做对象的初始化工作
*
* 整体的执行顺序:静态代码块-优先于--构造代码块儿----优先于--构造方法
总结:在工具类中没有使用非静态的成员变量,所以应该尽量使用静态的方法封装工具类.