摘要:一成員變量的初始化成員變量的默認值會在調用構造方法之前對所有沒有在聲明時賦值的成員變量賦予默認值。四初始化順序在類加載時唯一初始化一次次靜態變量和執行靜態字句。
java中所有變量在使用之前必須得到初始值,否則無法編譯通過。java中的變量分為類中的成員變量和方法中的局部變量,方法中的局部變量在使用之前我們必須自己進行初始化。
一、成員變量的初始化:Java會在調用構造方法之前對所有沒有在聲明時賦值的成員變量賦予默認值。
數值類型:0
字符char:"u0000"
布爾型:false
對象和數組:null
在聲明成員變量的時候就指定初始化值。
在顯示指定初始化值時若用的其他成員變量,必須保證用到的變量已經被初始化了。(成員變量的初始子上而下進行)
靜態成員變量的初始賦值與普通成員一樣,唯一不同在于靜態變量初始化只在在類加載時執行一次,而普通成員變量在每次實例化時都執行一次。
class Test { static int a = 1; static { System.out.println(a); } static int b = 2; }
靜態字句使用static后加大括號中,在類加載時靜態字句會被執行,且之只會在類加載時執行一次。
注意:初始時,先對a進行初始,然后執行靜態字句,然后對a進行初始化。如果上面輸出得是b那將編譯報錯,因為我們不能再初始化直接使用一個變量。
class Test { int a = 1; { System.out.println(a) } }
非靜態字句在每次實例化時被執行。
二、構造方法進行初始化:每次創建類對象時都會調用類的構造方法,可以在構造方法中進行一些初始化操作,不過構造方法的調用發生在成員初始化之后。
1、this關鍵字調用其他構造方法可以在構造方法將this作為方法調用從而調用其它構造方法,但this調用只能調用一次且必須在第一行。
public class Tree { private int h; public Tree() { this(6); } public Tree(int h) { this.h = h; } }
除構造方法中外,其他任何地方都禁止調用構造方法。
類有父類時先對父類進行初始化,如果類類也有父類則對先初始化父類,以此進行下去。
并且在基類構造器第一個語句使用super調用父類的構造方法,若基類含有不帶參數的構造方法那么可以不顯示的調用super,編譯器會自動調用。
super只能在構造方法第一行調用一次。
public class A { public A(int a) { } } public class B { public B(int b) { spuer(b); } }四、初始化順序:
在類加載時唯一初始化一次次靜態變量和執行靜態字句。靜態變量和靜態執行子上而下順序進行。
在每次實力化類對象時進行普通成員變量的初始化和執行費靜態字句,初始化和字句按順序自上而下執行。
有父類先進行父類的初始化
五、數組初始化class Test { int[] as; public Test() { int[] bs; } }
Java中數組類型的變量也是對象,所以在成員變量的數組在聲明后如果未初始化則有默認值null,但bs由于是方法里聲明所以不會被自動初始化為null,在使用之前就需要手動顯示的進行初始化。
class Test { public static void main(String[] args) { int[] aArr = new int[10]; Integer[] bArrs = new Integer[10]; } }
對于aArr賦予new對象引用,此時aArr指向的是10個值為0的int數組。對于基本類型new的時候會為數組的每一個成員賦予默認值,如果是對象類型則賦予null:
數值類型:0
字符char:"u0000"
布爾型:false
對象:null
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71500.html
摘要:分析性能的影響但是需要注意時間單位,只是微秒而已,毫秒的千分之一秒的百萬分之一。在這種情況下,優化毫秒的性能隱患無異于撿了芝麻丟了西瓜。 同步自:https://sulin.me/2019/T2ZXZB.... 在分布式系統開發中,我們經常需要將各種各樣的狀態碼、錯誤信息傳遞給最外層的調用方,這個調用方通常是http/api接口,錯誤信息比如登錄失效、參數錯誤等等。 最外層接口暴露的...
摘要:開篇金幣積分商城下稱商城是眾多內的一個產品,隨著使用的用戶越來越多,商城對于用戶留存的提升,扮演著重要的角色做為提高用戶黏性的核心產品,在擁有很好用戶體驗的同時,也必須存在著一個高效穩定的系統。分析上述兩點,得到結論按用戶進行分庫分表。 開篇 金幣(積分)商城(下稱商城)是眾多App內的一個產品,隨著App使用的用戶越來越多,商城對于用戶留存的提升,扮演著重要的角色;做為提高用戶黏性的...
摘要:在開發設計中有一些常用原則或者潛規則,根據筆者的經驗,這里稍微總結一下最最常用的,以饗讀者。是處理復雜性的一個原則。參考六大設計原則里氏替換原則奧卡姆剃刀如有問題可以通過郵件微信聯系我。 在開發設計中有一些常用原則或者潛規則,根據筆者的經驗,這里稍微總結一下最最常用的,以饗讀者。 DRY 這里的DRY是Do Not Repeat Yourself的縮寫。具體解釋參見 ,嚴謹的定義是 E...
閱讀 3209·2023-04-26 02:27
閱讀 2138·2021-11-22 14:44
閱讀 4082·2021-10-22 09:54
閱讀 3195·2021-10-14 09:43
閱讀 748·2021-09-23 11:53
閱讀 12675·2021-09-22 15:33
閱讀 2704·2019-08-30 15:54
閱讀 2681·2019-08-30 14:04