更新時間:2023-01-14 14:01:39 來源:動力節點 瀏覽1531次
1.JDK和JRE有什么區別?
JDK是java開發工具包,JRE是java運行時環境(包括Java基礎類庫,java虛擬機)
2.==和equals的區別是什么?
==比較的是兩者的地址值,equals比較的是兩者的內容是否一樣
3.兩個對象的hashcode()相同,則equals()也一定為true嗎?
兩個對象的equals返回true,那么hashcode一定相等;
兩個對象的hashcode相等,那么equals不一定為true;
4.final在java中的作用?
修飾類:表明該類不可被繼承,類中的所有成員方法都隱式的被指定為final方法
修飾方法:不可被重寫,JVM會嘗試將其內聯,以提高運行效率
修飾變量:不可被改變,修飾引用變量表示引用不可變,引用指向的內容可變
修飾常量:在編譯階段會存入常量池中
5.java中操作字符串都有哪些類?有什么區別?
String:是只讀字符串,每次對string的操作都會產生一個新的對象
StringBuilder:可變的字符數組,線程不安全
StringBuffer:可變的字符數組,對方法加了同步鎖,線程安全
6.如何將字符串反轉?
1.使用StringBuilder的reverse()方法
2.使用字符串數組,實現從尾部開始逐個逆序放入字符串
3.使用String的CharAt方法,調用StringBuilder的insert方法進行操作
4.使用遞歸的方法
7.string類的常用方法有哪些?
1.獲取字符串長度length()
2.獲取位置上的某個字符charAt()
3.獲取字符的位置indexOf()
4.判斷是否包含某個字符contains()
5.判斷字符串中是否有內容isEmpty()
6.判斷字符串是否一指定字符開頭結尾startsWith(),endsWith()
7.判斷字符串內容是否相同equals()
8.切割split()
8.抽象類必須要寫抽象方法嗎?
不一定有抽象方法,但抽象方法一定在抽象類中,抽象類不能實例化
9.普通類和抽象類有哪些區別?
1.抽象類不能被實例化
2.抽象類允許普通方法有主體,抽象方法只需要申明不需要實現
3.抽象類一定有abstract關鍵詞修飾
4.抽象的子類必須實現抽象類中的所有抽象方法,否則的話,這個子類也是抽象類
10.抽象類能使用final修飾嗎?
不能,final是最終類不能被繼承,而抽象類是必須被繼承才有其意義
11.接口和抽象類的區別?
1.抽象類中可以定義構造器,接口不能
2.抽象類可以有抽象方法和具體方法,接口不能有具體方法
3.抽象類中可以定義成員變量,接口中只能是常量
4.抽象類中可以包含靜態方法,接口中不能有靜態方法
12.IO流分幾種?
按照流的流向:輸入流,輸出流
按照操作單元:字節流和字符流
按照流的角色:節點流和處理流
13.java容器有哪些?
ArrayList,LinkedList,HashSet,HashMap
14.List,Set,Map之間的區別?
list:是個有序的集合,元素可以重復,可以索引訪問
set:元素不能重復,無序
map:使用鍵值對KV,不允許重復,無序
15.HashMap與HashTable的區別?
1.兩者父類不同:map繼承abstractMap類,table繼承Dictionary類
2.對外提供的接口不同:table比map多提供了elments和contains方法
3.對null的支持不同:tableK和V都不能為null,mapK可以為null,但必須保證K唯一
4.安全性不同:map不安全,會產生死鎖,table每個方法上加了鎖
5.初始容量大小和每次擴充容量的大小不同
6.計算hash值的方法不同
16.HashMap的實現原理?
基于hash算法實現,通過put(key,value)儲存,get(key)來獲取
17.HashSet的實現原理?
基于hashmap實現,使用hashmap來保存所有元素,不允許重復的值
18.ArrayList和LinkedList的區別?
arraylist:基于動態數組的數據結構,地址連續,查詢效率高
linkedlist:基于鏈表的數據結構,地址無序,新增刪除效率高
19.怎么實現數組和list之間的轉換?
數組轉list:使用asList方法
list轉數組:使用toArray方法
20.數組有沒有length()方法?String有沒有length()方法?
數組是沒有length()這個方法的,有length這個屬性,可以計算數組的長度
String是有length()這個方法的,用來計算字符串的長度。
以上就是“程序員面試常被問到的Java經典筆試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習