日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

静态代码初始化

發布時間:2024/4/13 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 静态代码初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.learn;public class Test01 {/*** 比如我賦值叫500* 這里也要定義為靜態的*/ // private static int age = 500;/*** 靜態代碼塊你們聽過沒有* 聽說過吧*/static {/*** 靜態代碼塊初始化* 它是為2* 這個步驟是怎么樣進行執行的* 代碼是怎么進行執行的* 怎么執行* 什么順序* */System.out.println("2靜態代碼塊初始化");/*** 我能不能應用age* 我把它賦值700*/age = 700;}/*** 這個能不能放在下面* 這個時候是多少* 是500* 編譯器自動收藏類中的所有變量的賦值動作和靜態語句塊static塊中的語句合并產生* 代碼從上往下執行* 這肯定是500不是700的* 這個也沒有特別高達上* 答錯也沒關系* 如果我長期沒搞我也會答錯的* 忘記很正常的* * 500的原理是因為靜態代碼塊和全局變量的時候* 會做一個合并執行* 具體多少* 會和你的執行順序有關* 如果我放到上面* 那就會先執行age等于500* 然后靜態static里面會把age值賦值為700* 這樣的話age就為700了* * * 如果放到下面* 編譯器就會從上往下執行* age一開始的默認值是為0* 當你age值設置為700的情況下* 又改為500了* 你再打印的時候值肯定就為500了* 這個其實為JAVA基礎* * 它是先int age = 0;* static代碼塊里面把age = 700* 然后走到這一行的時候age = 500* * 有人會認為你靜態代碼塊前面age沒有初始化肯定報錯* 其實JVM做了一個優化* int age = 0* 走到靜態代碼塊的時候age的值等于700* 然后走到這一行的時候age就等于500了* * */private static int age = 500;/*** 我們把我們的構造函數也打印出來*/public Test01() {/*** 這個時候我們寫一下叫做什么* 構造函數初始化* 這個你們都學過的* 這個我倒不用講的特別細* * 我標記幾個步驟* 它是為1*/System.out.println("1構造函數.....");}/*** 我們再寫一個main函數出來*/public static void main(String[] args) {/*** new一下這個類* 你們可以說一下大體的結果*/Test01 t = new Test01();/*** 比如我這里new兩個* 這個叫t2* 這個時候代碼是怎么打印的* 2,1,1,500* static難道不會初始化兩次嗎* 靜態只初始化一次的* */Test01 t2 = new Test01();/*** age的結果是多少* 是500還是700你們說一下* 肯定是2,1* 靜態肯定是優先于構造方法* */System.out.println(t.age);} }

?

總結

以上是生活随笔為你收集整理的静态代码初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。