當前位置:
首頁 >
一个关于static块的编译面试题
發布時間:2024/3/13
51
豆豆
生活随笔
收集整理的這篇文章主要介紹了
一个关于static块的编译面试题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先先看一下題目
關于以下application的說明,正確的是( ) 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行不能通過編譯,因為缺少方法名和返回類型 B、9行不能通過編譯,因為只能有一個靜態初始化器 C、編譯通過,執行結果為:x=5 D、編譯通過,執行結果為:x=3這個題目答案為C??
? 一開始感覺為什么第九行會執行呢? ?因為main方法都執行過了? ?后來經過百度前人解釋才明白?
總結來說也就一句話
類加載的時候,先加載靜態初始化塊,再加載靜態方法
類只要一加載就會一次先加載靜態屬性和靜態代碼塊然后再加載靜態方法 所以main再里面是最后執行的
還有一個同義解釋? 那個容易理解看哪個就ok了
自由塊(就是里面的static塊)是類加載的時候就會先被先后按順序執行的? 然后再加載方法
如果還有偏頗 請大佬留言給小弟解答
總結
以上是生活随笔為你收集整理的一个关于static块的编译面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 图片合成 工具类_Java实现
- 下一篇: hcl出现“Invalid cipher