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
}
}