gpt4 book ai didi

java - 当未使用时,对象是否在编译时被优化?

转载 作者:行者123 更新时间:2023-12-01 18:37:27 25 4
gpt4 key购买 nike

温习编程和java

  • JDK 1.6
  • IDE Eclipse(Helios)

创建了一个带有私有(private)构造函数的简单类,如下所示

package learn;

public class Recherche {

final int iInteger = 0;

private Recherche() {
}
}

这是从项目入口点调用的,如下所示

package learn;

public class Tutorial {

public static void main(String[] args) {
System.out.println("Hello Windows 7x64");
Recherche rech;
rech = null;
}
}

在 Recherché 类中放置一个断点 final int iInteger = 0;使用声明为 private 的默认 ctor,我希望应用程序编译失败,或者在执行时因异常而终止。但两者都可以完美地工作。

对象是否在编译时优化,从而忽略了构造函数?

最佳答案

用这一行

Recherche rech;

没有创建Recherche对象;只是一个引用变量。这里也没有对象:

rech = null;

没有调用构造函数来优化掉;没有对象,也没有 int 实例变量可供优化。

添加实际创建对象的调用将导致构造函数为私有(private)的编译器错误:

rech = new Recherche();  // can't access private constructor

关于java - 当未使用时,对象是否在编译时被优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com