String s1=new String("abc"); 和String s1="abc"区别
2018-01-16 16:10
381 查看
在讨论他们的区别时,我们要知道java中的内存,主要分为堆和栈。栈中一般存放的是java中的基本数据变量 比如 int,double,float 还存放了对象的引用变量 如 Person person =new Person() 中的 (Person person
)。
而堆内存则存放了 new Person。
)。
而堆内存则存放了 new Person。
String s = "abc" :s是存储在栈里。 先在栈中创建一个对String类的对象引用变量s,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令s指向”abc”,如果已经有”abc” 则直接令s指向“abc”。例子如下: String s1 = "abc"; String s2 = "abc"; System.out.println(s1==s2); //true 说明s1和s2指向同一个对象 String s = new String("abc") : s是存储在堆里。 每调用一次就会创建一个新的对象。 例子如下: String s1 =new String ("abc"); String s2 =new String ("abc"); System.out.println(s1==s2); // false 说明s1和s2是不指向同一个对象的
相关文章推荐
- new String("abc")与String a="abc"的区别
- java String的面试点("abc"与new String("abc")的区别)
- string="" 与 new String()的区别
- String s1="AB"和String s2=new String("AB")的区别
- Java中String="hello"和new String("hello')两种创建字符串的区别
- [java] "Hello"和new String("Hello")产生String对象的区别
- String s1="abc"; s2="abc" s3= new String("abc")为啥s1和s2的地址值一样而s1和s3的就不一样呢?
- Java String = "" 和 new String()区别
- C#中NULL,"",DBNULL,String.Empty,Convert.IsDBNull()的区别
- String 和 new String 的区别
- js中string=“” 和 new string("")的区别
- String与new String的区别
- String x = "abc" 和 String x = new String("abc")有什么区别?
- new String("aaa")创建了几个String对象?
- String.split("","")与StringUtil.split("","")的区别
- string.Empty、null、""、DBnull 四者的区别
- String.Empty,NULL和""的区别
- Application.Count.ToString()和Application["count"].ToString()的区别
- String 和 new String()的区别
- String中的null,"",以及String s;等等的区别详解