Java基礎高階面試題整理總結
本部落格面試題大多參考駱昊的部落格,再加上我進行技術培訓的時候整理的面試題
想要檢視更多原理性的知識,請到原博檢視https://blog.csdn.net/jackfrued/article/details/44931137#comments
1、面向物件的特徵有哪些方面?
1)抽象:抽象是將一類物件的共同特徵總結出來構造類的過程
2)繼承:繼承是從已有的類中得到繼承資訊建立新類的過程
3)封裝:封裝是把資料和操作資料的方法繫結起來,只能通過已定義的介面去訪問
4)多型性:多型性是指允許不同子型別的物件對同一訊息作出不同的響應,多型性分為編譯時的多型性(方法過載)和執行時的多型性(方法重寫)。要實現多型要做三件事情:
2、方法重寫和方法過載的區別
方法重寫(override):子類中出現與父類簽名相同的方法,訪問修飾符要高於父類,返回值型別,引數列表都相同
方法過載(overlord):一個類內部或子類中出現兩個及兩個以上方法名相同,引數列表不同的方法(返回值、引數列表無所謂)
3、訪問修飾符
public:當前類、同包、子類、其他包
protected:當前類、同包、子類
default:當前類、同包不寫訪問修飾符時預設的
friendly:當前類、同包
private:當前類
4、String是最基本的資料型別嗎?
不是。Java中最基本的資料型別有8個: short16、long64
除了最基本的資料型別,其他的都是引用型別,String屬於引用型別
5、float f=3.4是否正確?
不正確。3.4是雙精度數(double),將double型賦值給浮點型屬於下轉型,會造成精度缺失,因此需要強制轉換float f =(float)3.4;或者寫成float f=3.4F;
6、short s1 = 1; s1 = s1 + 1;有錯嗎?short s1 = 1; s1 += 1;有錯嗎?
前者錯誤,後者正確。對於short s1 = 1; s1 = s1 + 1;由於1是int型別,因此s1+1
7、Java有沒有goto?
goto是java中的保留字,在目前版本的Java中沒有使用。
8、基本資料型別各種對應的包裝型別(即引用資料型別)是什麼?有什麼區別?
基本資料型別:short、long、int、double、float、char、byte、boolean
對應包裝型別:Short、Long、Integer、Double、Float、Character、Byte、Boolean
Java是面向物件程式語言,為了程式設計方便引入了基本資料型別,為了能將這些基本資料型別當成物件操作,Java為每一個基本資料型別都引入了對應的包裝型別,從Java 5開始引入了自動裝箱/拆箱機制,使得兩者可以相互轉換。
自動裝箱拆箱示例:
class AutoUnboxingTest {
public static void main(String[] args) {
Integer a = new Integer(3);
Integer b = 3;// 將3自動裝箱成Integer型別
int c = 3;
System.out.println(a == b); // false 兩個引用沒有引用同一物件
System.out.println(a == c); // true a自動拆箱成int型別再和c比較
}
}
面試題舉例:
public class Test03 {
public static void main(String[] args) {
Integer a = 3;
Integer b = 3;
Integer a1 = 150;
Integer b1 = 150;
Integer a2 = new Integer(3);
Integer b2 = 3;
System.out.println(a==b);//true
System.out.println(a1==b1);//false
System.out.println(a2==b2);//false
}
}
註解:如果整型字面量的值在-128到127之間,那麼自動裝箱時不會new新的Integer物件,而是直接引用常量池中的Integer物件,所以上面的面試題中a==b的結果是true,而a1==b1的結果是false
9、&與&&的區別
兩者都是要求運算子的兩端的布林值都是true,整個表示式的值才是true,但是&&是短路運算,如果左邊表示式的值為false,則右邊表示式會被直接短路掉
應用:
在驗證使用者登入時判定使用者名稱不是null也不是空字串,應當寫成username != null &&!username.equals(""),二者的順序不能交換,更不能用&運算子,因為第一個條件如果不成立,根本不能進行字串的equals比較,否則會產生NullPointerException異常
10、解釋記憶體中的棧(stack)、堆(heap)和方法區(method area)的用法
棧:基本資料型別的變數,物件的引用,函式呼叫的現場(每個執行緒包含一個棧區,資料私有,其他棧不能訪問);
堆:new關鍵字和構造器建立的物件,堆是垃圾收集器管理的主要區域(被所有執行緒共享);
方法區:儲存、常量、靜態static變數、JIT編譯器編譯後的程式碼、已經被JVM載入的類資訊等資料;程式中的字面量(literal)如直接書寫的100、"hello"和常量都是放在常量池中,常量池是方法區的一部分(方法區被所有執行緒共享)
棧、堆、方法區不存在包含關係
舉例說明:
String str = new String("hello");
其中str放在棧中,用new創建出來的字串放在堆中,而hello這個字面量放在方法區中
11、switch表示式的作用型別
Java5以前:char、byte、int、short
Java5以後:引入列舉型別enum
Java7以後:在以前的基礎上引入了String型別
12、用最有效率的方法計算2乘以8
2<<3
左移3位相當於乘以2的3次方,右移3位相當於除以2的3次方
13、陣列有沒有length()方法?String有沒有length()方法?
陣列沒有length()方法,有length屬性。String有length()方法。在JavaScript中獲得字串長度是通過length屬性得到的,不要弄混。
14、在Java中,如何跳出當前的多重巢狀迴圈?答:在最外層迴圈前加一個標記如A,然後用break A;可以跳出多重迴圈
15、continue與break的區別
continue:跳出本次迴圈
break:跳出當前迴圈
16、構造器是否可以被重寫
構造器不能被繼承,因此不能被重寫,但是可以被過載
17、兩個物件值相同,equals方法返回true,但卻可有不同的hashcode,這句話對不對?
不對。如果兩個物件相同(equals方法返回true),那麼它們的hashCode值一定要相同;(2)如果兩個物件的hashCode相同,它們並不一定相同
18、是否可以繼承String類?
String類是final類,不可以被繼承
19、當一個物件被當作引數傳遞到一個方法後,此方法可改變這個物件的屬性,並可返回變化後的結果,那麼這裡到底是值傳遞還是引用傳遞?
是值傳遞,Java語言的方法呼叫只支援引數的值傳遞,當一個物件例項作為一個引數被傳遞到方法中時,引數是對該物件的引用,物件的屬性可以在被呼叫過程中被改變。
20、String和StringBuilder、StringBuffer的區別?
String:String一旦賦值或例項化後就不可更改,如果賦予新值將會重新開闢記憶體地址進行儲存
StringBuffer、StringBuilder類改變字串值時只是在原有物件的儲存的記憶體地址上進行連續操作,減少了資源的開銷,兩者的區別是:
StringBuffer:執行緒安全的,同步的,效率比較低,jdk1.0之後出現
StringBuilder:執行緒不安全的,不同步的,效率比較高,jdk1.5之後出現
面試題舉例:
1)什麼情況下用+運算子進行字串連線比呼叫StringBuffer/StringBuilder物件的append方法連線字串效能更好?
答:當常量
2)請說出下面程式的輸出
public static void main(String[] args) {
String s1 = "Programming";
String s2 = new String("Programming");
String s3 = "Program";
String s4 = "ming";
String s5 = "Program" + "ming";
String s6 = s3 + s4;
System.out.println(s1 == s2);//false
System.out.println(s1 == s5);//true為什麼?記憶體解釋
System.out.println(s1 == s6); //false 為什麼?記憶體解釋
System.out.println(s1 == s6.intern());//true 常量池中已有"Programming",指向同一地址
System.out.println(s2 == s2.intern());//false 一個在堆記憶體中,一個在常量池中
}
註解:String物件的intern方法會得到字串物件在常量池中的引用,如果常量池中沒有對應的字串,則該字串將被新增到常量池中,然後返回常量池中字串的引用
21、描述一下JVM載入class檔案的原理機制
JVM中類的裝載是由類載入器和他的子類來實現的,由於Java的跨平臺性,經過編譯的Java源程式並不是一個可執行的程式,而是一個或多個類檔案,類的載入把類的.class檔案中的資料讀入到記憶體中,然後產生與所載入類對應的class物件,載入完成後,class物件還不完整,所以此時的類還不可用,最後JVM對類進行初始化,包括:a.如果類存在直接的父類,並且這個類還沒有被初始化,那麼就先初始化父類;b.如果類中存在初始化語句,就依次執行這些初始化語句
22、char型變數能不能儲存一箇中文漢字,為什麼?
能,因為Java中使用的編碼是Unicode,一個char型別佔兩個位元組(16byte),所以沒有問題。
23、抽象類和介面有什麼異同
相同點:
- 抽象類和介面都不能例項化;
- 一個類如果繼承了某個抽象類或者實現了某個介面,都需要對其中的抽象方法全部實現,否則該類仍然需要被宣告為抽象類。
不同點:
- 抽象類中可以定義構造器,可以有抽象方法和具體方法,而介面中不能定義構造器,並且方法必須是抽象的。
- 抽象類中的成員不限制訪問修飾符,而介面中的成員必須全部是public。
- 抽象類中可以定義成員變數,而介面中定義的成員變數實際上都是常量
24、靜態巢狀類(StaticNestedClass)和內部類()的不同
靜態巢狀類(StaticNestedClass)是被宣告為靜態的內部類,他可以不依賴外部類例項被例項化。而內部類需要在外部類例項化之後才能例項化
舉例:
Person.Students1 = Person.new Student();
Student是Person的內部類,內部類只能通過外部類Person才能建立Student物件
面試題舉例:下面的程式碼哪些地方會產生編譯錯誤?
class Outer {
class Inner {}
public static void foo() { new Inner(); }
public void bar() { new Inner(); }
public static void main(String[] args) {
new Inner();
}
}
註解:Java中非靜態內部類物件的建立要依賴其外部類物件,上面程式碼中foo和main方法是靜態方法,靜態方法中沒有this,也就是外部類物件,因此無法建立內部類物件,如果要在靜態方法中建立內部類物件,可以這樣
new Outer().new Inner();
25、 Java 中會存在記憶體洩漏嗎,請簡單描述
理論上Java因為有垃圾回收機制(GC),不會存在記憶體洩漏問題,然而在實際開發中,可能會存在無用但可達的物件,這些物件不能被GC回收,因此也會導致記憶體洩漏的發生。例如Hibernate的Session(一級快取)中的物件屬於持久態,垃圾回收器是不會回收這些物件的,然而這些物件中可能存在無用的垃圾物件,如果不及時關閉(close)或清空(flush)一級快取就可能導致記憶體洩露。
26、抽象方法是否可以同時是靜態的,是否可以是本地方法(native),是否可同時被synchronized修飾,為什麼?
都不能。
- 抽象方法需要子類重寫,而靜態方法是無法被重寫的
- 本地方法是由原生代碼實現的方法,而抽象方法是沒有實現的
- synchronized(一種同步鎖)和方法的實現細節有關,抽象方法不涉及實現細節
27、闡述靜態變數和例項變數的區別
靜態變數是被static修飾的變數,它屬於類,不屬於類的任何一個物件,一個類不管建立多少個物件,靜態變數在記憶體中有且只有一個拷貝;
例項變數必須依存於某一例項,需要先建立物件然後通過物件才能訪問到它
28、是否可以從一個靜態方法內部發出對非靜態方法的呼叫
不可以,靜態方法只能訪問靜態成員,因為非靜態方法的呼叫要先建立物件。
29、如何實現物件克隆
1)淺表克隆:複製原物件所有變數的備份,不包括引用型別
該物件所在的類實現Cloneable介面並重寫clone()方法
2)深表克隆:複製原物件所有變數的備份,包括引用型別
該物件以及該物件內部的引用型別也要類實現Cloneable介面並重寫clone()方法
30、GC是什麼,為什麼要有GC?
GC是垃圾收集的意思,Java提供的GC功能可以自動檢測物件是否超過作用域從而達到自動回收記憶體的目的
垃圾回收可以有效防止記憶體洩漏,有效的使用可以使用的記憶體
31、String s = new String("xyz");建立了幾個字串物件?
兩個物件,一個是方法區的“xyz”,一個是用new建立在堆上的物件
32、介面是否可以繼承介面?抽象類是否可以實現介面?抽象類是否可以繼承具體類
1)介面可以繼承介面,並且支援多重繼承
2)抽象類可以實現介面,抽象類除了不能例項化物件以外,其他和普通類一樣
3)抽象類可以繼承具體類,也可以繼承抽象類
33、一個“.java”原始檔是否可以包含多個類(不是內部類),有什麼限制?
可以,但一個原始檔最多隻能有一個公開類並且檔名必須和公開類的類名完全保持一致
34、Anonymous Inner Class(匿名內部類)是否可以繼承其他類?是否可以實現介面?
可以繼承其他類,也可以實現介面
35、內部類可以引用它的包含類(外部類)的成員嗎?有沒有什麼限制
一個內部類可以訪問建立它的外部類的成員,包括私有成員
36、Java中的final關鍵字有哪些用法?
1)修飾類:表示該類不能被繼承
2)修飾方法:表示方法不能被重寫
3)修飾變數:表示變數賦值後不能被修改
37、下列程式的執行結果是:
class A {
static {
System.out.print("1");
}
public A() {
System.out.print("2");
}
}
class B extends A{
static {
System.out.print("a");
}
public B() {
System.out.print("b");
}
}
public class Hello {
public static void main(String[] args) {
A ab = new B();
ab = new B();
}
}
註解:執行結果是1a2b2b,建立物件時,構造器的呼叫順序是:先初始化靜態成員,然後呼叫父類構造器,再呼叫子類構造器,並且static快只執行一次
38、資料型別之間的轉換
如何將字串轉換為基本資料型別
呼叫parseXXX(String)或valueOf(String)即可返回相應的基本型別
如何將基本資料型別轉換成字串
一種方法是將基本資料型別與空字串(“”)連線(+)即可獲得對應的字串;另一種方法是呼叫String類中的valueOf()方法返回相應的字串
39、如何實現字串的反轉及替換
用StringBuffer類中的reverse方法實現字串的反轉
用遞迴實現字串的反轉
public static String reverse(String str) {
if(str == null || str.length() <= 1) {
return str;
}
return reverse(str.substring(1)) + str.charAt(0);
}
40、怎樣將GB2312編碼的字串轉換為ISO-8859-1的字串
String s1 = "你好";
String s2 = new String(s1.getBytes("GB2312"), "ISO-8859-1");
41、日期和時間:
1)如何取得年月日、小時分鐘秒?
public class DateTimeTest {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH));// 0 - 11
System.out.println(cal.get(Calendar.DATE));
System.out.println(cal.get(Calendar.HOUR_OF_DAY));
System.out.println(cal.get(Calendar.MINUTE));
System.out.println(cal.get(Calendar.SECOND));
}
}
2)如何取得從1970年1月1日0時0分0秒到現在的毫秒數?
Calendar.getInstance().getTimeInMills();
3)如何取得某月的最後一天?
Calender cal = Calendar.getInstance();
cal.getActualMaximum(Calendar.DAY_OF_MONTH);
4)如何格式化日期?
SimpleDateFormat oldDate = new SimpleDateFormat("yyyy/MM/dd");
Date date1 = new Date();
System.out.println(oldDate.format(date1));
42、列印昨天的當前時刻
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE,-1);
System.out.println(cal.getTime());
43、比較一下Java和JavaScript
基於物件和麵向物件:Java是一種面向物件的語言,JavaScript是一種指令碼語言,是一種基於物件和事件驅動的解釋性語言,它本身提供了非常豐富的內部物件供設計人員使用
解釋和編譯:Java原始碼在執行之前,必須經過編譯。JavaScript是一種解釋性程式語言,其程式碼不需要經過編譯,由瀏覽器解釋執行。
強型別變數和弱型別變數:Java採用強型別變數檢查,即所有變數在編譯之前必須作宣告;JavaScript中變數是弱型別的,甚至在使用變數之前不作宣告,JavaScript的直譯器在執行時檢查推斷其資料型別。
程式碼格式不一樣
44、什麼時候用斷言(assert)
斷言在軟體開發中是一種常用的除錯方式,用於保證程式最基本、關鍵的正確性。斷言檢查通常在開發和測試時開啟,在軟體釋出後關閉。
45、Error和Exception有什麼區別?
Error表示系統級的錯誤和程式不必處理的異常,是很難恢復的嚴重問題,比如:記憶體溢位
Exception表示需要程式處理的異常,是一種設計和實現的問題
46、什麼情況下呼叫doGet()和doPost()。
Jsp頁面中的form標籤裡的method屬性為get時呼叫doGet(),為post時呼叫doPost()。
47、執行緒的基本概念、執行緒的基本狀態
基本概念:執行緒,是最小的程式執行體,是程序中的一個實體,是被系統獨立排程和分派的基本單位
執行緒的基本狀態:就緒、阻塞、執行
48、try{}裡有一個return語句,那麼緊跟在這個try後的finally{}裡的程式碼會不會被執行,什麼時候被執行,在return前還是後?
會執行,在方法返回呼叫之前執行
49、Java類可以作為型別定義機制和資料封裝機制
50、在呼叫方法時,若要使方法改變實參的值,可以用物件作為引數
對於基本型別,在方法中修改形參不影響實參
對於物件,在方法中修改形參影響實參
51、以下宣告合法的是:B
A)default String s;語法錯誤,如果什麼都不寫表示default,但是不能顯示的寫default
B)public final static native int w()
C)abstract double d;abstract不能修飾成員變數
D)abstract final double hyperbolicCosine()abstract不能喝final同時存在
52、簡述下Java中“==”和equals方法有什麼區別
“==”用來表示兩個變數是否相同,即記憶體地址是否相同
equals方法用來表示兩個物件的內容是否相同(地址可以不同)
53、Java中是如何實現跨平臺的?
JVM是執行在平臺之上的程式,能夠虛擬出一臺目標機。所有位元組碼就在虛擬出的目標機上執行
54、Java語言如何進行異常處理,關鍵字:throws、throw、try、catch、finally分別如何使用
Java通過面向物件的方法對異常進行處理,每個異常都是一個物件,當一個方法出現異常後便丟擲一個異常物件,呼叫這個物件的方法可以捕捉到這個異常並可以對其進行處理
Java處理異常一般是通過5個關鍵詞來實現的:try、catch、finally、throw、throws
try用來指定一塊預防所有異常的程式;catch子句緊跟在try塊後面,用來指定你想要捕獲異常的型別;finally為確保一段程式碼不管發生什麼異常都要被執行;throw語句用來明確的丟擲一個異常,在方法裡面、throws用來宣告一個方法可能丟擲的各種異常,在方法外面
55、throw與throws的區別
throw:在方法裡面丟擲異常,只能明確的丟擲一個異常物件名,由方法體內的語句處理異常。
throws:在方法外面丟擲異常,宣告一個方法可能丟擲的異常(允許無病呻吟),可以是多個,後面異常範圍要比前面大,由該方法的呼叫者來處理異常
56、執行時異常與受檢異常有何異同
執行時異常表示虛擬機器的通常操作中可能遇到的異常,是一種常見錯誤,只要程式設計的沒有問題就不會發生。
受檢異常跟程式執行的上下文環境有關,即使程式設計無誤,仍然可能因使用的問題而引發
Java編譯器要求方法必須宣告丟擲可能發生的受檢異常,但是執行時異常不要求
57、列出一些你常見的執行時異常
ArithmeticException 算術異常
NullPointerException 空指標異常
ClassCastException 類轉換異常
IndexOutOFBoundsException 下標越界異常
SecurityException 安全異常
IllegalArgumentException 非法引數異常
58、闡述fianl、finally、finalize的區別
final:如果一個類被宣告為final,則這個類不能被繼承;將變數宣告為final,在宣告時必須賦初始值,且在以後的引用中不可修改;將方法宣告為final,則不能被重寫
finally:通常放在try。。。catch。。的後面,為確保一段程式碼不管發生什麼異常都要被執行,通常放一些釋放外部資源的程式碼
finalize:object類中定義的方法,這個方法是在由垃圾收集器在銷燬物件時呼叫的,通過重寫finalize方法可以整理系統資源或者執行其他清理工作
59、類ExampleA繼承Exception,類ExampleB繼承ExampleA
有如下程式碼片斷:
try {
throw new ExampleB("b")
} catch(ExampleA e){
System.out.println("ExampleA");
} catch(Exception e){
System.out.println("Exception");
}
請問執行此段程式碼的輸出是什麼?
答:輸出:ExampleA。
60、說出下面程式碼的執行結果。(此題的出處是《Java程式設計思想》一書)
class Annoyance extends Exception {}
class Sneeze extends Annoyance {}
class Human {
public static void main(String[] args)
throws Exception {
try {
try {
throw new Sneeze();
}
catch ( Annoyance a ) {
System.out.println("Caught Annoyance");
throw a;
}
}
catch ( Sneeze s ) {
System.out.println("Caught Sneeze");
return ;
}
finally {
System.out.println("Hello World!");
}
}
}
答: Caught Annoyance
Caught Sneeze
Hello World!
61、List、Set、Map是否繼承自Collection介面
List、Set是,Map不是。Map是鍵值對對映容器,Set無序且唯一、List有序不唯一
62、Collection和Collections的區別
Collection是一個介面,他是Set、List等容器的父介面;
Collections是一個工具類,提供一系列的排序、執行緒安全化等靜態方法來輔助容器操作
63、List、Map、Set三個介面存取元素時,各有什麼特點?
List:以特定索引來存取元素,可以有重複元素
Set:不能存放重複元素
Map:儲存鍵值對對映,對映關係可以是一對一或多對一。
64、闡述ArrayList、Vector、LinkedList的儲存效能和特性
ArrayList:底層物理儲存為線性的,執行緒不安全,查詢效率高,刪除、新增等操作效率低
Vector:底層物理儲存為線性的,執行緒安全的,資料安全,效率比較低
LinkedList:底層物理儲存為連結串列的,查詢效率低,刪除、新增等操作效率高
65、TreeMap和TreeSet在排序時如何比較元素?Collections工具類中的sort()方法如何比較元素?
TreeMap:要求存放的鍵值對對映的鍵必須實現Comparable介面,從而根據鍵值對進行排序
TreeSet:要求存放物件所屬的類必須實現Comparable介面,當插入元素時會呼叫CompareTo()方法比較元素的大小
Collections:工具類的sort方法有兩種過載形式
第一種:要求容器記憶體放的元素可比較,實現Compatator介面以實現元素的比較
第二種:不強制要求要求傳入的元素可比較,但要傳入第二個引數,即Comparator介面的子型別
66、Thread類的sleep()方法和Object類的wait()方法都可以讓執行緒暫停執行,他們有什麼區別?
sleep()方法:呼叫此方法會讓當前執行緒進入阻塞狀態,物件的鎖依然保持,休眠時間到會自動進入就緒狀態
本部落格面試題大多參考駱昊的部落格,再加上我進行技術培訓的時候整理的面試題想要檢視更多原理性的知識,請到原博檢視https://blog.csdn.net/jackfrued/article/detai
本文將記錄有關Java基礎的面試題,持續更新.......
先搭個模組架子,後面慢慢記錄!
面向物件的三大特性
繼承:一般只能單繼承,內部類可以實現多繼承、介面可以多繼承
封裝:訪問許可權控制public-->protected-->package-->privat 線程數 本地 簡單 線程間通信 syn 低耦合 刪除 不同方法 ola 一、Java基礎
String類為什麽是final的
HashMap的源碼,實現原理,底層結構。
說說你知道的幾個Java集合類:list、set、queue、map實現類。
描述一下A
title: Java筆試題
基礎語法和演算法:
1.a++和++a的區別
a++:在資料使用之後自增 ++a:在資料使用之前自增
2.&和&&的區別
邏輯與和短路與,用&連線的兩個條件的最後結果計算第一個表示式為false也會計
1 String,StringBuffer,StringBuilder的區別String 字串常量 執行緒安全 操作少量資料
StringBuffer 字串變數 執行緒安全 操作大量資料 速度慢 多
1、面向物件的特徵有哪些方面?答:面向物件的特徵主要有以下幾個方面:抽象:抽象是將一類物件的共同特徵總結出來構造類的過程,包括資料抽象和行為抽象兩方面。抽象只關注物件有哪些屬性和行為,並不關注這些行為的細節是什麼。繼承:繼承是從已有類得到繼承資訊建立新類的過程。提供繼承資訊的
本文是牛客網的Java面試常考題 本人整理了一下 去除了 Applet Swing RMI 等不常考的 還有比較一些easy的題目。
原文連結 https://www.nowcoder.com/ta/review-java 下面還有精彩的討論
1、什
1、為什麼要使用集合?
針對於陣列的缺點出現的:陣列的長度固定的,且只能存放一種型別的資料;
2、集合的特點?
(1)長度可擴充套件,可以存放多種型別的資料;
Java面試前需要做足各方面的準備工作,肯定都會瀏覽大量的面試題,本人也不例外,通過瀏覽面試題和以往的面試經歷,總結了從初級到中級以及高階的面試題,供大家學習討論。
更多推薦↓↓↓
Jav span 通過 str code 版權 內存 不變 法律 字節數組 Java基礎-數據類型面試題整理
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
catch inflate 線程 cat serializa table lca sort str 1、List 和 Set 的區別
共同點:它們都是Collection的子接口
區別:
List:這個接口能夠精準的記錄每一個元素的插入位置(換句話說就是這個接口內容所
反射機制以及反射的方式
1. Java反射機制是什麼
在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意方法和屬性;這種動態獲取資訊以及動態呼叫物件方法的功能稱為java語言的反射機制。
2. 反射機
1、hashcode相等兩個類一定相等嗎?equals呢?相反呢?
2、介紹一下集合框架?
3、hashmap hastable 底層實現什麼區別?hashtable和concurrenthashtable呢?
4、hashmap和treemap什麼區別?低層資料結構是
因為集合類在Java基礎知識中是非常重要的,也是面試中最常問到的,設計的問題也比較多,因此單獨拿出來做面試題的整理,方便自己複習,也希望給看到此篇文章的你帶來一定的幫助。文章內容均來自於網路,平時看到總結不錯的題目,就收集在此。持續更新.......
先推薦幾篇不錯的文章:
1、Java集合
最近個人也在準備找工作的事情!自己整理了一些JAVA面試題供大家參考,大家一起努力,找到一份好工作!如果大家還有一些基礎的面試題,可以評論給我!我做整理。謝謝大家分享。後續會提供比較難得面試題。Java面向物件的特徵是什麼三大特徵是:封裝、繼承和多型。(問到這些儘量回答出其含
------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">j 一、Spring面試題
1、Spring 在ssm中起什麼作用?Spring:輕量級框架作用:Bean工廠,用來管理Bean的生命週期和框架整合。兩大核心:①. IOC/DI(控制反轉/依賴注入) :把dao依賴注入到service層,service層反轉給action層,Spring頂層容器為BeanFa
原文地址在這裡!
這實際上是一種犧牲空間換取時間效率的做法。 當緩衝設定的越大,底層呼叫讀寫開銷越小,但是最後一次的讀寫可能造成 的空間開銷利用率則越小。 整體上看來,這個貌
原文地址在這裡!
如:
註釋:原始碼,反碼,補碼: 它們是極其儲存一個具體數字的編碼方案;
不管是開發、測試、運維,每個技術人員心裡都有一個成為技術大牛的夢,畢竟“夢想總是要有的,萬一實現了呢”!正是對技術夢的追求,促使我們不斷地努力和提升自己。
今天分享Java重點面試知識 :
多執行緒(執行緒狀態、執行緒併發,Synchronized與Lock的區別和底 相關推薦
Java基礎高階面試題整理總結
【搞定Java基礎】面試題整理
Java開發崗位面試題整理
Java基礎語法面試題
java基礎筆試面試題答案
Java-基礎-API-面試題
Java常考面試題 (整理) 牛客網
Java集合相關面試題整理
2018年JAVA基礎面試題和高階面試題總結
Java基礎-數據類型面試題整理
JAVA面試題整理-基礎
Java基礎(三) 面試題整理
2018年一線網際網路公司Java高階面試題總結
【搞定Java基礎】之集合類面試題整理
2018年JAVA面試題整理(1)--基礎
黑馬程式設計師--Java基礎面試題整理
Java SSM框架相關基礎面試題整理
java基礎面試題整理(2)
java基礎面試題整理(1)
一線網際網路公司Java高階面試題總結!