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

为什么我们不需要导入java.lang包即可在Java中使用Integer类(包装类)

鞠晋
2023-03-14
问题内容

假设我想创建一个 Integer (不是int)类的对象,因为Integer类在另一个包中,所以我必须导入java.lang包以创建
Integer类对象。但是我没有导入包,但编译器没有给我一个错误。


问题答案:

这是在Java语言规范(JLS)的第7章中定义的:

编译单元自动导入public预定义包中声明的所有类型java.lang



 类似资料:
  • 问题内容: 在较高的层次上,我知道我们需要通过使用它们各自的包装类在Java集合中使用它们来“包装”原始数据类型,例如int和char。我想了解Java集合如何在低级询问:“为什么我们需要将原始数据类型包装为对象才能在集合中使用它们?”在此先感谢您的帮助。 问题答案: 在虚拟机级别,这是因为与引用类型(例如java.lang.Object及其派生类型)相比,原始类型在内存中的表示方式非常不同。例如

  • 问题内容: 在下面的代码中,为什么我需要导入但可以不导入就可以使用? 问题答案: 为了方便起见,Java编译器会为每个源文件自动导入两个完整的软件包: java.lang包和 当前包(当前文件的包)。 请参考 oracle.com了解更多信息(http://docs.oracle.com/javase/tutorial/java/package/usepkgs.html)

  • 问题内容: 我知道该包是由我们编写的每个Java程序自动导入的,因此包中的所有类对我们都是自动可用的。 我的问题是为什么也不要自动导入和其他软件包?那肯定会节省一些打字:) 因此,请解释为什么不这样做。 问题答案: 不自动导入过多的一个好理由是避免名称空间冲突。例如,如果其中的所有内容都是自动导入的,那么您想引用另一个名为“ Map”的类,则必须使用其完全限定的名称来引用它。 响应于该线程中的其他

  • 问题内容: 我开始使用RxJS,但我不明白为什么在此示例中我们需要使用类似or 的函数;数组的数组在哪里? 如果有人可以直观地解释正在发生的事情,那将非常有帮助。 问题答案: 当您有一个Observable的结果是更多Observable时,可以使用flatMap。 如果您有一个由另一个可观察对象产生的可观察对象,则您不能直接过滤,缩小或映射它,因为您有一个可观察对象而不是数据。如果您生成一个可观

  • 但代码不起作用。我是否需要将launchActivity定义为一个规则,或者是否存在我需要在Gradle中导入的库? 这些是我已经有的进口品

  • 问题内容: 我知道适用于一般不可变类的常见原因,即 不能改变为副作用 容易推断他们的状态 本质上是线程安全的 无需提供克隆/复制构造函数/工厂复制方法 实例缓存 无需防御副本。 但是,包装器类表示原始类型,并且原始类型是可变的。那么为什么包装器类不可变? 问题答案: 但是,包装器类表示原始类型,并且原始类型(String除外)是可变的。 首先,String不是原始类型。 其次,谈论原始类型是可变的