首页 > 编程语言 > 详细

【java基础】之String和new String()的区别

时间:2015-03-26 09:16:20      阅读:223      评论:0      收藏:0      [点我收藏+]

String s = "java基础",这种形式的赋值在java中被称之为直接量,它是存在于常量池中。

当我们程序启动后,程序会自动在JVM中开辟内存空间。当我们声明了这样一个字符串之后,JVM会首先常量池中查找这个值为“java基础”的对象。如果有,就把它赋给当前引用。

如果没有则在常量池中新建一个“java基础”对象。

而当我们用new String()时,就是在堆里面建立一个String类型的对象。无论他的值是否和其他对象的值相同。然后在栈里面引用这个对象。

如:

String s = "java";   // 生成一个对象。并且该对象在常量池中。

String s = new String("java"); //生成两个对象。一个是“java",一个是new String("java");    "java"本身来讲就是一个字符串对象。而new String("java")又返回一个字符串对象。

【java基础】之String和new String()的区别

原文:http://blog.csdn.net/u013412066/article/details/44628045

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!