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
    }   
    
}
相關文章
相關標籤/搜索