Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串m=";的初始化差异&引用;字符串m=null;_Java_String - Fatal编程技术网

Java 字符串m=";的初始化差异&引用;字符串m=null;

Java 字符串m=";的初始化差异&引用;字符串m=null;,java,string,Java,String,提出这个问题的主要原因是,不同语言对字符串的理解存在着特殊的差异。我来自C++背景,现在工作在java中,其中字符串是不可变的。所以我想知道它们之间的区别 String m = "" ; 及 我想知道m的指针是否指向java中的内存位置 String m = null ; 不引用对象 String m = "" ; 引用一个对象 当您将其初始化为“”时,您正在为字符串赋值。但是,当您将其初始化为null时,它实际上只指向null。最后,字符串方法可以在第一个(equals、length、r

提出这个问题的主要原因是,不同语言对字符串的理解存在着特殊的差异。我来自C++背景,现在工作在java中,其中字符串是不可变的。所以我想知道它们之间的区别

String m = "" ;

我想知道m的指针是否指向java中的内存位置

String m = null ;
不引用对象

String m = "" ;

引用一个对象

当您将其初始化为“”时,您正在为字符串赋值。但是,当您将其初始化为null时,它实际上只指向null。最后,字符串方法可以在第一个(equals、length、replaceAll等)上使用,而不能在第二个上使用。

第一个方法将
string
对象指定给
m
。第二个不是。所以“”是空对象?空字符串仍然是字符串。为了避免混淆,我将按OP的顺序排列。已编辑。谢谢
String m = "" ;