摘要:代碼塊我們主要觀察普通代碼塊構(gòu)造塊靜態(tài)塊的主要作用。代碼實(shí)例構(gòu)造方法類的構(gòu)造方法將代碼塊寫在了類里面類的構(gòu)造塊控制臺輸出類的構(gòu)造塊類的構(gòu)造方法此時實(shí)例化類對象時,雖然執(zhí)行的是類的構(gòu)造方法,但是構(gòu)造塊里面的代碼也執(zhí)行了。
代碼塊
我們主要觀察普通代碼塊、構(gòu)造塊、靜態(tài)塊的主要作用。
在程序編寫之中可以直接使用"{}" 定義一段語句,那么根據(jù)此部分定義的位置以及關(guān)鍵字的不同可以分為以下幾種:
普通代碼塊
構(gòu)造塊
靜態(tài)塊
不過,我們在寫程序的時候,盡量不去使用代碼塊。
普通代碼塊如果說一個代碼塊寫在了方法里,那么就稱它了普通代碼塊。
代碼實(shí)例
下面說的變量,只是相對關(guān)系。
public class TestDemo { public static void main(String[] args) { {// 普通代碼塊 int num = 10; //局部變量 System.out.println(num); } int num = 100; // 相對的上面的局部變量,為全局變量 System.out.println(num); } }
實(shí)際上普通代碼塊就是為了防止在方法里面編寫的代碼過多時,有可能產(chǎn)生的變量重名。對一個方法的代碼進(jìn)行局部分割。
構(gòu)造塊如果說現(xiàn)在將一個代碼塊寫在了一個類里面,那么我們就稱為構(gòu)造塊。
代碼實(shí)例
class Book{ public Book() { // 構(gòu)造方法 System.out.println("【A】 Book 類的構(gòu)造方法"); } {// 將代碼塊寫在了類里面 System.out.println("【B】 Book 類的構(gòu)造塊"); } } public class TestDemo { public static void main(String[] args) { new Book(); } }
控制臺輸出
【B】 Book 類的構(gòu)造塊 【A】 Book 類的構(gòu)造方法
此時實(shí)例化 Book 類對象時,雖然執(zhí)行的是 Book 類的構(gòu)造方法,但是構(gòu)造塊里面的代碼也執(zhí)行了。并且會發(fā)現(xiàn)構(gòu)造塊的代碼是優(yōu)先于 構(gòu)造方法執(zhí)行。
代碼實(shí)例
class Book{ public Book() { // 構(gòu)造方法 System.out.println("【A】 Book 類的構(gòu)造方法"); } {// 將代碼塊寫在了類里面 System.out.println("【B】 Book 類的構(gòu)造塊"); } } public class TestDemo { public static void main(String[] args) { new Book(); new Book(); new Book(); } }
控制臺輸出
【B】 Book 類的構(gòu)造塊 【A】 Book 類的構(gòu)造方法 【B】 Book 類的構(gòu)造塊 【A】 Book 類的構(gòu)造方法 【B】 Book 類的構(gòu)造塊 【A】 Book 類的構(gòu)造方法
從控制臺的輸出可以看到,每當(dāng)我們實(shí)例化一個 Book 類時,我們的構(gòu)造塊都會被執(zhí)行一次。
靜態(tài)塊如果我們的代碼塊使用了 static 進(jìn)行定義的話,那么就被稱為靜態(tài)塊。我們分為兩種情況來看。
在非主類中使用代碼實(shí)例
class Book{ public Book() { // 構(gòu)造方法 System.out.println("【A】 Book 類的構(gòu)造方法"); } {// 將代碼塊寫在了類里面 System.out.println("【B】 Book 類的構(gòu)造塊"); } static {// 將代碼塊寫在了類里面 System.out.println("【C】 Book 類的構(gòu)造塊"); } } public class TestDemo { public static void main(String[] args) { new Book(); new Book(); new Book(); } }
控制臺輸出
【C】 Book 類的構(gòu)造塊 【B】 Book 類的構(gòu)造塊 【A】 Book 類的構(gòu)造方法 【B】 Book 類的構(gòu)造塊 【A】 Book 類的構(gòu)造方法 【B】 Book 類的構(gòu)造塊 【A】 Book 類的構(gòu)造方法
從上面我們可以看到,靜態(tài)塊只是執(zhí)行了一次,并且是優(yōu)先于構(gòu)造方法和構(gòu)造塊。也就是說,不管實(shí)例化多少個對象,靜態(tài)塊只執(zhí)行一次。
在主類中使用代碼實(shí)例
public class TestDemo { static { System.out.println("**********"); } public static void main(String[] args) { System.out.println("main()"); } }
控制臺輸出
********** main()
從控制臺的輸出,我們就可以知道,static 靜態(tài)塊 是優(yōu)先于 main 方法執(zhí)行的
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/76746.html
以下是Java技術(shù)棧微信公眾號發(fā)布的關(guān)于 Java 的技術(shù)干貨,從以下幾個方面匯總。 Java 基礎(chǔ)篇 Java 集合篇 Java 多線程篇 Java JVM篇 Java 進(jìn)階篇 Java 新特性篇 Java 工具篇 Java 書籍篇 Java基礎(chǔ)篇 8張圖帶你輕松溫習(xí) Java 知識 Java父類強(qiáng)制轉(zhuǎn)換子類原則 一張圖搞清楚 Java 異常機(jī)制 通用唯一標(biāo)識碼UUID的介紹及使用 字符串...
摘要:后端好書閱讀與推薦這一兩年來養(yǎng)成了買書看書的習(xí)慣,陸陸續(xù)續(xù)也買了幾十本書了,但是一直沒有養(yǎng)成一個天天看書的習(xí)慣。高級程序設(shè)計(jì)高級程序設(shè)計(jì)第版豆瓣有人可能會有疑問,后端為啥要學(xué)呢其實(shí)就是為了更好的使用做鋪墊。 后端好書閱讀與推薦 這一兩年來養(yǎng)成了買書看書的習(xí)慣,陸陸續(xù)續(xù)也買了幾十本書了,但是一直沒有養(yǎng)成一個天天看書的習(xí)慣。今天突然想要做個決定:每天至少花1-3小時用來看書。這里我準(zhǔn)備把這...
摘要:后端好書閱讀與推薦這一兩年來養(yǎng)成了買書看書的習(xí)慣,陸陸續(xù)續(xù)也買了幾十本書了,但是一直沒有養(yǎng)成一個天天看書的習(xí)慣。高級程序設(shè)計(jì)高級程序設(shè)計(jì)第版豆瓣有人可能會有疑問,后端為啥要學(xué)呢其實(shí)就是為了更好的使用做鋪墊。 后端好書閱讀與推薦 這一兩年來養(yǎng)成了買書看書的習(xí)慣,陸陸續(xù)續(xù)也買了幾十本書了,但是一直沒有養(yǎng)成一個天天看書的習(xí)慣。今天突然想要做個決定:每天至少花1-3小時用來看書。這里我準(zhǔn)備把這...
摘要:方法區(qū)存儲不變的東西類加載信息,靜態(tài)變量,字符串常量。通用分代垃圾回收基礎(chǔ)時只需要知道有這幾種方法即可四內(nèi)存分析靜態(tài)變量,靜態(tài)方法,靜態(tài)初始化塊靜態(tài)變量與方法不需要具體的對象就可以調(diào)用用類名調(diào)用,靜態(tài)初始化塊后就會調(diào)用了。 一:面向?qū)ο笈c面向過程 籠統(tǒng)說,一個流程簡單一個復(fù)雜,面向過程好比開車上路,可以簡單羅列出幾個動作:上車,系安全帶,點(diǎn)火,出發(fā);向過程好比造出一輛汽車,肯定不能...
摘要:表示的是兩個,當(dāng)其中任意一個計(jì)算完并發(fā)編程之是線程安全并且高效的,在并發(fā)編程中經(jīng)常可見它的使用,在開始分析它的高并發(fā)實(shí)現(xiàn)機(jī)制前,先講講廢話,看看它是如何被引入的。電商秒殺和搶購,是兩個比較典型的互聯(lián)網(wǎng)高并發(fā)場景。 干貨:深度剖析分布式搜索引擎設(shè)計(jì) 分布式,高可用,和機(jī)器學(xué)習(xí)一樣,最近幾年被提及得最多的名詞,聽名字多牛逼,來,我們一步一步來擊破前兩個名詞,今天我們首先來說說分布式。 探究...
閱讀 2675·2023-04-25 18:10
閱讀 1611·2019-08-30 15:53
閱讀 2804·2019-08-30 13:10
閱讀 3224·2019-08-29 18:40
閱讀 1133·2019-08-23 18:31
閱讀 1205·2019-08-23 16:49
閱讀 3407·2019-08-23 16:07
閱讀 881·2019-08-23 15:27