1下面這段**的輸出結果是什麼?
public class test extends base
public test()
public static void main(string args) }
class base
public base()
}
答案:
1base static
2test static
3base constructor
4test constructor
首先我們會先執行main方法,這是程式的入口,而在執行main方法之前,我們必須先載入test類,在載入test類的時候我們發現test類繼承base父類,所以我們要先載入父類base,在載入父類base的時候我們發現了static塊,所以先列印出base static,之後在繼續載入test類,在載入test類的時候,我們發現也有static塊,所以列印出test static。我們繼續執行main方法,構造乙個子類test物件的時候我們會先構造父類物件,所以列印出base constructor,最後構造子類物件,列印出test constructor。
2下面這段**的輸出結果是什麼?
public class test
public test()
public static void main(string args) }
class person
public person(string str) }
class myclass extends test
public myclass()
}
答案:
1test static
2myclass static
3myclass static
4person test
5test constructor
6person myclass
7myclass constructor
還是一樣,先走test類中的main方法,當然先要載入test類,載入test類時發現有static靜態**塊,所以先列印出test static.載入完了test類後,執行new myclass,所以要先載入myclass類,發現myclass類中有static靜態**塊,所以先列印出myclass static,之後在構造子類myclass的時候應先構造父類test,構造父類test的時候要先初始化父類的成員變數person,但卻發現person類還沒有載入,所以先載入person類,所以先執行person類中的static塊,列印myclass static,然後執行父類成員變數的初始化,列印person test,然後執行父類的構造器,列印出test constructor,然後就可以子類的構造器了,先要初始化子類成員變數person,列印出 person myclass,最後列印myclass constructor.
Java中常見的排序
冒泡法排序 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。param numbe...
java中常見異常
runtimeexception 1.arithmeticexception 數學計算異常 2.nullpointerexception 空指標異常 3.negativearraysizeexception 負陣列長度異常 4.arrayindexoutofbound ception 陣列索引越界異...
java中常見演算法2
二分查詢原理 param arr 乙個陣列 param a 要查詢的整數 return 返回查詢到的陣列下標,沒找到則返回 1 public int find int arr,int a else if a middle else return 1 利用遞迴實現二分查詢 param arr 乙個陣列...