一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 關于Java中靜態代碼塊的執行淺析

關于Java中靜態代碼塊的執行淺析

2021-01-06 11:20Payne Xu Java教程

這篇文章主要給大家介紹了關于Java中靜態代碼塊執行的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

前言

一般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,需要使用靜態代碼塊,這種代碼是主動執行的;需要在項目啟動的時候就初始化,在不創建對象的情況下,其他程序來調用的時候,需要使用靜態方法,這種代碼是被動執行的, 靜態方法在類加載的時候就已經加載,可以用類名直接調用。

比如main方法就必須是靜態的,這是程序入口

兩者的區別就是:

  • 靜態代碼塊是自動執行的;
  • 靜態方法是被調用的時候才執行的.

問題及總結

關于靜態代碼塊其實是面試時老生常談的問題,雖然面試時問了我也大概知道,但是在用的時候還是踩了個小坑。我想通過調用類的靜態變量來觸發靜態代碼塊的調用,但是沒有成功。

總結下靜態代碼塊能執行的條件:

第一次初始化對象

第一次調用靜態方法

第一次調用靜態代碼塊下面的靜態變量

?
1
2
3
4
5
6
7
8
9
10
11
12
public class ConfigHandler {
  public static p1 = “p1”;
 
  static{
   System.out.println("this is a static code block");
  }
 
  public static p2 = “p2”;
  public static p3 ;
 
  public static init(){}
}

static中System.out.println("this is a static code block");可以執行的情況如下:

  • new ConfigHandler();
  • System.out.println(ConfigHandler.p2);
  • System.out.println(ConfigHandler.p3)
  • ConfigHandler.init(); //在代碼中的位置任意

輸出p1時static代碼塊不執行,即調用靜態代碼塊前面的靜態變量,靜態代碼塊不會執行。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://blog.fliaping.com/javajing-tai-dai-ma-kuai-de-zhi-xing-/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 手机看片1024国产 | 国产精品久久久久不卡绿巨人 | 国产精品www| 国产a高清 | 日本xnxnxnxnxn护士 | 特级非洲黑人一级毛片 | 国产精品久久久久久久免费大片 | 日本女人www | 男女车车好快的车车免费网站 | 色屁屁二区 | 国产情侣偷国语对白 | 亚洲成av人片在线观看天堂无码 | 91精品久久 | 天天做天天爱天天操 | 精品久久久久久久久免费影院 | 干美女在线视频 | 天天射夜夜爽 | 顶级欧美做受xxx000 | 动漫美女被褥吸奶漫画漫画 | 金发美女与黑人做爰 | 成人免费国产欧美日韩你懂的 | 高清视频在线播放ww | 激情视频激情小说 | 99热自拍| 双性总裁(h)| 亚洲午夜精品久久久久久人妖 | 日本中文字幕在线视频 | 极品奶妈漫画 | a级毛片毛片免费很很综合 a级黄色视屏 | 视频高清在线观看 | 动漫白丝袜美女羞羞 | 青苹果乐园影院免费观看完整版 | 精品视频在线观看免费 | 国产日韩欧美不卡www | 国语视频高清在线观看 | 经典千人斩一区二区视频 | 日韩成人一级 | 午夜视频网站 | 给我视频免费看 | h片免费网站 | 女人张开腿让男人桶视频免费大全 |