回答
没有区别
我们写的包从一个名称相似的类区分开来,如果有的话,您的项目。例如,如果您的项目也有一个名为String
的类,java将不知道要使用哪个String类 - 您的或Java的内置类。
谢谢Raghuram!您的帖子非常有用。 :) –
没有区别。隐式地导入所有java程序中的java.lang
包。
谢谢亚萨! :) –
如果没有定义自定义的“字符串”类,则没有区别。
但是,如果你定义了你自己的“String”类。然后你需要额外的java.lang来识别正确的String类。
嗯,我明白了!谢谢Gapton! :) –
为什么我们要写完整包的名字?
在这种情况下,你应该不需要。
作为@Asaph状态,java.lang
是隐式地将导入到每个类中。这意味着您的代码可以通过简单的类名引用String
和其他类,如Boolean
,System
和NullPointerException
。
唯一的情况下,你会需要通过其完全限定域名(java.lang.String
)是指String
是:
如果你是在一些反射API提供的类名作为字符串,或
如果你已经愚蠢地写了一个你自己的类,其简单的名字是
String
;例如com.example.stupid.String
,并且您已明确导入版本的String
为其他类。
最佳做法是通过其简单的名称来指代班java.lang
,并不能与其他套餐一样简单的名称定义自己的类。
在一般情况下,这两种形式的意思是完全一样的东西,并给你一模一样的编译代码:
// version 1
package com.example.bar;
import com.example.foo.Foo;
public class Bar {
private Foo myFool;
...
}
// version 2
package com.example.bar;
public class Bar {
private com.example.foo.Foo myFool;
...
}
大声笑。 Gr8发布。非常感谢Stephen C! :) –
- 1. java中的初始化初始化
- 2. 初始化在JAVA
- 3. 初始化在Java
- 4. 初始化在Java中
- 5. 在java中初始化byte []
- 6. 在Java中StringBuilder初始化
- 7. Java T初始化
- 8. Java类初始化
- 9. Java初始化块
- 10. JAVA初始化块
- 11. 正在初始化,并在Java中
- 12. 在Java中初始化最终字段
- 13. 在java中初始化数组名称
- 14. 初始化对象直接在Java中
- 15. 在一行中初始化Java数组
- 16. 如何在Java中初始化Set?
- 17. ArrayList在java中未正确初始化
- 18. 双括弧初始化在java中
- 19. 在Java中初始化大量数组?
- 20. 声明和初始化在java中
- 21. 在JAVA中随机初始化BitSet
- 22. 泛型类 - 初始化在Java中
- 23. 在Java中初始化的顺序
- 24. 如何在Java中初始化图形?
- 25. 在Java中初始化的顺序
- 26. 初始化在初始化列表
- 27. std ::数组初始化列表在初始化列表中初始化
- 28. Java - 私有初始化程序或在构造函数中的初始化?
- 29. Java类初始化难题
- 30. 数组初始化Java
你没有使用'String'或'的java.lang。字符串'来初始化任何东西。你只需使用这些标记**来命名**类型。 –