Java如何决定何时导入?
为什么Java不需要导入像Integer,String等类,而需要导入其他类呢?
有一个java.lang.*
的隐式导入。
从Java规范 :
编译单元自动访问其包中声明的所有types,并自动导入预定义包
java.lang
声明的所有公共types。
java.lang
包是默认导入的,不需要显式导入。
java.lang
包中的类不需要导入(编译器就像总是导入一样)。 这个包包括核心类,如String,Enum,Runnable,NullPointerException,当然还有像Integer和Double这样的基本包装类。
因为它们属于java.lang.*
包。 而且,它由编译器隐式导入。 如果你这样做,那么它不会抱怨你。
java.lang是in-build,隐式地在java中导入,不需要手动导入
由于它包含非常经常使用的类,为了您的方便,它们已经将其导入为可选项
java中的每个类都在一个包中,如果没有定义包,那么它被理解为默认包。 而在包的顶部是java.lang。*,所以我们不需要导入它需要导入其他类。
整数,string等类都存在于默认导入的包java.lang中。