java--static与代码块

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.0
Math.round(1.2) // 1(四舍五入 返回long型)
Math.abs(-10)  // 10 (取绝对值)
Math.PI  //3.141592
Math.Max(3.0, 2.0)  // 3.0
Math.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
    }   
    
}
点赞