java最新基礎知識面試題
1、static關鍵字什麼意思? java中是否可以覆寫一個private或是static的方法?
「static」表示一個成員變數或是成員方法可以在沒有所屬類別的實例變數的情況下存取。
java中static方法不能被覆寫,因為方法覆寫是基於執行時間動態綁定的,而static方法是編譯時靜態綁定的。 static方法與類別的任何實例都不相關。
java中不可以覆寫private方法。因為private修飾的變數和方法只能在目前類別中使用,如果是其他類別繼承當前類,繼承類別中是不能存取到private變數和方法的
2、能否在static環境中訪問訪問非static變數?
不能。 static變數是屬於類別的。當類別被虛擬機器載入時,會對static變數進行初始化。非static變數是屬於實例的,這個時候實例還沒被創建,編譯器會報錯
3、java基本型,什麼是自動拆裝箱?
基本類型:byte,short,int,float,long,double,boolean,char
自動裝箱:是java編譯器在基本類型和對應的物件包裝類型之間做一個轉化。例如把int轉化為Integer等等。反之為自動拆箱
4、java的方法覆寫overriding和方法重載overloading是什麼意思?
java中方法重載發生在同一個類別中有兩個或多個方法名字相同但是參數不同的情況。方法覆寫是子類別重新定義父類別的方法。方法覆寫必須有相同的方法名,參數清單和傳回型別
5、java中,什麼是建構方法?什麼是構造方法重載?什麼是複製構造方法?
當新物件被建立時,建構方法會被呼叫。每一個類別都有一個建構方法,當沒有提供類別建構函式時,編譯器會自動建立一個預設的建構方法
java中建構方法重載和方法重載很相似。可以為一個類別建立多個建構方法,每一個建構方法必須有它自己唯一的參數清單
#6、java支援多繼承嗎?
不支援。只能支援單繼承,即一個類別只有一個父類別。可以用implements實作多個介面擴充
7、介面與抽象類別的差異
1.介面中所有方法隱含都是抽象的。而抽象類別則可以同時包含抽象和非抽象的方法
2.介面中宣告的變數預設都是final,而抽象類別可以包含非final的變數
3.介面中成員函數預設都會public。抽象類別的成員函數可以是private,protected或public
4.類別可以不實作抽象類別和介面宣告中的所有方法,這種情況下,類別也必須宣告為抽象的
8、jdk與jre差別是什麼?
java執行環境(jre)是將要執行的java程式的java虛擬機,同時也包含了執行applet所需的瀏覽器外掛程式。 java開發工具包(jdk)是完整的java軟體開發包,包含了jre,編譯器和其他工具(例如:javadoc,java調試器),可以讓開發者開發,編譯,執行java應用程式
9、什麼是值傳遞和引用傳遞
值傳遞是對基本類型變數而言,傳遞是該變數的副本,改變副本不會影響原始變數
引用傳遞一般是對於物件型變數而言,傳遞的是該物件位址的副本,改變副本,會影響原變數
10、程式和執行緒的區別?
進程是執行著的應用程序,執行緒是進程內部的執行序列。一個行程可以有多個執行緒
區別:
1.位址空間和其他資源:行程之間相互獨立。同一個行程的各個執行緒間共享。某進程內的執行緒在其他行程不可見
2。通訊:進程之間通訊ipc,執行緒間可以直接讀寫進程資料段(如全域變數)來進行通訊--需要進程同步與互斥手段的輔助,以確保資料的一致性
#3 .調度與切換:執行緒之間上下文切換比行程上下文切換快的多
4.在多執行緒os中,行程不是可執行的實體
11、同步方法和同步程式碼區塊的區別
同步方法預設是用this或當前類別物件作為鎖定
同步程式碼區塊可以選擇以什麼來加鎖,比同步方法更細粒度。我們可以選擇只同步會發生同步問題的部分程式碼而不是整個方法
12、死鎖
死鎖是值多個執行緒因資源競爭而造成的一種僵局,若無外力作用,這些線程都無法向前推進。產生死鎖的4個必要條件
1.互斥條件
2.不剝奪條件
3.請求與保持條件
#4.循環等待
13、如何確保N個執行緒可以存取N個資源同時又不導致死鎖?
一種非常簡單的避免死鎖的方式:指定取得鎖定的順序,並強制執行緒依照指定的順序取得鎖定。因此如果所有的執行緒都是以同樣的順序加鎖和釋放鎖,就不會出現死鎖
14、java集合類別框架的基本介面有哪些?
Collection,Set,List,Map
15、HashMap工作原理
hashMap是以鍵值對的形式儲存。 hashmap需要一個hash函數,它使用hashCode和equals方法來新增和檢索元素到集合/從集合。當呼叫put時,HashMap會計算key的hash值,然後把鍵值對儲存在集合中適當的索引上。如果key已經存在,value會被更新成新值。 hashMap的一些重要的特性是它的容量,負載因子和擴容極限
16、hashcode和equals重要性體現在什麼地方
hashmap透過hashcode和equals確定鍵值對索引
17、hashmap和hashtable區別?
hashmap允許鍵和值是null,hashtable不允許鍵或值為null
hashtable同步,而hashmap不是
php中文網,大量的免費Java入門教學,歡迎線上學習!
以上是java最新基礎知識面試題的詳細內容。更多資訊請關注PHP中文網其他相關文章!