标准Java API中的某些类与其他类略有不同.我在谈论那些没有编译器和/或JVM特殊支持就无法实现的类.
我马上提出的是:
Object (显然)因为它除了其他东西之外没有超级课程.String 因为该语言对+运算符有特殊支持.Thread 因为它有这个神奇的start()方法,尽管事实上没有字节码指令"分叉"执行.我想这些类似于JLS中提到的所有类都是这样或那样的.如我错了请纠正我.
无论如何,还有其他类似的课程吗?Java语言中是否有完整的"荣耀类"列表?
Yis*_*hai 35
有很多不同的答案,所以我认为收集它们(并添加一些)会很有用:
注:我离开了名单的事情,提供JNI(如IO),因为你总是可以实现自己的JNI调用,如果你是这样的倾向.但是,以特权方式与JVM交互的本机调用是不同的.
数组是有争议的 - 它们继承了Object,具有理解的层次结构(Object []是String []的超类型),但它们是语言特性,而不是自己定义的类.
Mic*_*rdt 19
Class, 当然.它有自己的文字(与它共享的区别String,BTW),并且是所有反射魔法的起点.
Boz*_*zho 10
由于提到了重要的类,我将提到一些接口:
的Iterable(因为1.5)接口-它允许一个对象参与foreach循环:
Iterable<Foo> iterable = ...;
for (Foo foo : iterable) {
}
该Serializable接口有一个非常特殊的意义,从一个标准的接口不同.您可以定义将被考虑的方法,即使它们未在界面中定义(如readResolve()).该transient关键字是影响行为的语言元素Serializable实现者.