java - 是一个 boolean 型实例变量默认值是true还是false

标签 java instance-variables

  1. 如果您在类中创建一个实例变量,默认值是 true 还是 false 除非另有更改?

  2. 将实例变量作为 ex 是一种好习惯吗? true 然后将值更改为 false 并在整个类(class)中使用该变量?还是在使用实例变量方面您应该在概念上避免这种情况?

最佳答案

If you create an instance variable in a class, is the default value true or false until otherwise changed?

默认值为false。 ( JLS 4.12.5 )

Is it good practice to have an instance variable as ex. true then change the value to false and use that variable throughout your class?

我假设您的意思是,定义 boolean 实例变量以便您可以依赖默认初始化是否是一种好习惯。

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

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

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

    (现在,如果变量被否定,它可能让您的代码更容易理解......但关键是您应该根据使代码易于理解的因素来决定 ... 不是基于利用默认初始化。)

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

关于java - 是一个 boolean 型实例变量默认值是true还是false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21950820/

相关文章:

java - 使用 SynchronousQueue 解决消费者生产者并发问题。公平属性不起作用

Java - 如何正确添加多个带有背景图像的面板?

java - Java 中对象的实例,奇怪的行为

ruby - 直接访问实例变量与使用访问器方法

java - 将实例变量插入多维数组

java - 何时可以将应用程序视为 Java EE 应用程序

java - Android Studio上的Gradle同步失败

java - 在 JSP 中将今天的日期显示为 "Today"而不是 "dd/mm/yyyy"

java - 错误: identifier expected in Java

java - 如何修复 - 41 : non-static variable cannot be referenced from a static context -> What is the reason for this?