【问题标题】:Difference between initializing variables with null or 0 or "" [closed]用 null 或 0 或“”初始化变量之间的区别 [关闭]
【发布时间】:2016-02-22 08:40:11
【问题描述】:

在 java 中声明变量时,谁能提供简单的示例,何时何地声明 null0""?看了一些例子没看懂,谁能用一些简单的例子解释清楚?

【问题讨论】:

标签: java variables null initialization


【解决方案1】:
  • 类变量、实例变量或数组组件是initialized for you(非final的),所以不需要初始化为false/null/0 (这将是多余的):

    每个类变量、实例变量或数组组件在创建时都会使用默认值进行初始化(§15.9§15.10):

  • 需要初始化局部变量:

    局部变量略有不同;编译器永远不会为未初始化的局部变量分配默认值。如果您无法在声明它的地方初始化局部变量,请确保在尝试使用它之前为其分配一个值。访问未初始化的局部变量将导致编译时错误。

  • 如果你想要一个空字符串,例如,使用String myStr = "";

【讨论】:

    【解决方案2】:

    你可以使用""来声明一个字符串。

    为了声明任何其他非原始数据类型,您可以使用 null(注意空指针异常)。

    对于像byteint 这样的数字数据类型,可以使用 0。

    【讨论】:

    • 可以为 String 分配初始值 "",但该值与将值 null 完全不同。也许您可以扩大差异。
    【解决方案3】:

    Null - 这可以分配给所有非原始类型(只是为了表明它不引用任何对象,并且可以抛出空指针)

    " " - 仅适用于字符串文字

    零可以分配给所有基元和数字包装器/盒装基元

    char zeroChar = 0;
    float zeroFloat = 0;
    double zeroDouble = 0;
    short zeroShort = 0;
    long  zeroLong = 0;
    byte zeroByte = 0;
    int zeroInt = 0;
    

    【讨论】:

      猜你喜欢
      • 2016-04-17
      • 2013-11-10
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多