在复写equals和hashcode方法时,我们应该遵循什么规则? 不可变类(immutable class)是什么? 在特定的情况下,应当选用哪种最相关的异常类型?运行时异常(Runtime exception)还是可捕获异常(checked exception)? 对于一个托管语言(managed language,详细请参考 wiki介绍),如何在混淆编译时保留(preserve)类的成员?