定义变量,String str=“HELLO WORLD”
String str1=new String(“HELLO WORLD”)
很多的时候,定义变量都会加NEW,所以请问下各位,在这个里面为什么使用NEW?
本人超级JAVA菜鸟,忘明白人给个明白,谢谢!
------解决方案--------------------
是new不是NEW大小写要区分
Class c=new Class();表示调用Class的无参构造函数,创建类Class的一个对象,在堆中为对象分配内存,并把对象的引用返回赋值给c.
String str1=new String("HELLO WORLD");
是调用String的以字符串为参数的构造函数创建字符串
String str="HELLO WORLD"是直接把字符串"HELLO WORLD"的引用传递str
------解决方案--------------------
定义变量,String str=“HELLO WORLD”
String str1=new String(“HELLO WORLD”)
这两个可不是简单的定义变量
第一次是str指向静态区的字符串“HELLO WORLD”
第二个是在堆上分配一块内存保存字符串的一个实例对象new String(“HELLO WORLD”)
并使栈上的str1指向堆上的实例对象。