亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁(yè) | 考試用書 | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
      全國(guó)  |             |          |          |          |          |         
        當(dāng)前位置:計(jì)算機(jī)等級(jí) > 二級(jí)考試 > Java語(yǔ)言程序設(shè)計(jì) > 考試輔導(dǎo) > 文章內(nèi)容
        

      全國(guó)計(jì)算機(jī)二級(jí)考試Java語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)(5)

      中華IT學(xué)院   【 】  [ 2016年4月27日 ]

      String

        1、初始化:

        一般由String聲明的字符串,長(zhǎng)度是不可變的,這也是它與StringBuffer和StringBuilder最直觀的一個(gè)區(qū)別。一般初始化方式:String s = "hello world";經(jīng)過這條語(yǔ)句,JVM的棧內(nèi)存中產(chǎn)生一個(gè)s變量,堆內(nèi)存中產(chǎn)生hello world字符串對(duì)象。s指向了hello world的地址。像上面這種方式產(chǎn)生的字符串屬于直接量字符串對(duì)象,JVM在處理這類字符串的時(shí)候,會(huì)進(jìn)行緩存,產(chǎn)生時(shí)放入字符串池,當(dāng)程序需要再次使用的時(shí)候,無需重新創(chuàng)建一個(gè)新的字符串,而是直接指向已存在的字符串。

        2、String s = "123" + "456"內(nèi)存中產(chǎn)生幾個(gè)字符串對(duì)象?

        這是個(gè)比較有爭(zhēng)議的問題,面試的時(shí)候,老師還挺喜歡問,論壇上大家說幾個(gè)的也有,我給大家分析一下,因?yàn)槲覀兦懊嬗刑岬絁ava字符串的緩存機(jī)制,編譯器在編譯的時(shí)候會(huì)進(jìn)行優(yōu)化,所以在編譯的過程中123和456被合成了一個(gè)字符串"123456",因此,如果緩存池中目前沒有123456這個(gè)對(duì)象,那么會(huì)產(chǎn)生一個(gè),即""123456",且棧中產(chǎn)生一個(gè)引用s指向它,如果緩存池中已經(jīng)存在"123456",那么將產(chǎn)生0個(gè)對(duì)象,直接用s指向它。

        3、StringBuffer、StringBuilder

        StringBuffer和StringBuilder就是所謂的可變字符串類,共四個(gè)構(gòu)造方法:

        StringBuffer()

        public StringBuffer(int paramInt)

        public StringBuffer(String paramString)

        public StringBuffer(CharSequence paramCharSequence)

        觀察其源碼發(fā)現(xiàn),使用StringBuffer()時(shí),默認(rèn)開辟16個(gè)字符的長(zhǎng)度的空間,使用public StringBuffer(int paramInt)時(shí)開辟指定大小的空間,使用public StringBuffer(String paramString)時(shí),開辟paramString.length+16大小的空間。都是調(diào)用父類的構(gòu)造器super()來開辟內(nèi)存。這方面StringBuffer和StringBuilder都一樣,且都實(shí)現(xiàn)AbstractStringBuilder類。

        二者幾乎沒什么區(qū)別,基本都是在調(diào)用父類的各個(gè)方法,一個(gè)重要的區(qū)別就是StringBuffer是線程安全的,內(nèi)部的大多數(shù)方法前面都有關(guān)鍵字synchronized,這樣就會(huì)有一定的性能消耗,StringBuilder是非線程安全的,所以效率要高些。

      分享到:
      本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved