黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java字符串面試題

Java字符串面試題

更新時間:2020-10-22 17:09:53 來源:動力節(jié)點(diǎn) 瀏覽1321次

相信各位想面試程序員的朋友們,在面試前都會做的功課就是java面試題的搜集整理與學(xué)習(xí)。字符串是在面試中經(jīng)常出現(xiàn)的題目,算是必考題。關(guān)于字符串,我們以前也學(xué)習(xí)過string字符串以及字符串截取方式等相關(guān)知識,下面整理了10道java字符串面試題,里面的內(nèi)容都是十分基礎(chǔ)的,大家可以來檢測一下關(guān)于java字符串的內(nèi)容自己掌握的是否全面。

image.png

1、創(chuàng)建String對象的不同方式有哪些?

答:兩種方式。一種是通過new很關(guān)鍵字來創(chuàng)建。使用這種方式時,JVM創(chuàng)建字符串對象但不存儲在字符串池中,我們可以調(diào)用intern()方法將該字符串對象存儲在字符串池中,如果該字符串池已經(jīng)有了同樣值得字符串,則返回引用。另一種是使用雙引號來直接創(chuàng)建。使用這種方式時。JVM去字符串找有沒有相同值的字符串,如果有,則返回找到的字符串引用。否則創(chuàng)建一個新的字符串對象,并存儲在字符串池中。


2、什么是String,它是什么數(shù)據(jù)類型?

答:String是定義在java.lang包下的一個類,它不是基本數(shù)據(jù)類型。

String是不可變的,JWM使用字符串池來儲存所有的字符串對象。


3、如何比較兩個字符串?

答:String內(nèi)部實(shí)現(xiàn)了Comparable接口,有兩個比較方法:compareTo(String anotherString)和compareToIgnoreCase(String str)。

compareTo(String anotherString)與傳入的anotherString字符串進(jìn)行比較,如果小于傳入的字符串返回負(fù)數(shù),如果大于則返回正數(shù)。當(dāng)兩個字符串值想等時,返回0此時equals方法會返回true。equalsIgnoreCase(String str)該方法與compareTo方法類似,區(qū)別只是內(nèi)部利用了Character.toUpperCase等方法進(jìn)行了大小轉(zhuǎn)換后進(jìn)行比較。


4、String、StringBuffer、StringBuilder的區(qū)別?

答:String是不可變類,每當(dāng)我們對String進(jìn)行操作的時候,總會創(chuàng)建新的字符串。操作String和耗費(fèi)資源,所以java提供了兩個工具類來操作String——StringBuffer和StringBuilder。

StringBuilder和StringBuffer是可變類,StringBuffer是線程安全的,StringBuilder則不是線程安全的。所以在多線程對同一字符串進(jìn)行操作的時候,我們選擇StringBuffer。在不需要處理多線程的情況下,StringBuilder的效率比StringBuffer高。


5、String是不可變的有什么好處?

答:由于String是不可變類,所以在多線程中使用是安全的,我們不需要做其他任何同步操作。String是不可變的,其值也是不可變的,所以用來存儲數(shù)據(jù)密碼很安全。因?yàn)閖ava字符串不可變,可以在java運(yùn)行時節(jié)省大量堆空間。因?yàn)椴煌淖址兞靠梢砸贸刂械南嗤淖址H绻址强勺兊脑挘魏我粋€變量的值改變,就會映射到其他變量,那么字符串池也就沒有什么意義了。


6、下面程序的運(yùn)行結(jié)果是什么?

String s1 = "abc";

StringBuffer s2 = new StringBuffer(s1);

System.out.println(s1.equals(s2)); //1,false

StringBuffer s3 = new StringBuffer("abc");

System.out.println(s3.equals("abc")); //2,false

System.out.println(s3.toString().equals("abc")); //3,true

答:注釋1打印為false,主要考察String的equals方法,String源碼中 equals 方法有對參數(shù)進(jìn)行 instance of String 判斷語句,StringBuffer的祖先為CharSequence,所以不相等;注釋2打印為false,因?yàn)镾tringBuffer 沒有重寫Object的equals方法,所以O(shè)bject的equals方法實(shí)現(xiàn)是==判斷,故為 false; 注釋3打印為true,因?yàn)镺bject的toString方法返回為String類型,String重寫了equals方法實(shí)現(xiàn)為值比較。


7、為什么針對安全保密高的信息,char[]比String更好?

