導航:首頁 > 編程語言 > java構造函數靜態

java構造函數靜態

發布時間:2022-07-21 05:19:58

java 調用靜態方法和構造函數和靜態塊執行的先後順序

java中首先是靜態塊先執行,靜態方法,最後是構造函數。示例如下:

publicclassExA{
static{
System.out.println("父類--靜態代碼塊");
}

publicExA(){
System.out.println("父類--構造函數");
}

{
System.out.println("父類--非靜態代碼塊");
}

publicstaticvoidmain(String[]args){
newExB();
}
}

classExBextendsExA{
static{
System.out.println("子類--靜態代碼塊");
}
{
System.out.println("子類--非靜態代碼塊");
}

publicExB(){
System.out.println("子類--構造函數");
}
}

執行結果
=====
父類--靜態代碼塊
子類--靜態代碼塊
父類--非靜態代碼塊
父類--構造函數
子類--非靜態代碼塊
子類--構造函數

㈡ Java構造函數,構造代碼塊和靜態代碼塊的區別

  1. 構造函數:執行時間比構造代碼塊時間晚,也是在對象初始化的時候運行。沒有返回值,構造函數名稱和類名一致。

  2. 構造代碼塊:執行時間比靜態代碼塊晚,比構造函數早,和構造函數一樣,只在對象初始化的時候運行。沒有名字、參數和返回值。

  3. 靜態代碼塊:最早執行,類被載入內存時執行,只執行一次。沒有名字、參數和返回值,有關鍵字static。

靜態代碼塊只會在類被載入內存時載入一次,是最先執行的,然後是構造代碼塊,最後才是構造函數。構造代碼塊和構造函數都是在對象創建的時候執行,有幾個對象就會執行幾次。

㈢ Java 中能不能有靜態的構造函數

java中靜態的東西都是屬於類的,為類服務,構造函數是為了初始化對象,為對象服務。構造函數是用來生成實例,既然是實例就不是static的。這兩者是相互矛盾的

㈣ Java構造函數(方法)存儲在jvm哪個內存里

存放到方法區當中;
new出來的是實例對象,實例對象才是存放在堆當中;
構造函數對應的是<init>方法,方法信息隨著類載入器載入到方法區當中。
棧:
以棧幀為單位,存放的不是方法具體的結構,只是通常一個方法對應一個棧幀,對應的入棧出棧就是棧幀的入棧出棧。棧幀中有局部變數表,操作數棧,方法返回地址,動態鏈接。其中局部變數表存放局部變數,包括形參,非靜態方法默認在第一個索引存放一個this變數;操作數棧用於操作局部變數表和一些值的運算,比如讀取表中變數的值進行運算,或存放相應的值到局部變數表中;方法返回地址則是用於記錄對應方法的下一條指令的地址;動態鏈接是符號引用變成的直接引用。
堆:
存放實例對象,在jdk7開始,還存放靜態變數和字元串常量池
方法區:
存放類元信息,比如完整類名全稱,public,abstract等修飾符,實現的介面有序列表等;方法信息,比如修飾符,返回類型等;JIT代碼緩存,也就是被即時編譯器編譯後的熱點代碼,用於提高性能;域信息,也就是屬性信息,比如修飾符,類型等;運行時常量池,位元組碼文件中常量池的運行時表現,類似符號引用的記錄,不過蘊含的信息更為豐富,而且具有動態性。jdk6及以前,還存放靜態變數,運行時常量池中還存放字元串常量池,到了jdk7則移到了堆中。

㈤ Java有靜態構造函數嗎

在java中,構造方法是通過new來實例化一個對象的,
而靜態方法是類方法,直接通過類名直接調用的,是不能通過對象調用的,所以也就不能用static來修飾,故java不能有靜態構造函數。

㈥ java中構造方法是否是靜態的

靜態的東西是屬於類的,非靜態的東西是屬於實例的。沒有靜態的構造函數。

靜態的先執行,然後才是非靜態的。 輸出C B A

class A{
public A(){
System.out.print("A");
}
{
System.out.print("B");
}
static {
System.out.print("C");
}
}

㈦ 為什麼Java中不能有靜態的構造函數

因為靜態方法是沒有狀態的,接收一個參數,然後返回一個參數或者或者對該參數做什麼操作。
而非靜態方法與該對象有關,可以改變該方法所在的類的對象的狀態。
構造方法可以設置一個對象的初始狀態,這與靜態方法沖突了。

㈧ JAVA中為什麼要定義靜態代碼塊和構造函數呢

您好,提問者:
首先靜態代碼塊的作用是,只執行一次,不管是new還是直接類名。
構造函數用於傳遞或者初始化,如果想要這個類的方法或者變數,必須new初始化。
靜態代碼塊:
用於初始化一些操作,例如資料庫連接、配置文件讀取等。
構造函數:
用於new
xxx(值),如果一個類不想被new可以把構造方法寫為private類型。

閱讀全文

與java構造函數靜態相關的資料

熱點內容
腳本軟體提取源碼 瀏覽:278
程序員能給自己的微信錢包刷錢么 瀏覽:65
怎麼讓小天才app查看寶貝的通訊錄 瀏覽:620
dxgpdf 瀏覽:256
哪個命令 瀏覽:43
文件不能打包壓縮 瀏覽:699
linux源碼調試 瀏覽:948
全球所有c語言編譯器 瀏覽:658
如何學好app安全 瀏覽:261
怎麼給已經發表的文章加密 瀏覽:1000
php加密驗簽 瀏覽:168
如何新建app 瀏覽:17
python人臉識別某人 瀏覽:609
能免費解壓軟體的瀏覽器 瀏覽:840
耳機適配器加密狗 瀏覽:619
蘋果為什麼和安卓為什麼換不了號 瀏覽:297
解壓圖片怎樣快速導入 瀏覽:746
手機新建相冊加密 瀏覽:822
單片機延時1秒 瀏覽:188
ctf如何加密 瀏覽:921