參考文獻(xiàn):《Java瘋狂講義》(第三版)
局部變量的初始化和內(nèi)存的運(yùn)行機(jī)制
知識(shí)點(diǎn):
棧內(nèi)存的變量無需系統(tǒng)垃圾回收,往往隨方法或者內(nèi)存塊的運(yùn)行結(jié)束而結(jié)束。
知識(shí)點(diǎn):
成員變量作用域擴(kuò)到到類存在范圍或?qū)ο蟠嬖诜秶炜悖@種范圍的擴(kuò)大有兩個(gè)害處:
1亿乳、增大了變量的生存時(shí)間访惜,這將導(dǎo)致更大的內(nèi)存開銷溢陪;
2、增大了變量的作用域齐疙,這不利于提高程序的內(nèi)聚性膜楷;
考慮使用成員變量的情形:
1、如果需要定義的變量用于描述某個(gè)類或某個(gè)對(duì)象的固有信息贞奋;
2赌厅、如果在某個(gè)類中需要以一個(gè)變量來保存該類或者實(shí)例運(yùn)行時(shí)的狀態(tài)信息;
3忆矛、如果某個(gè)信息需要在某個(gè)類的多個(gè)方法之間進(jìn)行共享察蹲;
知識(shí)點(diǎn):
Java三大特征:繼承请垛、封裝、多態(tài)
多態(tài):
Java引用變量有兩個(gè)類型:一個(gè)是編譯時(shí)類型洽议,一個(gè)是運(yùn)行時(shí)類型宗收。編譯時(shí)類型由聲明該變量的類型決定,運(yùn)行時(shí)類型由實(shí)際賦給該變量的對(duì)象決定亚兄。如果編譯時(shí)類型和運(yùn)行時(shí)類型不一致混稽,就可以出現(xiàn)所謂的多態(tài)。
類的第四種成員變量——初始化塊
初始化塊只在創(chuàng)建Java對(duì)象時(shí)隱式執(zhí)行审胚,而在執(zhí)行構(gòu)造器之前執(zhí)行
靜態(tài)初始化塊
系統(tǒng)在類初始化階段執(zhí)行靜態(tài)初始化塊匈勋,而不是創(chuàng)建對(duì)象時(shí)才執(zhí)行。因此靜態(tài)初始化總是比普通初始化先執(zhí)行膳叨。