一般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,需要使用靜態代碼塊,這種代碼是主動執行的;需要在項目啟動的時候就初始化,在不創建對象的情況下,其他程序來調用的時候,需要使用靜態方法,這種代碼是被動執行的.
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、虛擬主機、營銷軟件、網站建設、二道網站維護、網站推廣。
兩者的區別就是:靜態代碼塊是自動執行的;
靜態方法是被調用的時候才執行的.
作用:靜態代碼塊可用來初始化一些項目最常用的變量或對象;靜態方法可用作不創建對象也可能需要執行的代碼.
static代碼塊是在類初始化時就被虛擬機執行的,所以最先輸出的是d。
main方法是靜態方法,是在類加載完之后由虛擬機調用的,調用之后才會輸出c1。
一般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,需要使用靜態代碼塊,這種代碼是主動執行的;
類加載的時候就會去執行靜態代碼塊的內容。比如說:寫連接數據庫的那些內容時,經常有classforName("XXX"),用于加載一些東西,這些東西就可以寫在靜態代碼塊中。還有一些,你想讓類加載時就執行的程序也可以放在里面。
1、變值權限修飾作用,在定義內部類的時候,可以在其前面加上一個權限修飾符static。此時這個內部類就變為了靜態內部類。
2、在某些特殊的情況下,少了這個靜態內部類還真是不行。如在進行代碼程序測試的時候,如果在每一個Java源文件中都設置一個主方法(主方法是某個應用程序的入口,必須具有),那么會出現很多額外的代碼。
3、最主要的時這段主程序的代碼對于Java文件來說,只是一個形式,其本身并不需要這種主方法。但是少了這個主方法又是萬萬不行的。在這種情況下,就可以將主方法寫入到靜態內部類中,從而不用為每個Java源文件都設置一個類似的主方法。
這對于代碼測試是非常有用的。在一些中大型的應用程序開發中,則是一個常用的技術手段。
擴展資料
例如:
對于兩個類,擁有相同的方法:
class People{
run();
}
interface Machine{
run();
}
此時有一個robot類:
class Robot extends People implement Machine.
此時run()不可直接實現。
interface Machine{
void run();
}
class Person{
void run(){
System.out.println("run");
}
}
class Robot extends Person{
private class MachineHeart implements Machine{
public void run(){
System.out.println("heart run");
}
}
public void run(){
System.out.println("Robot run");
}
Machine.getMachine(){returnnew MachineHeart();
}
class Test{
publicstaticvoid main(String[] args){
Robot robot=new Robot();
Machine m=robot.getMachine();
m.run();
robot.run();
}
}
參考資料來源:百度百科-靜態內部類
有靜態代碼段
static
{}
使用類似這樣的靜態代碼段就可以;另外;靜態代碼段不會出現在方法中。static代碼段在加載類的時候執行;而且,同一個類的靜態代碼段在同一個進程中只執行一次。
另外還有靜態方法。注意;靜態方法是在類的構造函數執行之前執行。
分享題目:java靜態類代碼 靜態類 java
文章分享:http://m.newbst.com/article32/hjhesc.html
成都網站建設公司_創新互聯,為您提供、網站排名、網站策劃、品牌網站建設、網站內鏈、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