日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

字符串基础问题

發(fā)布時(shí)間:2025/3/21 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符串基础问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

字符串基礎(chǔ)問(wèn)題

題目一

public class Test{public static void main(String[] args){String s1 = "abc";String s2 = s1;String s3 = new String("abc");String s4 = new String("abc");String s5 = "abc";System.out.println(s1==s5);System.out.println(s1==s2);System.out.println(s1.equals(s2));System.out.println(s3==s4);System.out.println(s1.equals(s4));System.out.println(s3.equals(s4));} }

輸出是 true true true false true true

記住 == 比較引用. equals 比較值. String 對(duì)象會(huì)創(chuàng)建一個(gè)字符串池 (a pool of string), 如果當(dāng)前準(zhǔn)備新創(chuàng)建的字符串對(duì)象的值在這個(gè)池子中已經(jīng)存在,那么就不會(huì)生成新對(duì)象, 而是復(fù)用池中已有的字符串對(duì)象. 不過(guò), 只有采用 Object s = “Hello” 方式 (而非用”new“關(guān)鍵字) 聲明 String 對(duì)象的時(shí)候這個(gè)規(guī)則才會(huì)被應(yīng)用.

題目二

String s = "a" + "b" + "c" + "d" + "e"

創(chuàng)建了幾個(gè)對(duì)象? 1個(gè) 賦值號(hào)右邊都是常量,編譯時(shí)直接儲(chǔ)存它們的字面值, 在編譯時(shí)直接把結(jié)果取出來(lái)面成了 "abcde"

題目三

# 創(chuàng)建了幾個(gè)String Object?二者之間有什么區(qū)別?String s = new String("xyz");

兩個(gè)或一個(gè), ”xyz”對(duì)應(yīng)一個(gè)對(duì)象, 這個(gè)對(duì)象放在字符串常量緩沖區(qū), 常量”xyz”不管出現(xiàn)多少遍, 都是緩沖區(qū)中的那一個(gè). New String每寫一遍, 就創(chuàng)建一個(gè)新的對(duì)象, 它一句那個(gè)常量”xyz”對(duì)象的內(nèi)容來(lái)創(chuàng)建出一個(gè)新String對(duì)象. 如果以前就用過(guò)’xyz’, 這句代表就不會(huì)創(chuàng)建”xyz”自己了, 直接從緩沖區(qū)拿.

題目四

String s1 = new String("777"); String s2 = "aaa777"; String s3 = "aaa" + "777"; String s4 = "aaa" + s1;

s2 == S3 : true s2 == S4 : false s2 == S4.intern() : true

題目五

String str = "ABCDEFGH"; String str1 = str.substring(3,5); System.oout.println(str1);

輸出是 DE substring 是前包括后不包括

題目六

執(zhí)行后,原始的 String 對(duì)象中的內(nèi)容到底變了沒(méi)有?String s = "Hello";s = s + " world!";

沒(méi)有. 因?yàn)?String 被設(shè)計(jì)成不可變(immutable)類, 所以它的所有對(duì)象都是不可變對(duì)象.

在這段代碼中, s原先指向一個(gè)String對(duì)象, 內(nèi)容是 "Hello",然后我們對(duì)s進(jìn)行了+操作, 這時(shí),s不指向原來(lái)那個(gè)對(duì)象了, 而指向了另一個(gè) String對(duì)象, 內(nèi)容為"Hello world!", 原來(lái)那個(gè)對(duì)象還存在于內(nèi)存之中, 只是s這個(gè)引用變量不再指向它了.

題目七

執(zhí)行后,輸出是什么? 共創(chuàng)建了幾個(gè)字符串對(duì)象?

String s = " Hello ";s += " World ";s.trim( );System.out.println(s);

再次強(qiáng)調(diào) String 是不可變(immutable)類. 所以共創(chuàng)建了三個(gè)對(duì)象. 最后輸出是 " Hello World ". 只有 s = s.trim() 之后才是 "Hello World".


from:?https://dongchuan.gitbooks.io/java-interview-question/java/string_questions.html

總結(jié)

以上是生活随笔為你收集整理的字符串基础问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。