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