一个关于static块的编译面试题
生活随笔
收集整理的這篇文章主要介紹了
一个关于static块的编译面试题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
首先先看一下題目
關(guān)于以下application的說(shuō)明,正確的是( ) 1. class StaticStuff 2. { 3.????????????????? static int x=10; 4.????????????????? static { x+=5;} 5.????????????????? public static void main(String args[ ]) 6.????????????????? { 7.????????????????? System.out.println(“x=” + x); 8.????????????????? } 9.????????????????? static { x/=3;} 10.?? } A、4行與9行不能通過(guò)編譯,因?yàn)槿鄙俜椒头祷仡愋? B、9行不能通過(guò)編譯,因?yàn)橹荒苡幸粋€(gè)靜態(tài)初始化器 C、編譯通過(guò),執(zhí)行結(jié)果為:x=5 D、編譯通過(guò),執(zhí)行結(jié)果為:x=3這個(gè)題目答案為C??
? 一開(kāi)始感覺(jué)為什么第九行會(huì)執(zhí)行呢? ?因?yàn)閙ain方法都執(zhí)行過(guò)了? ?后來(lái)經(jīng)過(guò)百度前人解釋才明白?
總結(jié)來(lái)說(shuō)也就一句話
類加載的時(shí)候,先加載靜態(tài)初始化塊,再加載靜態(tài)方法
類只要一加載就會(huì)一次先加載靜態(tài)屬性和靜態(tài)代碼塊然后再加載靜態(tài)方法 所以main再里面是最后執(zhí)行的
還有一個(gè)同義解釋? 那個(gè)容易理解看哪個(gè)就ok了
自由塊(就是里面的static塊)是類加載的時(shí)候就會(huì)先被先后按順序執(zhí)行的? 然后再加載方法
如果還有偏頗 請(qǐng)大佬留言給小弟解答
總結(jié)
以上是生活随笔為你收集整理的一个关于static块的编译面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 图片合成 工具类_Java实现
- 下一篇: hcl出现“Invalid cipher