Java题-直接赋值与重新创建内存
生活随笔
收集整理的這篇文章主要介紹了
Java题-直接赋值与重新创建内存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天去面試了,其中有幾個筆試題,印象深刻(因為我不會,所以印象深刻)
代碼如下:
package my;public class main {public static void main(String[] args) {String a="hello";String b="hello";String c=new String("hello");String d=new String("hello");System.out.println(a==b);System.out.println(c==d);System.out.println(a==c);}}運行結果如下:
造成這個結果的原因是(百度的):
如果是直接賦值的是取常量池的數據, 如果是new的,永遠都是重新創建內存.所以 s == d 因為在object比較中 ==比較的是內存地址, 而new String()是告訴jvm重新創建一塊內存. "hello"就是一個匿名對象, 引用的還是常量池的 你只需要理解 對象中==比較的是內存地址即可, new就是開辟一塊內存
總結
以上是生活随笔為你收集整理的Java题-直接赋值与重新创建内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 禁用msi模式,禁用MSI模
- 下一篇: java美元兑换,(Java实现) 美元