我正在阅读认证书,在这里我遇到了令人困惑的问题.书中说这行代码只创建一个String对象,但我认为创建了2个对象.我对吗?
String summer = new String("Summer");
Run Code Online (Sandbox Code Playgroud)
不是常量文字"Summer"创建并放置在String常量池中吗?
编辑:伙计们我很困惑我需要确切的答案.这里有不同的帖子说1对象和2对象正在创建.
在创作可能是你的困惑的原因.实际上,你是对的:该行中涉及两个字符串实例
String summer = new String("Summer");
Run Code Online (Sandbox Code Playgroud)
由于涉及两个字符串实例,因此必须在某个时间创建它们.
创作时间是最大的不同.这"Summer"是一个常量,在加载包含此常量的类时会加载到内部字符串池中.因此,在加载类时会创建此内部字符串实例.
summer在运行包含此行的代码时,将创建变量引用的字符串对象.而已.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |