static与代码块:
static
class Student{ static String school; // 随着类的加载而执行 可以由类进行调用 static { // 静态代码块 加载类时需要进行的初始化操作,比如说加载驱动 } public static void study(){ // 静态方法 ,可以调用其他的静态方法。 // 可以调用其他 静态变量 // 但是不可以调用非静态的变量 ,加载时间不同 }}//应用场景实例: java中的工具类,如Math。Math.floor(1.6) // 1.0 (向下取整)Math.ceil(1.2) // 2.0 (向上取整)Math.round(1.6) // 2.0Math.round(1.2) // 1(四舍五入 返回long型)Math.abs(-10) // 10 (取绝对值)Math.PI //3.141592Math.Max(3.0, 2.0) // 3.0Math.pow(2.0, 3.0) //8.0 (次幂)Math.random() // double类型的随机数(0~1)
构造代码块
// 随着对象的实例而执行 (实例化一个对象就执行一次){ //构造对象时的公共部分}
面试题
public class BlockTest { static { System.out.println("BlockTest静态代码块执行"); //1 } { System.out.println("BlockTest构造代码块执行"); } public BlockTest(){ System.out.println("BlockTest无参构造执行了"); } public static void main(String[] args) { System.out.println("BlockTest的主函数执行了"); //2 Coder c = new Coder(); Coder c2 = new Coder(); }}class Coder { static { System.out.println("Coder静态代码块执行"); //3 } { System.out.println("Coder构造代码块执行"); //4 6 } public Coder() { System.out.println("Coder无参空构造执行"); //5 7 } }