關於java類中的代碼塊(java 代碼塊)

本文目錄一覽:

Java關於代碼塊的問題

這個是因為你的代碼寫在匿名內部類裡面,java在類里只允許聲明成員變數和函數,是不能直接寫代碼的。

代碼邏輯應該寫在函數內部。

java中的靜態代碼塊、代碼塊、構造器的執行順序是怎樣呢,這三者有什麼作用呢

先說執行順序:我們在new一個對象時,如果類還沒載入,就需要先將類載入到內存,此時就會執行靜態代碼塊,在創建對象時,是先執行代碼塊,然後執行構造器。所以靜態代碼塊、代碼塊、構造器的執行順序是:靜態代碼塊→代碼塊→構造器。

再說作用:靜態代碼塊是用於初始化類的(在載入類時執行,只執行一次),代碼塊是用於初始化對象的(在創建對象時執行,每次創建對象時都執行),構造器是用於創建對象的。

java中詳解靜態代碼塊,構造代碼塊,構造方法。求簡單易懂的解釋

靜態代碼塊:只要一用到某個類,那麼這個類的靜態代碼塊就先執行,比如:

public class Dog(){

    int i = 0;

    static {

        i = 1; 

    }  

 

    public Dog(){

           i = 2; 

    }    

}

當你new 一個Dog()對象時,首先i= 1 會執行,然後才執行 public Dog(){}這個方法。

pulic Dog() 是與類同名、沒有返回值的方法,也就是構造方法。

構造方法的作用是用來初始化一個對象的。比如你可以在裡面寫 i = 2;

那麼當你 Dog d = new Dog()執行這段代碼的時候,是這樣的:

首先 i = 0 ;

然後執行static 靜態代碼塊,此時i= 1;

最後執行public Dog();  i = 2;

Java的靜態塊和初始化塊分別何時執行?有什麼區別?

靜態初始化塊:當類第一次載入時執行。

非靜態初始化塊:非靜態初始化塊會在構造函數執行時,且在構造函數主體代碼執行之前被執行。

區別如下:

1、執行次數不同

靜態塊只執行一次,初始化塊可以執行多次。

2、作用不同

靜態初始化塊僅能初始化類變數,即static修飾的數據成員。

非靜態初始化塊可以初始化類的實例變數。

擴展資料:

使用Java靜態代碼塊注意事項:

1、它是隨著類的載入而執行,只執行一次,並優先於主函數。具體說,靜態代碼塊是由類調用的。類調用時,先執行靜態代碼塊,然後才執行主函數的。

2、靜態代碼塊其實就是給類初始化的,而構造代碼塊是給對象初始化的。

3、靜態代碼塊中的變數是局部變數,與普通函數中的局部變數性質沒有區別。

4、一個類中可以有多個靜態代碼塊。

5、對於靜態變數、靜態初始化塊、變數、初始化塊、構造器,它們的初始化順序依次是(靜態變數、靜態初始化塊)(變數、初始化塊)構造器。

java中,代碼塊(初始化塊)和構造函數的區別是什麼?

代碼塊有構造代碼塊和靜態代碼塊,靜態代碼塊是類載入的時候執行的,一共只執行一次,構造代碼塊是創建類對象的時候執行的,創建一個對象執行一次,代碼塊都是用於初始化的,而構造函數是用於創建對象的。

java中靜態代碼塊的作用跟用法

Java靜態代碼塊的作用:Java靜態代碼塊中的代碼會在類載入JVM時運行,且只被執行一次,也就是說這些代碼不需要實例化類就能夠被調用。一般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,就需要使用靜態代碼塊。

Java靜態代碼塊的用法:一個類可以使用不包含在任何方法體中的靜態代碼塊,當類被載入時,靜態代碼塊被執行,且只被執行一次,靜態塊常用來執行類屬性的初始化。例如:

static

{

int a=0;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232125.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 12:49
下一篇 2024-12-11 12:49

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29

發表回復

登錄後才能評論