国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

字符串拼接操作的面試題講解

這篇具有很好參考價值的文章主要介紹了字符串拼接操作的面試題講解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、字符串拼接操作

  1. 常量與常量的拼接結(jié)果在常量池,原理是編譯期優(yōu)化。String? s1="a"+"b"+"c";
  2. 常量池中不會存在相同內(nèi)容的常量。
  3. 只要其中有一個是變量,結(jié)果就在 中。變量拼接的原理是StringBuilder。
  4. 如果拼接符號的前后出現(xiàn)了變量,則相當于在堆空間中new String(),具體的內(nèi)容為拼接的結(jié)果。
  5. 如果拼接的結(jié)果調(diào)用intern()方法,則主動將常量池中還沒有的字符串對象放入池中,并返回此對象地址。
  6. intern():判斷字符串常量池中是否存在值,如果存在,則返回常量池中的值的地址。如果字符串常量池中不存在值,則在常量池中加載一份,并返回此對象的地址。

2、為什么字符串拼接的值不在常量池中?

  • 因為字符串是不可變的,若要進行字符串拼接,必須創(chuàng)建一個新的字符串對象來存儲拼接后的結(jié)果。由于在運行時需要動態(tài)創(chuàng)建新的對象,因此該字符串對象不會被保存在常量池中。只有在編譯時已經(jīng)確定的字符串常量才會被保存在常量池中,因為它們是可以在編譯時就確定的,不需要在運動時動態(tài)創(chuàng)建。
  • 字符串拼接操作通常會產(chǎn)生新的字符串對象,這個新的字符串對象通常不會被放入常量池中,而是放在堆內(nèi)存中的一個新的內(nèi)存位置。這個因為字符串是不可變的,所以為了避免在常量池中創(chuàng)建過多的字符串對象,Java虛擬機規(guī)范不會對字符串拼接進行優(yōu)化。因此,每次進行字符串拼接操作時,都會創(chuàng)建一個新的字符串對象,即使兩個字符串的值相同,也會產(chǎn)生新的對象。如果想讓字符串拼接的值在常量池中,可以使用字符串常量拼接或者使用StringBuilder類的append方法。
package string;


import org.junit.Test;

public class StringTest5 {

    @Test
    public void test1() {
        String s1 = "a" + "b" + "c";
        String s2 = "abc";
        System.out.println(s1 == s2);//true
        System.out.println(s1.equals(s2));//true
    }

    @Test
    public void test2() {

        String s1 = "javaEE";
        String s2 = "hadoop";

        String s3 = "javaEEhadoop";
        String s4 = "javaEE" + "hadoop";
        String s5 = s1 + "hadoop";
        String s6 = "javaEE" + s2;
        String s7 = s1 + s2;

        System.out.println(s3 == s4);//true
        System.out.println(s3 == s5);//false
        System.out.println(s3 == s6);//false
        System.out.println(s3 == s7);//false
        System.out.println(s5 == s6);//false
        System.out.println(s5 == s7);//false
        System.out.println(s6 == s7);//false

        String s8 = s6.intern();
        System.out.println(s3 == s8);//true
    }
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-663319.html

到了這里,關(guān)于字符串拼接操作的面試題講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • shell 拼接字符串,出現(xiàn)后面的字符串覆蓋前面的字符串問題

    shell 拼接字符串,出現(xiàn)后面的字符串覆蓋前面的字符串問題

    shell 拼接字符串語法很簡單兩個參數(shù)并排前后寫上接口,如下 str1=www str2=bbb s t r 1 str1 s t r 1 str2 的結(jié)果未 wwwbbb 有時會出現(xiàn)如下問題: 在拼接字符串的時候,后面的字符串將前面的字符串覆蓋了。 shell的內(nèi)容如下: #!/bin/bash date_str=“ date +%Y%m%d ” echo $date_str python_file_name=\\\" 1

    2024年02月09日
    瀏覽(26)
  • JS中字符串切割為數(shù)組/數(shù)組拼接為字符串

    (1)語法格式: 其中所選分隔符使用雙引號(“”)或者單引號(‘’)括起來; 所生成的數(shù)組會存放于前面定義的數(shù)組變量中。 (2)樣例: JS代碼: 運行結(jié)果: (3)其他用法: ①當所選分隔符為空時,返回的數(shù)組即將每個字符分割出來: JS代碼: 運行結(jié)果: ②分隔

