java對象初始化詳解(java對象初始化的三種方法)

  • 1、簡述java程序運行時完整的對象初始化過程
  • 2、JAVA里初始化是什麼意思?
  • 3、java對象初始化
  • 4、Java中對象如何初始化

理解的幾個特殊加載過程:

靜態代碼塊、構造代碼塊,構造方法。

1、有靜態方法先加載,所有的靜態方法加載完畢之後進入對象的構建— 初始化行為1

1、執行構造代碼塊(有的話:{ })— 初始化行為2

2、調用無參構造函數初始化對象—

執行第一行:super();

調用父類無參數構造函數—一直往上調。如果父類有構造代碼塊先執行。

注意靜態代碼是最先加載的,無論多少個父類。

自己多試着操作練習,看看運行結果,加深理解!

初始化就是給變量一個初始值。

例如:

聲明一個變量:String aa = “abc”;int cc =0;其中abc和0就是初始化的值,最後值不一定是abc或者 0加入你覆蓋了aa的值如下:

aa = “def” ; cc=1;那最後aa變量的值就是def,cc變量就是1了,初始化的目的是為了讓變量有值,防止使用時出現異常。

擴展資料:

作用

1、遇到new,getstatic,putstatic,或invokestatic這4條位元組碼指令時,如果類沒有進行過初始化,則需要先觸發其初始化。生成這四條指令單最常見的Java代碼場景是:

使用new關鍵字實例化對象的時候,讀取或設置一個類的靜態字段(被final修飾,已在變異期把結果放入常量池的靜態字段除外)的時候,以及調用一個類的靜態方法的時候。

2、使用java.lang.reflect包的方法對類進行反射調用的時候,如果類沒有進行過初始化,則需要先出法其初始化。

3、當初始化一個類的時候,如果發現其父類還沒有進行初始化,則需要先出法其父類的初始化。

4、當虛擬機啟動時,用戶需要指定一個要執行的主類(包含main()方法的那個類),虛擬機會先初始化這個主類。

1、java規定,構造方法中對其他構造方法的顯式調用只能調用一次,且必須是第一句。每個構造方法的第一句java會自動加上對父類的默認方法的調用,這個是隱式的。而你的this調用是顯式的,所以必須是第一句而且只能是一句。

2、你對方法的理解是對的,方法的調用實際上用的是那段代碼的入口,因此大家都用一個。

初始化數組有三種方式,以下都是去初始化一個String類型長度2的數組:

方式一:

123String[] strs = new String[2];strs[0] = “0”;strs[1] = “1”;

方式二:

1String[] strs = new String[]{“0”, “1”};

方式三:

1String[] strs = {“0”, “1”};

三種方式,都有自己的使用場景,在合適場景使用即可。

原創文章,作者:QGVU8,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/126849.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QGVU8的頭像QGVU8
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發佈程序以及命令行。在本文中…

    編程 2025-04-29
  • Python程序的三種基本控制結構

    控制結構是編程語言中非常重要的一部分,它們指導着程序如何在不同的情況下執行相應的指令。Python作為一種高級編程語言,也擁有三種基本的控制結構:順序結構、選擇結構和循環結構。 一…

    編程 2025-04-29
  • 面向對象編程、類和對象

    面向對象編程(Object-Oriented Programming, OOP)是一種編程方法,它將現實世界中的事物抽象為對象(Object),對象的屬性和方法被封裝成類(Clas…

    編程 2025-04-29
  • Go中struct的初始化

    本文將從多個方面詳細闡述Go中struct的初始化方式,包括使用字面量初始化、使用new函數初始化以及使用構造函數等。通過本文的介紹,讀者能夠更深入的了解Go中struct的初始化…

    編程 2025-04-28
  • Python三種基本輸入元素

    本文將從多個方面對於Python三種基本輸入元素進行詳細的闡述並給出代碼示例。 一、Python三種基本輸入元素解答 Python三種基本輸入元素包括命令行參數、標準輸入和文件輸入…

    編程 2025-04-28
  • Mapster:一個高性能的對象映射庫

    本文將深入介紹furion.extras.objectmapper.mapster,一個高性能的對象映射庫,解釋它是如何工作的以及如何在你的項目中使用它。 一、輕鬆地實現對象之間的…

    編程 2025-04-28
  • Python返回對象類型

    Python是一種動態、解釋型、高級編程語言。Python是一種面向對象的語言,即所有的一切都是一個對象。 一、基本類型 Python中的基本類型有整數int、浮點數float、布…

    編程 2025-04-28
  • Python中通過對象不能調用類方法和靜態方法的解析

    當我們在使用Python編寫程序時,可能會遇到通過對象調用類方法和靜態方法失敗的問題,那麼這是為什麼呢?接下來,我們將從多個方面對這個問題進行詳細解析。 一、類方法和靜態方法的定義…

    編程 2025-04-27
  • Python內置函數——查看對象內存

    本文將介紹Python內置函數中,在開發中查看對象內存的相關函數。 一、id()函數 id()函數是Python內置函數,用於返回對象的唯一標識符,也就是對象在內存中的地址。 nu…

    編程 2025-04-27
  • 解決ERP運行時錯誤429:ActiveX不能創建對象 DAO350

    ERP運行時錯誤429是由於「ActiveX不能創建對象」而引發的。這種錯誤通常是由於您在嘗試訪問Microsoft Access數據庫時缺少了必要的組件。 一、安裝並註冊DAO庫…

    編程 2025-04-27

發表回復

登錄後才能評論