String s1=new String(“abc“); 和String s1=“abc“区别
生活随笔
收集整理的這篇文章主要介紹了
String s1=new String(“abc“); 和String s1=“abc“区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在討論他們的區別時,我們要知道java中的內存,主要分為堆和棧。棧中一般存放的是java中的基本數據變量 比如 int,double,float 還存放了對象的引用變量 如 Person person =new Person() 中的 (Person person )。
而堆內存則存放了 new Person。
String s = “abc” :s是存儲在棧里。
先在棧中創建一個對String類的對象引用變量s,然后查找棧中有沒有存放"abc",如果沒有,則將"abc"存放進棧,并令s指向”abc”,如果已經有”abc” 則直接令s指向“abc”。例子如下:
說明s1和s2指向同一個對象
String s = new String(“abc”) : s是存儲在堆里。
每調用一次就會創建一個新的對象。 例子如下:
String s1 = "abc"; String s2 = "abc"; System.out.println(s1==s2); //true說明s1和s2是不指向同一個對象的
總結
以上是生活随笔為你收集整理的String s1=new String(“abc“); 和String s1=“abc“区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5和前端精要(1)-架构与基础(
- 下一篇: html5和前端精要(2)-架构与基础(