    2024年02月12日
    瀏覽(32)
  • C++ 字符串拼接

    C++ 字符串拼接

    第一種方法直接是字符串之間相加 第二種方法使用append append 可以設(shè)置參數(shù)? 例如 append(“s1”,3) 這就是把s1前三位拼接 例如下面的就是把adbc的前2位,也就是ab 拼接到s1 上面 打印結(jié)果? ?append(s1,2,4)設(shè)置2個參數(shù),就是從第2位開始后面的四位拼接 下面的就是abcdefg從第

    2024年02月16日
    瀏覽(23)
  • SQL字符串拼接

    ①CONCAT() 拼接字符串基本型: SELECT CONCAT ( lastname , firstname) AS student_name FROM kalacloud_student; ②使用空格拼接字符串: 仍然使用 SELECT CONCAT() 命令,空格需要使用\\\' \\\' 兩個單引號引起來。SELECT CONCAT(firstname, \\\' \\\', subject) AS studentDetail FROM kalacloud_student; ③使用特殊符號拼接字符串: S

    2024年02月17日
    瀏覽(24)
  • Java中字符串占位替換、字符串拼接、字符串與Collection互轉(zhuǎn)的方式

    1、String.format 最原始最基礎(chǔ)的方式。 使用%來表示占位,后面跟上不同的標識符,用于限定這個占位符的參數(shù)類型,由jdk原生提供支持。 示例: 2、MessageFormat 如果遇到一個參數(shù)需要替換模板中多個占位的場景,更友好的方式是MessageFormat,由jdk原生提供支持。 示例: 舉例:將

    2024年02月16日
    瀏覽(31)
  • 【C#】字符串拼接相關(guān)

    【C#】字符串拼接相關(guān)

    目錄 1.字符串拼接方式1 用+號進行字符串拼接 復(fù)合運算符 += 2.字符串拼接方式2 3.控制臺打印拼 4.例子? 之前的算數(shù)運算符 只是用來數(shù)值類型變量進行數(shù)學(xué)運算的 而 string 不存在算數(shù)運算符 不能計算 但是可以通過+號來進行字符串拼接 用+號進行字符串拼接 復(fù)合運算符 += 按數(shù)

    2024年02月04日
    瀏覽(24)
  • Java拼接list字符串

    Java拼接list字符串

    使用Stream方法將列表轉(zhuǎn)換為一個流。在流中,使用Collectors.joining方法將所有元素連接成一個字符串。這個方法可以接受一個字符串參數(shù),該參數(shù)用作分隔符。 在調(diào)用釘釘?shù)囊粋€消息發(fā)送API時遇到了一個這樣的問題,當時我是這么寫的總覺得沒問題,但是一直報錯,說我userI

    2024年02月16日
    瀏覽(52)
  • Java Stream 拼接字符串

    一、使用背景? ? ? ? ?? ? ? ? ? 在開發(fā)過程,有時候需要將集合結(jié)果轉(zhuǎn)化成字符串,按照指定的字符分隔進行拼接,java stream的收集器提供相應(yīng)的API,操作簡單方便,下面直接上示例代碼; 二、API操作

    2024年04月12日
    瀏覽(23)
  • 【Python 千題 —— 基礎(chǔ)篇】字符串拼接

    題目描述 我們在編程過程中經(jīng)常會遇到把不同字符串拼接在一起的情況,從而更直觀地展示給用戶我們所要表達的信息。本題將給出兩個字符串,請依次將這兩個字符串拼接在一起。 輸入描述 輸入兩個字符串,用回車分開。 輸出描述 程序?qū)⑤斎氲膬蓚€字符串依次拼接在一

    2024年02月01日
    瀏覽(28)
  • 如何進行字符串的分割和拼接?

    字符串的分割和拼接是在C語言編程中常見的操作,尤其在處理文本數(shù)據(jù)時非常重要。在本文中,我將詳細解釋如何在C語言中進行字符串的分割和拼接,包括使用標準庫函數(shù)和手動操作字符串數(shù)組的方法,以及一些實際應(yīng)用示例。 字符串分割是將一個字符串拆分成多個子字符

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包