我需要知道在使用运行时在java中初始化String的区别。
对于Exmaple:
String declare = null;
否则:
String declare = "";
我声明了两种类型的字符串声明。哪一个最适合运行时声明。
答案 0 :(得分:3)
String是一个对象。如果将其初始化为null,则告诉编译器您知道没有初始化,并且在您第一次尝试使用该变量时应该没有警告。除此之外,你当然指的是null的引用。
但是,如果将String初始化为空字符串,则会发生以下情况:
所以,问题是,如何处理代码中的空值或空字符串?这应该指导你的决定
答案 1 :(得分:0)
在第一种情况下,您创建了一个指向null
对象的“指针”(未创建objec)。在第二个 - 指向具有值“”(空字符串)的对象的“指针”。这些是不同的东西 - 你需要决定,你需要哪一个进行进一步的操作。
答案 2 :(得分:0)
第一个例子不会创建一个String对象,第二个例子。声明:
declare.equals("some string");
将为您的第一个示例生成NullPointerException,但不会为第二个示例生成NullPointerException。
答案 3 :(得分:0)
正如@AljoshaBre评论的那样,这取决于你将如何处理它。将它初始化为null有点多余,因为初始值通常是这样。空白初始化(“”)使得如果你经历一个意外的路径(这可能是好的或坏的,因为它可能掩盖代码中的逻辑错误),就不可能收到空指针异常。
有一个初始值通常是好的,但要使它对于将使用你的String而不是随机初始值的代码有意义。