青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

tbwshc

tbw

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

常用鏈接

留言簿(4)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

java對象的初始化

小冬(珠海)11:02:48
我們知道一個對象可以有靜態(tài)變量、變量、靜態(tài)初始化塊、初始化塊,當(dāng)我們創(chuàng)建一個對象時,它是怎么初始化的呢?按什么順序初始化的呢?
 
  1. public class Test { 
  2.  
  3.      
  4.     // 靜態(tài)變量 
  5.     public static String staticField = "靜態(tài)變量"; // 變量 
  6.     public String field = "變量"
  7.     // 靜態(tài)初始化塊 
  8.     static { 
  9.         System.out.println(staticField); 
  10.         System.out.println("靜態(tài)初始化塊"); 
  11.     } 
  12.     // 初始化塊 
  13.     { 
  14.         System.out.println(field); 
  15.         System.out.println("初始化塊"); 
  16.     } 
  17.     // 構(gòu)造器 
  18.     public Test() { 
  19.         System.out.println("構(gòu)造器"); 
  20.     } 
  21.     public static void main(String[] args) { 
  22.         Test test = new Testb(); 
  23.  
  24.     } 
 
運行下代碼,輸出結(jié)果是:
靜態(tài)變量
靜態(tài)初始化塊
變量
初始化塊
構(gòu)造器
 
 
由此可以看到,當(dāng)new一個對象時,它并不是就是調(diào)構(gòu)造方法,而是先初始化屬性變量,我們把變量的定義先后順序換下,再執(zhí)行,會發(fā)現(xiàn),靜態(tài)的是先于非靜態(tài)進行實始化的,那么對于靜態(tài)變量和靜態(tài)初始化塊之間、變量和初始化塊之間的先后順序又是怎樣呢?是否靜態(tài)變量總是先于靜態(tài)初始化塊,變量總是先于初始化塊就被初始化了呢?
我們先改下代碼:
 
  1. public class Test { 
  2.  
  3.     public static TestA ta = new TestA(); 
  4.     // 靜態(tài)變量 
  5.     public static String staticField = "靜態(tài)變量"; // 變量 
  6.     public String field = "變量"
  7.     // 靜態(tài)初始化塊 
  8.     static { 
  9.         System.out.println(staticField); 
  10.         System.out.println("靜態(tài)初始化塊"); 
  11.     } 
  12.     // 初始化塊 
  13.     { 
  14.         System.out.println(field); 
  15.         System.out.println("初始化塊"); 
  16.     } 
  17.     // 構(gòu)造器 
  18.     public Test() { 
  19.         System.out.println("構(gòu)造器"); 
  20.     } 
  21.     public static void main(String[] args) { 
  22.         Test test = new Test(); 
  23.  
  24.     } 
  25.  
  26. class TestA { 
  27.     public TestA() { 
  28.         System.out.println("Test--A"); 
  29.     } 
 輸出是:
Test--A
靜態(tài)變量
靜態(tài)初始化塊
變量
初始化塊
構(gòu)造器
 
 
靜態(tài)變量:static TestA ta = new TestA()在靜態(tài)初始化塊前,所以先輸出Test--A
再換下位置,把static TestA ta = new TestA()放到在靜態(tài)初始化塊后,我們發(fā)現(xiàn)輸出是:
靜態(tài)變量
靜態(tài)初始化塊
Test--A
變量
初始化塊
構(gòu)造器
 
 
由此可見這是取決于它們在類中出現(xiàn)的先后順序,同理可得:變量和初始化塊之間也如此,總結(jié)可得:初始化優(yōu)先級是(靜態(tài)變量/靜態(tài)初始化塊)>(變量/初始化塊)>構(gòu)造器。
 
 
那繼承關(guān)系時的初始化又是怎樣的呢?如下:
大家應(yīng)該知道,初始化子類時會先初始化父類,再看代碼:
 
  1. public class Test extends Parent{ 
  2.     // 靜態(tài)變量 
  3.     public static String staticField = "子類靜態(tài)變量"; // 變量 
  4.     public String field = "子類變量"
  5.     // 靜態(tài)初始化塊 
  6.     static { 
  7.         System.out.println(staticField); 
  8.         System.out.println("子類靜態(tài)初始化塊"); 
  9.     } 
  10.     //public static TestA ta = new TestA(); 
  11.     // 初始化塊 
  12.     { 
  13.         System.out.println(field); 
  14.         System.out.println("子類初始化塊"); 
  15.     } 
  16.     // 構(gòu)造器 
  17.     public Test() { 
  18.         System.out.println("子類構(gòu)造器"); 
  19.     } 
  20.     public static void main(String[] args) { 
  21.         Test test = new Test(); 
  22.     } 
  23.  
  24. class Parent{ 
  25.  
  26.     public String field = "父類變量";// 變量 
  27.     public static String staticField = "父類靜態(tài)變量"; // 靜態(tài)變量 
  28.     // 靜態(tài)初始化塊 
  29.     static { 
  30.         System.out.println(staticField); 
  31.         System.out.println("父類靜態(tài)初始化塊"); 
  32.     } 
  33.     // 初始化塊 
  34.     { 
  35.         System.out.println(field); 
  36.         System.out.println("父類初始化塊"); 
  37.     } 
  38.     // 構(gòu)造器 
  39.     public Parent() { 
  40.         System.out.println("父類構(gòu)造器"); 
  41.     }    
剛才結(jié)果應(yīng)該是:
父類靜態(tài)變量
父類靜態(tài)初始化塊
子類靜態(tài)變量
子類靜態(tài)初始化塊
父類變量
父類初始化塊
父類構(gòu)造器
子類變量
子類初始化塊
子類構(gòu)造器
 
從結(jié)果看到,并不是父類完全初始化完后再進行子類的初始化,子類的靜態(tài)變量和靜態(tài)初始化塊的初始化是在父類的變量、初始化塊和構(gòu)造器初始化之前就完成了。
 
我們在main方法再創(chuàng)建一個對象,Test test2 = new Test();
大家就test2的初始化又如何?
 
為了好看,我們子類構(gòu)造器里加多行代碼System.out.println("***********");
輸出結(jié)果:
父類靜態(tài)變量
父類靜態(tài)初始化塊
子類靜態(tài)變量
子類靜態(tài)初始化塊
父類變量
父類初始化塊
父類構(gòu)造器
子類變量
子類初始化塊
子類構(gòu)造器
***********
父類變量
父類初始化塊
父類構(gòu)造器
子類變量
子類初始化塊
子類構(gòu)造器
***********


發(fā)現(xiàn)什么了?
靜態(tài)變量和靜態(tài)代碼塊只加載一次 。
 
 
總結(jié):
一、初始化優(yōu)先級:
1、靜態(tài)變量/靜態(tài)初始化塊)>(變量/初始化塊)>構(gòu)造器
2、父類>子類

二、靜態(tài)變量和靜態(tài)代碼塊只加載一次,因為它們是全局共享的
 
posted on 2012-07-28 12:45 tbwshc 閱讀(919) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品欧美日韩专区| 久久久久久9| 欧美 日韩 国产在线| 久久这里只精品最新地址| 欧美精品在线网站| 一本久道久久综合婷婷鲸鱼| 亚洲激情影院| 在线视频欧美一区| 午夜在线视频一区二区区别| 久久成人精品电影| 欧美大片在线观看一区二区| 欧美性事免费在线观看| 国内精品福利| 一区二区三区国产精品| 久久精品一区蜜桃臀影院 | 国产综合在线视频| 亚洲激情视频在线观看| 亚洲综合色婷婷| 免费在线观看日韩欧美| 99在线|亚洲一区二区| 久久精品二区三区| 欧美日韩国产成人在线91| 国产欧美日韩不卡免费| 亚洲精品中文字幕在线| 久久精品72免费观看| 亚洲人成网站影音先锋播放| 欧美一级二级三级蜜桃| 欧美日韩视频在线一区二区| 很黄很黄激情成人| 亚洲男人av电影| 亚洲第一精品夜夜躁人人躁| 午夜一区不卡| 国产精品久久久久永久免费观看| 亚洲国产人成综合网站| 久久久久一区| 亚洲欧美日韩一区在线| 欧美午夜久久久| 日韩亚洲精品电影| 欧美国产欧美综合| 久久精品国产亚洲高清剧情介绍| 欧美日韩视频在线第一区| 91久久精品美女高潮| 麻豆91精品| 久久九九全国免费精品观看| 国产精品一区二区三区观看| 亚洲一区二区影院| 亚洲日韩成人| 欧美精品久久一区| 亚洲另类自拍| 亚洲第一精品电影| 毛片基地黄久久久久久天堂 | 一本久道久久综合婷婷鲸鱼| 欧美a一区二区| 久久一二三四| 亚洲国产91| 欧美成人一品| 狂野欧美激情性xxxx欧美| 一区二区在线视频| 卡通动漫国产精品| 久久亚洲午夜电影| 老司机成人网| 欧美精品在线极品| 99综合电影在线视频| 亚洲清纯自拍| 欧美日韩精品免费看| 亚洲午夜精品久久久久久app| 亚洲伦理在线观看| 国产精品久久久久99| 欧美一区二区三区视频| 欧美一区二区啪啪| 亚洲国产精品v| 亚洲日本aⅴ片在线观看香蕉| 欧美激情一区二区在线| 在线视频一区观看| 亚洲免费伊人电影在线观看av| 国产精品一级二级三级| 久久欧美中文字幕| 欧美大秀在线观看| 亚洲欧美国产日韩中文字幕| 欧美一区二区三区四区夜夜大片| 在线播放日韩欧美| 亚洲另类视频| 国产一区二区三区日韩欧美| 欧美电影免费| 欧美性大战久久久久久久| 久久精品国产精品亚洲精品| 久久综合狠狠综合久久综合88| 亚洲精品字幕| 欧美一级大片在线免费观看| 亚洲精品国产品国语在线app| 99国产精品久久久久老师| 国产在线精品二区| 日韩视频永久免费观看| 国产日韩三区| 亚洲毛片在线观看.| 国产日韩欧美黄色| 亚洲激精日韩激精欧美精品| 国产欧美一区二区三区在线看蜜臀| 欧美aaaaaaaa牛牛影院| 国产精品免费区二区三区观看| 欧美~级网站不卡| 国产精品揄拍500视频| 亚洲高清资源| 国内成人精品2018免费看| 夜夜嗨av一区二区三区四季av| 一区免费观看| 亚洲淫性视频| 在线亚洲一区| 欧美大色视频| 免费一级欧美在线大片| 国产精品婷婷| 一区二区三区色| 亚洲精品日产精品乱码不卡| 久久福利资源站| 性欧美videos另类喷潮| 欧美欧美全黄| 91久久精品国产| 亚洲国产日韩欧美在线图片| 欧美在线网站| 久久精品国产2020观看福利| 欧美性色视频在线| 亚洲理论在线观看| 一区二区欧美日韩视频| 欧美顶级少妇做爰| 欧美激情一二三区| 久久综合色影院| 日韩亚洲国产精品| 男女视频一区二区| 欧美aⅴ一区二区三区视频| 国产一区二区丝袜高跟鞋图片| 亚洲午夜激情免费视频| 亚洲综合国产| 国产精品极品美女粉嫩高清在线 | 欧美成人精品影院| 欧美 日韩 国产在线| 亚洲国产高清一区二区三区| 久久阴道视频| 亚洲国产另类久久久精品极度| 亚洲国产精品久久久| 欧美成人亚洲成人| 亚洲免费观看高清完整版在线观看| 亚洲深夜福利网站| 国产精品啊啊啊| 午夜精品影院| 另类成人小视频在线| 亚洲黄色有码视频| 欧美区高清在线| 一本不卡影院| 久久gogo国模啪啪人体图| 国内不卡一区二区三区| 欧美成人国产一区二区| 日韩视频免费看| 欧美一区二区在线看| 伊人久久综合| 欧美久久久久久久久| 中日韩美女免费视频网址在线观看| 亚洲永久字幕| 黑人巨大精品欧美一区二区小视频| 久久久夜色精品亚洲| 亚洲精品综合| 久久精品国产亚洲aⅴ| 亚洲国产精品精华液2区45| 欧美日韩亚洲综合一区| 久久er精品视频| 亚洲精品一区二区在线| 久久国产手机看片| 日韩视频三区| 国内自拍亚洲| 欧美日韩在线视频一区二区| 欧美在线短视频| 99精品黄色片免费大全| 久久久久一区二区三区| 中文在线不卡视频| …久久精品99久久香蕉国产| 欧美体内she精视频| 久久一区二区三区av| 亚洲一区二区三区四区在线观看| 免费视频最近日韩| 久久国产一区二区| 亚洲一区在线直播| 亚洲人在线视频| 国产一区二区精品久久99| 欧美日韩国产小视频在线观看| 久久国产视频网站| 亚洲特级毛片| 亚洲精品免费在线播放| 美日韩丰满少妇在线观看| 欧美一级在线视频| 亚洲午夜羞羞片| 亚洲精品视频在线| 亚洲成色最大综合在线| 国产亚洲精久久久久久| 国产精品欧美风情| 欧美日韩国产一区| 亚洲福利电影| 亚洲巨乳在线| 久久高清福利视频| 亚洲一区二区高清| 日韩网站在线观看| 亚洲人成人77777线观看|