|
1
|
| Andrea Richiardi · 技术社区 · 13 年前 |
|
|
1
2
Java中的不可变对象是指不能通过任何正常(非反射)执行路径更改其内部状态的对象。这意味着:
Java语言
当然,实际的类定义是由JVM通过类加载器加载的,一旦定义好,就会在JVM的生存期内设置,并且不会更改。 |
|
|
2
2
1) 我不确定它是否可以被称为不可变的,至少在古典意义上是这样,看看吧
2) 我们可以在HashMap中使用它,Class是一个singleton,它的hashCode和equals基于它的标识,但需要注意的是,一个类在不同的类加载器中会有不同的实例,所以classloader1中的MyClass.Class!=来自classloader2的MyClass.class |
|
|
3
0
这个
返回此对象的运行时类。
返回的Class对象是由锁定的对象
实际结果类型为
因此,在任何情况下
但是,要小心类型擦除:对于
|
|
4
0
是的(假设类加载器已经准备好了,因为ir总是返回相同的结果
这个
请注意,相同名称但由不同的类加载器加载的类具有不同的哈希代码。通常情况下,这不应该是一个问题,因为他们会 different run-time types ,并且它们的实例将不兼容赋值。 |