<input id="0qass"><u id="0qass"></u></input>
  • <input id="0qass"><u id="0qass"></u></input>
  • <menu id="0qass"><u id="0qass"></u></menu>

    String str=“i“與 String str=new String(“i”)一樣嗎?面試篇(第八天)

    面試題 專欄收錄該內容
    12 篇文章 0 訂閱

    初級回答
    不一樣,String str = “i”;是把值放到了常量中,而String str = new String(“i”);是將值放到了堆內存中。
    高級回答
    String是final修飾的,所以是將值放到了常量中,而new String()是放到了堆內存中。
    String str = “i”;的內存模型是這樣的。如圖。棧內存通過地址直接找到常量池中的數據。
    在這里插入圖片描述
    String str = new String(“i”);的內存模型是這樣的。如圖。棧內存首先通過地址去堆內存中尋找,堆內存再通過地址去常量池中尋找。
    在這里插入圖片描述

    總結

    如果大家想了解更多的有關JAVA方面的面試題與答案詳解請搜索關注我的微信公眾號《小奇JAVA面試》里面每天都會更新JAVA面試題,希望能夠幫助到大家。
    在這里插入圖片描述

    • 1
      點贊
    • 0
      評論
    • 1
      收藏
    • 一鍵三連
      一鍵三連
    • 掃一掃,分享海報

    ??2020 CSDN 皮膚主題: 1024 設計師:白松林 返回首頁
    實付
    使用余額支付
    點擊重新獲取
    掃碼支付
    錢包余額 0

    抵扣說明:

    1.余額是錢包充值的虛擬貨幣,按照1:1的比例進行支付金額的抵扣。
    2.余額無法直接購買下載,可以購買VIP、C幣套餐、付費專欄及課程。

    余額充值
    多乐彩