当前位置: 首页 > 面试题库 >

以静态方式创建对象

桂智志
2023-03-14
问题内容

谁能解释Java如何执行此代码?我的意思是执行每个语句的顺序。

public class Foo
{
    boolean flag = sFlag;
    static Foo foo = new Foo();
    static boolean sFlag = true;

    public static void main(String[] args)
    {
        System.out.println(foo.flag);
    }
}

输出:

false

问题答案:
  • 类初始化开始。最初foo为null,sFlag为false
  • 第一个静态变量初始值设定项(foo)运行:
    • Foo创建了一个新实例
    • 用于flag执行的实例变量初始值设定项-当前sFlag为false,因此值为flagfalse
  • 执行第二个静态变量初始化器(sFlag),将值设置为true
  • 类初始化完成
  • main运行,打印出foo.flag,这是错误的

请注意,如果sFlag声明final,则将其视为 编译时常量
,此时,对其的所有引用基本上都将内联到true,因此foo.flag也是如此。



 类似资料:
  • 问题内容: 我正在尝试从PHP数组创建JSON对象。该数组如下所示: 编码JSON的代码如下所示: 最后,JSON文件应该看起来像这样: 如何将创建的JSON代码封装在“项目”中:{JSON CODE HERE}。 问题答案: 通常,您将执行以下操作: 但是,似乎您希望输出与“ ”一起使用,因此最好确保通过传递常量来强制将其编码为对象。 “ ”括号指定一个对象,“ ”用于根据JSON规范的数组。

  • 我希望函数位于类中(不污染全局名称空间),但可以静态访问(从不创建它们所在的对象)。提议的解决办法: 这是一个好的解决方案,还是不可避免地会创建一个对象?我应该使用哪种图案?

  • 问题内容: 这是指帖子 ..无法回复或评论任何这样创建的新帖子。为什么是我的 发出警告-应该以静态方式访问静态字段MyUnits.MILLSECONDS吗?谢谢。 问题答案: 因为当您访问静态字段时,您应该在类(或本例中为枚举)上执行此操作。如 不在实例中 编辑 要解决 为什么这样 的问题:在Java中,当您将声明为时,就是说它是类的成员,而不是对象(因此为什么只有一个)。因此,在对象上访问它是没

  • 问题内容: 我正在学习“ 有效的Java” ,书中并未建议我认为一些标准的东西,例如对象的创建,我的印象是构造函数是最好的方法,书中说我们应该利用在静态工厂方法中,我不能说出一些优点,而在缺点中却有缺点,所以我在问这个问题,这是使用它的好处。 优点: 静态工厂方法的一个优点是,与构造函数不同,它们具有名称。 静态工厂方法的第二个优点是,与构造函数不同,不需要每次调用它们时都创建一个新对象。 静态工

  • 我有一个这样的层次结构: 线性布局(水平) 图像视图 线性布局(垂直) 文本视图 文本视图 文本视图 文本视图 我希望能够通过迭代添加上面的层次结构,只要可以从数据库中获得数据(使用Parse) 我尝试过将ImageView和LinearLayout放在父LinearLayout下,但似乎不起作用。这是我在Mainactive中的代码。Java: 我不知道哪里出错了,因为我的代码没有提示任何错误。

  • 问题内容: 例如,在Java中,我可能有一个类,并且有一个名为的静态方法,因此我可以执行以下操作: 我该如何在目标C中做类似的事情? 非常感谢 问题答案: 在Objective-C中,您将此称为“类方法”,请参见此处: 该 + 是最重要的事情; 您可以这样调用方法: