Java常用類String的面試題匯總(java面試題)
1.比較兩個(gè)字符串時(shí)使用“==”還是equals()方法?
當(dāng)然是equals方法。“==”測試的是兩個(gè)對象的引用是否相同,而equals()比較的是兩個(gè)字符串的值是否相等。簡單來說,基本數(shù)據(jù)類型都可以使用==。而引用類型使用==比較不了。
2.如何將字符串轉(zhuǎn)化成int?
使用包裝類Integer。Integer.valueOf("2");其他基本數(shù)據(jù)類型都是類似
3.為什么在Java中存儲(chǔ)密碼要使用char[],而不使用String。
因?yàn)镾tring是不可變的,當(dāng)String創(chuàng)建之后,就不會(huì)再改變了。而char[]是可變的,程序員在用完之后可以將其改變,不會(huì)留下任何原始數(shù)據(jù)。所以,在使用密碼時(shí),一般都是會(huì)用char數(shù)組,例如JavaSwing中的JPassWordField,獲取密碼框的值就是使用char數(shù)據(jù)。而不使用String。
4.String可以在Switch語句中使用嗎?
JDK1.7之后確實(shí)可以了。之前不行。需要程序員對JDK升級的API有適當(dāng)?shù)牧私狻?/p>
5.如何將字符串用空白字符分割開
可以使用正則表達(dá)式來做到分割字符。“\s”代表空白字符” “, “\t”, “\r”, “\n”等等, String[] strArray = str.split("\\s+");
6.substring()方法到底做了什么?
因?yàn)镾tring是不可變的,所以在字符串截取時(shí),subString做了一些工作。在JDK6時(shí),用一個(gè)字符數(shù)組來表示現(xiàn)存的字符串,然后在這個(gè)字符數(shù)組中截取字符串,截取之后,并沒有創(chuàng)建新的字符數(shù)組。而在JDK7中,截取的新的字符串是一個(gè)新的數(shù)組,這樣效率更快一些。因?yàn)槔厥掌鲿?huì)去回收不再使用的字符串。
7.如何將字符串轉(zhuǎn)換成時(shí)間Date?
使用SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date =sdf.parse("2017-12-10");
8.字符串對象String,StringBuilder ,StringBuffer之間的區(qū)別?
String不可變的,其余兩個(gè)為可變的,也就是可以自由增加或者刪除字符串。
StringBuilder 和StringBuffer,前者是線程不安全的,后者是線程安全的。理論上StringBuilder 效率更高。
字符串大量拼接時(shí),建議使用StringBuilder ,StringBuffer。
9.計(jì)算一個(gè)字符串某個(gè)字符的出現(xiàn)次數(shù)
a, 使用charAt方法截取之后,循環(huán)判斷.
b, 使用apache commons lang包中的StringUtils:
int n = StringUtils.countMatches("ababababab", "a");
System.out.println(n);
10.如何使一個(gè)字符串重復(fù)N次。
API提供了一個(gè)非常好的方法。String str = "ab";
String repeated = StringUtils.repeat(str,3);//輸出的結(jié)果是ababab,三次重復(fù).
以上所述是小編給大家介紹的Java常用類String的面試題匯總(java面試題),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Java實(shí)現(xiàn)冒泡排序算法及對其的簡單優(yōu)化示例
這篇文章主要介紹了Java實(shí)現(xiàn)冒泡排序算法及對其的簡單優(yōu)化示例,冒泡排序的最差時(shí)間復(fù)雜度為O(n^2),最優(yōu)時(shí)間復(fù)雜度為O(n),存在優(yōu)化的余地,需要的朋友可以參考下2016-05-05
SSM框架通過mybatis-generator自動(dòng)生成代碼(推薦)
這篇文章主要介紹了SSM框架通過mybatis-generator自動(dòng)生成代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11
基于Redis實(shí)現(xiàn)分布式應(yīng)用限流的方法
本篇文章主要介紹了基于 Redis 實(shí)現(xiàn)分布式應(yīng)用限流的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
Java線程池中的Future實(shí)現(xiàn)詳解
這篇文章主要介紹了Java線程池中的Future實(shí)現(xiàn)詳解, FutureTask是一個(gè)任務(wù),FutureTask繼承了Runnable、Callable, 通過FutureTask可以獲取到任務(wù)執(zhí)行的狀態(tài),任務(wù)執(zhí)行完成完成后,將結(jié)構(gòu)通過Future接口返回,調(diào)用者可以調(diào)用Future#get()方法獲取到數(shù)據(jù),需要的朋友可以參考下2023-10-10
SpringBoot2整合activiti6環(huán)境搭建過程解析
這篇文章主要介紹了SpringBoot2整合activiti6環(huán)境搭建過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11

