Java基礎面試集合(一)
一.Java傳遞引數的兩種方式:
1. 值傳遞:(傳值),八種基本資料型別和String(final)
2. 引用傳遞:(傳地址),其餘複合型別介面(陣列、類和介面)
3. 理解:針對Java引數,無論是原始型別還是引用型別,傳遞的都是副本:
(1) 原始型別:傳入的是副本(值),副本的值改變不會影響原始的值;
(2) 引用型別:傳入的是副本(地址),若new一個,則不會改變,否則地址改變,原始值也改變。
二. final、finally和finalize:
1. final:變數:不能修改;類:不能被繼承;方法:不能被過載;
2. finally:
try{}:非異常時執行try塊程式碼;
catch{}:try中異常時執行finally塊程式碼;
finally{}:都必須執行;
3. finalize:方法名,在堆永久刪除物件之前,垃圾回收器呼叫該方法;
三. Java中字串之間的轉換:
1. 轉string:
(1) char轉string(string的valueOf方法)
Char c = ‘’;
String s = string.valueOf(c);
(2) char轉
int i = (int) c;
2. 轉char:
(1) String轉char(string的toCharArray()[位置]方法)
(2) int轉char
① 強制型別轉化:(當作ASCⅡ碼處理,’(’)
Int a = 40;
Char c = (char) a;
② 先轉成字串,再轉成char:
int a = 4;
String str = String.valueOf(a);
char[] array = str.toCharArray();
for (int i = 0; i < array.length; i++)
{ System.out.print(array[i]); }
3. 轉int:
(1) String轉int(使用integer的parseInt方法)
(2) Char轉int(轉為字串,在使用parseInt方法)
4. int和integer之間(intValue方法):
Integer i1 = new integer(10);
Int i2 = integer.intValue();
四. object和String中的equals區別:
1. 對String而言:
“equals”:(比較的是兩個字串的內容);
“==”:(比較的是兩個字串物件的引用);
String a = new String(“abc”);
String b = new String(“abc”);
String c = b;
則:equals方法都為true,==方法:a==b為false,b==c為true。
2. 對Object而言:
“equals”:(比較的是物件的引用)
3. String繼承了Object類,equals方法進行了重寫(引用->內容)
4. 總結:
Object.equals相等,String.equals一定相等
String.equals相等,Object.equals不一定相等
五. Java中的int和integer之間的區別:
1. int是基本資料型別,直接存放數值,初始預設為0;
2. Integer是物件,需要例項化,初始預設為null;
3. 享元模式:(自動拆箱和自動裝箱)
裝箱:integer a = 10; (將資料型別轉換成物件)
拆箱:a++; (將物件轉換成資料型別,進行運算)
六. 過載和重寫區別:
1. 過載(Overload)(多型):同一類中出現多個同名的方法(形參不同)
2. 重寫(Override):子類對父類的方法進行重新編寫;
3. 區別:(看看是不是在同一個類中)
七. arrayList和LinkedList的區別:
1. arrayList:基於動態陣列;(讀取資料使用方便,無需移動指標)
2. LinkedList:基於連結串列;(增、刪、加使用方便,移動指標)