面對(duì)開(kāi)源的世界..
BlogJava
首頁(yè)
新隨筆
新文章
聯(lián)系
聚合
管理
posts - 188,comments - 176,trackbacks - 0
<
2008年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(13)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
(188)
Ajax(2)
Datestructure
DWR
Hibernate(5)
J2SE(5)
JavaScript
JavaServer(2)
JBS(22)
JSP/Servlet(13)
Junit(1)
Life(2)
Oracle(18)
protocol(1)
SEO
Spring(3)
SQLServer(7)
Struts(7)
UML(4)
Unix/Linux(11)
Windows(2)
WorkFlow(1)
XML(2)
互聯(lián)網(wǎng)產(chǎn)品(26)
網(wǎng)絡(luò)安全(3)
通信&政企產(chǎn)品(17)
通信業(yè)務(wù)(22)
需求分析(12)
隨筆檔案
(176)
2017年6月 (1)
2017年2月 (1)
2016年11月 (1)
2016年9月 (1)
2016年7月 (1)
2016年5月 (1)
2016年3月 (1)
2016年2月 (1)
2016年1月 (1)
2015年11月 (1)
2015年10月 (1)
2015年7月 (2)
2015年6月 (1)
2015年5月 (1)
2015年4月 (1)
2015年3月 (1)
2015年1月 (2)
2014年12月 (1)
2014年11月 (1)
2014年6月 (2)
2014年5月 (10)
2014年4月 (1)
2014年3月 (1)
2014年1月 (1)
2013年12月 (2)
2013年11月 (1)
2013年8月 (1)
2013年6月 (2)
2013年4月 (2)
2013年3月 (2)
2013年2月 (1)
2013年1月 (1)
2011年2月 (1)
2010年8月 (1)
2010年6月 (1)
2010年4月 (1)
2010年2月 (1)
2009年12月 (1)
2009年11月 (1)
2009年9月 (2)
2009年7月 (2)
2009年6月 (1)
2009年3月 (2)
2009年1月 (1)
2008年12月 (2)
2008年11月 (2)
2008年10月 (1)
2008年9月 (2)
2008年8月 (2)
2008年7月 (3)
2008年6月 (1)
2008年5月 (5)
2008年4月 (3)
2008年3月 (4)
2008年2月 (2)
2008年1月 (2)
2007年12月 (4)
2007年11月 (4)
2007年10月 (2)
2007年8月 (4)
2007年6月 (2)
2007年5月 (68)
強(qiáng)烈推薦
DBA Notes
JavaWorld
Java開(kāi)源大全
OperaMasks.org
Oracle專欄
OSWorkflow
PL/SQL專欄
UML軟件工程組織
XZC.Log
中間件技術(shù)論壇
俺的大巴
咖啡小駐
堅(jiān)持到底
大寶sodme
徽劍評(píng)點(diǎn)
韓小明
最新隨筆
1.?產(chǎn)品規(guī)劃
2.?需求分析和判斷
3.?談?wù)劗a(chǎn)品工作過(guò)程
4.?談?wù)劗a(chǎn)品工作中的項(xiàng)目管理
5.?產(chǎn)品重構(gòu)那些事
6.?產(chǎn)品設(shè)計(jì)觀
7.?產(chǎn)品修養(yǎng)
8.?前臺(tái) vs 中/后臺(tái)產(chǎn)品設(shè)計(jì)
9.?2015產(chǎn)品感悟
10.?前端產(chǎn)品設(shè)計(jì)筆記
11.?無(wú)規(guī)則,不平臺(tái)
12.?產(chǎn)品的生命周期體驗(yàn)
13.?產(chǎn)品軟技能
14.?平臺(tái)型產(chǎn)品的需求分析
15.?我所理解的產(chǎn)品思維
16.?平臺(tái)產(chǎn)品的需求溝通與評(píng)審
17.?平臺(tái)產(chǎn)品的競(jìng)品調(diào)研與業(yè)務(wù)分析
18.?C端產(chǎn)品的那些事
19.?我理解的互聯(lián)網(wǎng)產(chǎn)品經(jīng)理
20.?通信與互聯(lián)網(wǎng)產(chǎn)品工作感受
最新評(píng)論
1.?re: 面對(duì)需求,我們的產(chǎn)品修養(yǎng)?[未登錄](méi)
互聯(lián)網(wǎng)對(duì)產(chǎn)品人綜合素質(zhì)要求是比較高的
--linda
2.?re: 談?wù)勄芭_(tái)、中/后臺(tái)產(chǎn)品設(shè)計(jì)
產(chǎn)品的升級(jí)和更新?lián)Q代都是這樣的
--淘寶刷流量軟件
3.?re: 淺談需求分析
看看技術(shù)人員的工作blog 學(xué)習(xí)了 慢慢看起來(lái)
--ttt
4.?re: 2015產(chǎn)品感悟
大哥你的感悟真深邃。。。
--sqlyun
5.?re: PLSQL中顯式Cursor、隱式Cursor、動(dòng)態(tài)Ref Cursor
有點(diǎn)亂
--sfe
6.?re: 對(duì)session和cookie的一些理解[未登錄](méi)
session不能共享!!!!!!!!!!!!!
--jacky
7.?re: 前端產(chǎn)品設(shè)計(jì)筆記[未登錄](méi)
產(chǎn)品用戶體驗(yàn)很重要
--blog
8.?re: 前端產(chǎn)品設(shè)計(jì)筆記
@java論壇
贊同
--cheng
9.?re: 前端產(chǎn)品設(shè)計(jì)筆記
我覺(jué)得最重要的是用戶群是什么以及如何獲取用戶,把這個(gè)想清楚放到設(shè)計(jì)中才是成功的開(kāi)始
--java論壇
10.?re: 無(wú)規(guī)則,不平臺(tái)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--性感美女圖片
閱讀排行榜
1.?對(duì)session和cookie的一些理解(40884)
2.?PLSQL開(kāi)發(fā)筆記和小結(jié)(35768)
3.?ORACLE批量更新三種方法比較(11466)
4.?Oracle的悲觀鎖和樂(lè)觀鎖(8078)
5.?PLSQL中顯式Cursor、隱式Cursor、動(dòng)態(tài)Ref Cursor(7858)
評(píng)論排行榜
1.?對(duì)session和cookie的一些理解(30)
2.?Struts+Hibernate實(shí)現(xiàn)shopcart(16)
3.?PLSQL開(kāi)發(fā)筆記和小結(jié)(14)
4.?BaseAction的java多態(tài)思考(11)
5.?UML中的用例圖分析(10)
對(duì)象初始化流程梳理
類Person和子類Son,體現(xiàn)對(duì)象初始化流程的代碼:
public
class
Person
{
Bow b1
=
new
Bow(
1
);
static
{
System.out.println(
"
Person static
static塊1
"
);
}
{
System.out.println(
"
Person hello
非static塊1
"
);
}
Bow b2
=
new
Bow(
2
);
static
Bow b3
=
new
Bow(
3
);
Person()
{
System.out.println(
"
Person
Person類的構(gòu)造器
"
);
}
{
System.out.println(
"
Person hello
非static塊2
"
);
}
static
{
System.out.println(
"
Person static
static塊2
"
);
}
}
class
Son
extends
Person
{
Bow b4
=
new
Bow(
4
);
static
{
System.out.println(
"
Test static
static塊1
"
);
}
{
System.out.println(
"
Test hello1
非static塊1
"
);
}
Bow b5
=
new
Bow(
5
);
static
Bow b6
=
new
Bow(
6
);
Son()
{
System.out.println(
"
Test
Test類的構(gòu)造器
"
);
}
{
System.out.println(
"
Test hello2
非static塊2
"
);
}
static
{
System.out.println(
"
Test static2
static塊2
"
);
}
public
static
void
main(String[] args)
{
System.out.println(
"
main
"
);
new
Son();
}
}
class
Bow
{
Bow(
int
m)
{
System.out.println(
"
Bow(
"
+
m
+
"
)
"
);
}
}
執(zhí)行結(jié)果:
Person static...static塊1
Bow(3)
Person static...static塊2
Test static...static塊1
Bow(6)
Test static2...static塊2
main...
Bow(1)
Person hello...非static塊1
Bow(2)
Person hello...非static塊2
Person...Person類的構(gòu)造器
Bow(4)
Test hello1...非static塊1
Bow(5)
Test hello2...非static塊2
Test...Test類的構(gòu)造器
從上面結(jié)果,可以總結(jié)出JAVA對(duì)象初始化的流程:
【1】父類static塊和父類static屬性(兩者的執(zhí)行先后順序依據(jù)它們?cè)陬愔芯唧w位置由上至下)
【2】子類static塊和子類static屬性(兩者的執(zhí)行先后順序依據(jù)它們?cè)陬愔芯唧w位置由上至下)
【3】執(zhí)行main方法中new關(guān)鍵字之前的代碼塊
【4】父類非static塊執(zhí)行和父類非static屬性(兩者的執(zhí)行先后順序依據(jù)它們?cè)陬愔芯唧w位置由上至下,如果屬性為實(shí)例類型,則執(zhí)行該實(shí)例所在類的非static塊和非static屬性,再執(zhí)行該類的構(gòu)造器,即[4][5]步驟)
【5】父類構(gòu)造器(完成非static
屬性初始值
的設(shè)置)
【6】子類非static塊執(zhí)行和子類非static屬性(兩者的執(zhí)行先后順序依據(jù)它們?cè)陬愔芯唧w位置由上至下,如果屬性為實(shí)例類型,則執(zhí)行該實(shí)例所在類的非static塊和非static屬性,再執(zhí)行該類的構(gòu)造器,即[6][7]步驟)
【7】子類構(gòu)造器(完成非static屬性初始值設(shè)置,如果在子類構(gòu)造器執(zhí)行前就返回該非static屬性,則該非static屬值為
屬性默認(rèn)值
)
注:
針對(duì)第【7】點(diǎn)“子類構(gòu)造器執(zhí)行前就返回該非static屬性”,具體可以見(jiàn)下例:
public
class
ParentObjectInit
{
public
void
test()
{
}
public
ParentObjectInit()
{
test();
}
}
class
ChildObjectInit
extends
ParentObjectInit
{
private
int
instanceValue
=
20
;
public
void
test()
{
System.out.println(
"
instance1 value :
"
+
instanceValue);
}
public
static
void
main(String[] args)
{
new
ChildObjectInit();
}
}
這段代碼的執(zhí)行結(jié)果:
instance1 value is: 0 因?yàn)閚ew 子類ChildObjectInit時(shí),會(huì)先初始化父類ParentObjectInit,繼而調(diào)用父來(lái)構(gòu)造器器,接著執(zhí)行此構(gòu)造器中的test()方法,基于多態(tài)性,會(huì)轉(zhuǎn)而調(diào)用子類的test()方法執(zhí)行子類test()方法代碼體,打印出instanceValue的屬性默認(rèn)值。(因?yàn)榇藭r(shí)打印instanceValue值后,父類構(gòu)造器才執(zhí)行結(jié)束返回,根本還沒(méi)輪到子類的初始化工作和子類構(gòu)造器的執(zhí)行。)
posted on 2008-05-24 21:26
cheng
閱讀(2201)
評(píng)論(3)
編輯
收藏
所屬分類:
JBS
FeedBack:
#
re: 對(duì)象初始化流程梳理
2008-05-25 15:12 |
隔葉黃鶯
1. 初始化分為為的初始化和實(shí)例的初始化
2. 每個(gè)類在 JVM 中都對(duì)應(yīng)一個(gè) Class 實(shí)例
3. 父類實(shí)例是作為子例的部分存在的 (Class 實(shí)例之間也存在父子關(guān)系)
4. 初始化實(shí)例之前要初始化類
基于以上幾點(diǎn)就可以理解以下初始化順序
1. 父類靜態(tài)屬性、靜態(tài)類 (父類的初始化,對(duì)應(yīng) JVM 方法 cinit())
2. 子類的靜態(tài)屬性、靜態(tài)類 (子類的初始化,對(duì)應(yīng) JVM 方法 cinit())
3. 父類的實(shí)例構(gòu)造,實(shí)例變量初始化 (實(shí)例變量初始實(shí)際會(huì)放到 JVM 的 init() 中)
4. 子類的實(shí)例構(gòu)造,實(shí)例變量初始化 (也是對(duì)應(yīng)的 init() 方法)
關(guān)于類的 Class 實(shí)例,可以回想 Log 的聲明
Log log = LogFactory.getLog(TestClass.class);
也就是無(wú)論你,new 多少個(gè) TestClass 實(shí)例,它們對(duì)應(yīng)著同一個(gè) TestClass 的 Class 實(shí)例,也就是為什么很多地方把靜態(tài)方法、靜態(tài)屬性說(shuō)成是類的方法、類的屬性,其實(shí)質(zhì)就是在 JVM 中存在同一個(gè) Class 實(shí)例的方法、屬性,也就能保持一致性。
關(guān)于父類實(shí)例是作為子類的一部分存在,可借鑒 C++ 或是有面向?qū)ο筇匦缘?C 函數(shù)庫(kù)(如 gtk),來(lái)理解,父類實(shí)例會(huì)居于子類實(shí)例的首地址,所以對(duì)子類轉(zhuǎn)型成父類實(shí)例時(shí),它是安全的,因?yàn)槭椎刂芬粯拥模詮氖椎刂返?size(父類)就是父類實(shí)例地址空間,到size(子類)就是子類實(shí)例的地址空間。
回復(fù)
更多評(píng)論
#
re: 對(duì)象初始化流程梳理
2008-05-26 14:32 |
cheng
看過(guò)樓上朋友見(jiàn)解,體會(huì)又深一層,謝謝。
回復(fù)
更多評(píng)論
#
re: 對(duì)象初始化流程梳理
2008-05-26 14:32 |
Happy漫步者
不錯(cuò) 收藏了
回復(fù)
更多評(píng)論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
相關(guān)文章:
對(duì)象初始化流程梳理
static、this、super、final用法
String對(duì)象的理解進(jìn)行時(shí)
對(duì)象初始化問(wèn)題引發(fā)的思考
在Java應(yīng)用程序中訪問(wèn)USB設(shè)備
Java中的類反射機(jī)制
Java代碼編寫(xiě)30條建議
Java動(dòng)態(tài)的程序設(shè)計(jì)
為什么Java中繼承是有害的
對(duì)象引用對(duì)GC的影響
Copyright ©2025 cheng Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
羞羞漫画页面免费入口欢迎你
|
免费国产在线观看老王影院
|
国产伦精品一区二区免费
|
蜜芽亚洲av无码一区二区三区
|
成人毛片免费播放
|
成人无码区免费A片视频WWW
|
免费观看激色视频网站(性色)
|
免费视频成人手机在线观看网址
|
十八禁视频在线观看免费无码无遮挡骂过
|
国产免费内射又粗又爽密桃视频
|
在线观看免费人成视频色
|
国产成人免费a在线视频色戒
|
免费视频淫片aa毛片
|
大学生一级特黄的免费大片视频
|
成年女人午夜毛片免费视频
|
亚洲AV网站在线观看
|
日韩免费视频播播
|
免费人成无码大片在线观看
|
国产AV无码专区亚洲AVJULIA
|
午夜亚洲AV日韩AV无码大全
|
久久精品国产亚洲AV无码麻豆
|
亚洲精品国产第1页
|
亚洲一区二区久久
|
亚洲人成人伊人成综合网无码
|
久久亚洲精品高潮综合色a片
|
中文成人久久久久影院免费观看
|
国产精品小视频免费无限app
|
韩国免费A级毛片久久
|
国产麻豆一精品一AV一免费
|
在线精品免费视频无码的
|
亚洲人成网亚洲欧洲无码久久
|
久久精品亚洲日本佐佐木明希
|
久久精品九九亚洲精品
|
黄色三级三级免费看
|
在线观看永久免费
|
免费黄色小视频网站
|
亚洲精品成人av在线
|
国产.亚洲.欧洲在线
|
污网站在线观看免费
|
大地资源中文在线观看免费版
|
最近中文字幕免费mv视频7
|