【java基础】之String和new String()的区别
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")又返回一个字符串对象。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。