2018年JAVA面試題整理(1)--基礎
阿新 • • 發佈:2018-12-25
最近個人也在準備找工作的事情!自己整理了一些JAVA面試題供大家參考,大家一起努力,找到一份好工作!
如果大家還有一些基礎的面試題,可以評論給我!我做整理。謝謝大家分享。後續會提供比較難得面試題。Java面向物件的特徵是什麼三大特徵是:封裝、繼承和多型。(問到這些儘量回答出其含義 封裝是指將某事物的屬性和行為包裝到物件中,這個物件只對外公佈需要公開的屬性和行為,而這個公佈也是可以有選擇性的公佈給其它物件。在java中能使用private、protected、public三種修飾符或不用(即預設defalut)對外部物件訪問該物件的屬性和行為進行限制。(這裡又引出一個問題:java中修飾符作用域 )
一、要有繼承;
二、要有重寫;
三、父類引用指向子類物件。
多型是指父物件中的同一個行為能在其多個子物件中有不同的表現。也就是說子物件可以使用重寫父物件中的行為,使其擁有不同於父物件和其它子物件的表現,這就是overriding(重寫)。
多型則是體現在overriding(重寫)上,而overload(過載)則不屬於面向物件中多型的範疇,因為overload(過載)概念在非面向物件中也存在。overriding(重寫)2.對於隨機訪問get和set,ArrayList覺得優於LinkedList,因為LinkedList要移動指標。
3.對於新增和刪除操作add和remove,LinedList比較佔優勢,因為ArrayList要移動資料。 Arraylist與LinkedList預設空間是多少
ArrayList 初始化大小是 10 (如果你知道你的arrayList 會達到多少容量,可以在初始化的時候就指定,能節省擴容的效能開支) linkedList 是一個雙向連結串列,沒有初始化大小,也沒有擴容的機制,就是一直在前面或者後面新增就好。
靜態變數和例項變數的區別靜態變數是被static修飾符修飾的變數,也稱為類變數,它屬於類,不屬於類的任何一個例項物件,一個類不管建立多少個例項物件,靜態變數在記憶體中有且僅有一個拷貝;靜態變數可以實現讓多個物件共享記憶體。例項變數必須依存於某一例項物件,需要先建立例項物件,然後通過例項物件才能訪問到它。
sleep方法和wait方法有什麼區別?sleep方法是Thread類的靜態方法,讓呼叫執行緒進入休眠狀態,同時將執行機會讓給其他執行緒,等到休眠時間結束後執行緒進入就緒狀態,搶佔CPU獲取執行機會。但是,如果當前執行緒擁有鎖,Thread.sleep不會讓執行緒釋放鎖。wait方法是Object類的方法,當一個執行緒執行到wait方法時,它就進入到一個和該物件相關的等待池,同時釋放物件的鎖,使其它執行緒能夠訪問,需要通過notify、notifyAll方法來喚醒等待的執行緒。
== 和equals的區別比較基本資料型別時,== 和equal 效果一樣,對於引用物件的比較,equals 比較的是值,==比較的是記憶體地址。