答:因?yàn)镾tring是不可變的,一旦創(chuàng)建就不能更改,直到垃圾收集器將它回收才能消失,即使我們修改了原先的變量,實(shí)際上也是在內(nèi)存中新建一個對象,原數(shù)據(jù)還是保留在內(nèi)存中等待回收;而字符數(shù)組char[]中的元素是可以更改的,也就是說像密碼等保密信息用完之后我們可以馬上修改它的值而不留痕跡,從而相對于String有更好的安全性。


8、說說 String str = "hello world"; 和 String str = new String("hello world"); 的區(qū)別?

答:在 java的class文件中有專門的部分用來存儲編譯期間生成的字面常量和符號引用,這部分叫做class文件常量池,在運(yùn)行期間對應(yīng)著方法區(qū)的運(yùn)行時常量池,所以String str = "hello world"; 在編譯期間生成了 字面常量和符號引用,運(yùn)行期間字面常量 "hello world" 被存儲在運(yùn)行時常量池(只保存了一份),而通過new關(guān)鍵字來生成對象是在堆區(qū)進(jìn)行的,堆區(qū)進(jìn)行對象生成的過程是不會去檢測該對象是否已經(jīng)存在的,所以通過new來創(chuàng)建的一定是不同的對象,即使字符串的內(nèi)容是相同的。


9、如何判斷兩個String是否相等?

答:有兩種方式判斷字符串是否相等,使用“= = ”或者使用equals方法。當(dāng)使用 “= =”操作符時,不僅比較字符串的值還比較引用的內(nèi)存的值。大多相互情況下,我們只需要判斷值是否相等,此時用equals方法即可。還有一個用equalsIgnoreCase可以用來忽略大小寫進(jìn)行比較。

image.png


10、如何將String轉(zhuǎn)換為byte array,反過來呢?

答:使用String的getBytes()方法將String轉(zhuǎn)換成byte數(shù)組,使用String的構(gòu)造方法new String(byte[] arr)將byte數(shù)據(jù)轉(zhuǎn)為String。

public class StringToByteArray{

public static void main(String[] args){

String str="PANKAJ";

byte[] byteArr=str.getBytes();

//print the byte[] elements

System.out.println("String to byte array:"+Array.toString(byteArr))

}

public static void main(String[] args)

{

byte[] byteArray={'P','A','N','k','A','J'};

byte[] byteArray={80,65,78,75,65,74};

String str=new String(byteArray);

Srting str1=new String(byteArray1);

System.out.println(str);

System.out.println(str1);

}

}


以上是今天要學(xué)習(xí)的java字符串面試題,因?yàn)楝F(xiàn)在的公司越來越看重java程序員的基本能力十分扎實(shí),對java的基礎(chǔ)知識考查是十分重視的,所以上面的10道java字符串面試題中涉及的內(nèi)容希望大家認(rèn)真學(xué)習(xí),遇到不會的及時查漏補(bǔ)缺,為java面試做好準(zhǔn)備。


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 中文字幕日本不卡一二三区 | 91探花福利精品国产自产在线 | 久久久精品国产免费观看同学 | 98精品国产高清在线xxxx | 香蕉视视频 | 国产高清视频免费 | 色噜噜狠狠色综合欧洲 | 青青青亚洲精品国产 | 亚洲黄色天堂 | 四虎永久在线精品波多野结衣 | 欧美国产精品 | 成人影院免费观看 | 中文字幕亚洲一区二区三区 | 久久久久免费视频 | 欧美精品午夜久久久伊人 | 在线国产欧美 | 一区二区高清在线观看 | 在线视免费频观看韩国aaa | 国产成人青草视频 | 无限资源日本好片 | 理论福利午夜 | 黄色大片毛片 | 国产大片中文字幕在线观看 | 欧美日韩激情一区二区三区 | 国产成年网站 | 欧美激情a∨在线视频播放 欧美激情二区 | 福利一区二区在线 | 高清一级做a爱过程不卡视频 | 日本免费黄色录像 | 制服丝袜综合第八页 | 黄网址在线观看 | 永久免费毛片手机版在线看 | 深爱激情五月婷婷 | 成人毛片在线播放 | 亚洲欧洲日产国码在线观看 | 日本中文字幕精品理论在线 | 日韩 国产 欧美 精品 在线 | 666夜色666夜色国产免费看 | 黄色一级视频欧美 | 成年性午夜免费视频网站不卡 | 国产成人深夜福利在线观看 |