java - 将实例变量初始化为 null、 ""或 0

标签 java null initialization instance-variables

用默认值初始化变量时:

有什么区别:

private static String thing = null;

private static String thing = "";

我不明白哪个更好,为什么也不知道处理其他数据类型的最佳方式是什么。

private static int number = 0;
private static double number  = 0;
private static char thing = 0;

抱歉,我很难学习新语言。

最佳答案

除了将String初始化为空字符串

private static String thing = "";

其他的赋值是不必要的:Java会将所有原始类型的成员变量设置为其默认值,并将所有引用类型(包括java.String)设置为null

String 初始化为 null 还是空字符串由您决定:“无”和“空字符串”是有区别的< sup> *,所以你必须决定你想要哪一个。


* “nothing”和“empty string”之间的区别源于对 null 字符串不可能进行任何操作的观察——例如,它的长度是未定义的,你不能遍历它的字符。相反,空字符串的长度是明确定义的(零),您可以迭代它的字符(这是一个空迭代)。

关于java - 将实例变量初始化为 null、 ""或 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19697003/

相关文章:

java - 如何在java中创建数组并传入graphviz java方法?

csv - Neo4j 使用带有空值的 MERGE

php - 将日期字段留空时,在 MySQL 数据库中将日期设置为 NULL

C++ static const 和初始化(有没有惨败)

java - 如何强制Spring Scheduled运行单个方法的并行执行?

java - 防止 API 中的 System.exit()

c - 编译器如何在 C 中将数组初始化(为零)?

python - __init__.py::使子模块例程在顶层导入时可用

java - 在Android上与USB设备通信

c++ - 为什么 gsl::not_null 确保 ptr 在 get() 上不为空?