case Interview
first part
-
1、一個".java"源文件中是否可以包括多個類(不是內部類)?有什麼限制?
可以。 1、如果有公開類,只能有一個類的訪問權限爲public,且此類名爲.java的文件名。 2、無公開類,符合命名規則即可。 註釋: 1、一個編譯單元(*.java文件)只允許一個public對外出口,若有兩個public文件時,將會引起歧義(將不能爲編譯單元,同一文件將會編譯兩次),導致報錯。 2、因爲public類是公共訪問的,jvm運行時並不是把所有類都加載至內存,當遇到import的時候,纔會根據路徑(包名)去編譯*.java文件。public類名與文件名一致,便於尋找,開銷減少。 3、若同一.java有非public類,將視爲這些類爲支持public類的輔助類,畢竟不是public,無法對外。 4、一個".java"源文件中包括多個類,編譯結束將會產生多個.class文件。 5、main方法不一定要在public修飾了的類下才能執行(可以爲輔助類)。但是main方法必須是public修飾的
-
2、Java有沒有goto?
有,但沒用,作爲關鍵字進行保留。
-
3、說說&和&&的區別。
1、&和&&用作邏輯與的運算,表示邏輯與(and),當運算符兩邊的表達式的結果都爲true時,整個運算結果才爲true,否則,只要有一方爲false,則結果爲false。 2、雙與還具有短路功能,雙與運算時,當雙與左邊爲假時,則不再計算雙與右邊的表達式了。雙與更爲高效,雙與用的較多。
-
4、在JAVA中如何跳出當前的多重嵌套循環?
通過循環嵌套前但標籤+break/continue
-
5、switch語句能否作用在byte上,能否作用在long上,能否作用在String上?
1、在switch(expr1)中,expr1只能是一個整數表達式【byte,short,char,int】或者枚舉常量(更大字體),整數表達式可以是int基本類型或Integer包裝類型,由於,byte,short,char都可以隱含轉換爲int,所以,這些類型以及這些類型的包裝類型也是可以的。顯然,long和String類型都不符合switch的語法規定,並且不能被隱式轉換成int類型,所以,它們不能作用於swtich語句中【JDK1.7以前的版本】。 2、由於在JDK7.0中引入了新特性,所以switch語句可以接收一個String類型的值,String可以作用在switch語句上。