布尔实例变量的默认值是true还是false

时间:2014-02-22 06:42:54

标签: java instance-variables

  1. 如果在类中创建实例变量,则默认值为true或false,否则更改?

  2. 将实例变量设为ex是一种好习惯。如果为true,则将值更改为false并在整个类中使用该变量?或者你应该在概念上避免使用实例变量?

5 个答案:

答案 0 :(得分:8)

  

如果在类中创建实例变量,则默认值为true或false,否则更改?

默认值为false。 (JLS 4.12.5

  

将实例变量设为ex是一种好习惯。如果为true,则将值更改为false并在整个类中使用该变量?

我认为你的意思是,定义你的布尔实例变量是一种好习惯,这样你就可以依赖默认的初始化了。

答案是:不。这不是好的做法:

  • 定义实例变量是良好做法,以便它们对代码的读者有意义:

        // Good (probably)
        private boolean isValid = true;
    
        // Bad (probably)
        private boolean isNotValid;  // so that I can rely on default init
    

    (现在,如果变量被否定,可以使代码更容易理解......但重点是你应该根据使代码易于理解的内容来决定 / em> ...没有基于利用默认初始化。)

  • 花费时间在这种粒度级别上担心性能问题是不良做法。很有可能避免显式初始化的性能优势微不足道。

答案 1 :(得分:4)

JLS 4.12.5

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

         
        
    • 对于类型byte,默认值为零,即(byte)0的值。

    •   
    • 对于类型short,默认值为零,即(short)0的值。

    •   
    • 对于类型int,默认值为零,即0

    •   
    • 对于类型long,默认值为零,即0L

    •   
    • 对于类型float,默认值为正零,即0.0f

    •   
    • 对于类型double,默认值为正零,即0.0d

    •   
    • 对于类型char,默认值为空字符,即'\u0000'

    •   
    • 对于类型boolean,默认值为false

    •   
    • 对于所有参考类型(§4.3),默认值为null

    •   
  •   

答案 2 :(得分:3)

  

如果在类中创建实例变量,则为默认值   是真还是假,直到另有改变?

如果变量是布尔类型,则默认值为false,基元变量默认值为id 0,对象变量/引用变量默认值为null

  

将实例变量设为ex是一种好习惯。那么真的   将值更改为false并在整个类中使用该变量?

你可以这样做,这取决于你的要求。

答案 3 :(得分:1)

  

如果在类中创建实例变量,则默认值为true或false,否则更改?

如果该成员是原始成员,那么false。如果它是包装器,那么null

  

将实例变量设为ex是一种好习惯。如果为true,则将值更改为false并在整个类中使用该变量?或者你应该在概念上避免使用实例变量?

设置true或false取决于您的类上下文。完全没有问题。

例如:您正在创建一个客户对象并且具有一个实例memeber isActive。如果您的设计允许所有客户默认处于活动状态,那么哟是正确的。

答案 4 :(得分:1)

when you crate a variable of boolean   
public class check  {
static boolean  b;
    public static void main(String args[]) {
            System.out.print("The Default Value of Boolean is="+b);
     }
   }

enter image description here