本博客 貓叔的博客,轉載請申明出處
前言
本系列爲貓叔綜合整理的Java面試題系列,如有雷同不勝榮幸。
Java與C/C++的差異?
- 1、java爲解釋性語言、而C/C++爲編譯型語言。
- 2、java爲面嚮對象語言,C++則兼具面向過程和麪向過程編程的特點。
- 3、就垃圾回收而言,C++中有析構函數,而Java則是finalize()方法。
- 4、Java提供了JDBC、分佈式對象的RMI等庫。
爲什麼需要public static void main(String[] args)這個方法
- 1、public權限修飾符,任何類、對象均可訪問;
- 2、static標記爲靜態方法,存儲在靜態存儲區;
- 3、main是JVM識別的特殊方法名;
- 4、args爲開發人員在命令行狀態下雨程序交互提供的手段。
- 5、即便如此,main函數也不是最先執行的方法!!!
如何在main函數之前輸出“HELLO WORLD!”
由於靜態塊在類被加載時就會被調用,因此可以在main()方法執行前,利用靜態塊實現輸出“HELLO WORLD”的功能。
Java程序初始化的順序是怎麼樣的?
- 1、靜態對象(變量)優先於非靜態對象(變量)的初始化,其中,靜態對象只初始化一次,而非靜態變量可以初始化多次;
- 2、父類優先於子類進行初始化;
- 3、按照成員變量的定義順序進行初始化
Java作用域
作用域與可見性 | 當前類 | 同一package | 子類 | 其他package |
---|---|---|---|---|
public | YES | YES | YES | YES |
private | YES | NO | NO | NO |
protected | YES | YES | YES | NO |
default | YES | YES | NO | NO |
一個java文件可否定義多個類
可以定義多個類,但是最多只能有一個類被public修飾,並且這個類的類名與文件名相同。
公衆號:Java貓說
現架構設計(碼農)兼創業技術顧問,不羈平庸,熱愛開源,雜談程序人生與不定期乾貨。