您的位置:首页 > 编程语言 > Java开发

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

2015-03-25 21:30 453 查看
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")又返回一个字符串对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: