Java不是纯粹的面向对象 - 这是什么意思w.r.t原始类型?

时间:2012-10-01 09:41:29

标签: class primitive-types

当我查看Class.java的javadoc时,它说:

/*The primitive Java types ({@code boolean},
 * {@code byte}, {@code char}, {@code short},
 * {@code int}, {@code long}, {@code float}, and
 * {@code double}), and the keyword {@code void} are also
 * represented as {@code Class} objects.
*/

我一直听说Java中的原始类型不是类/对象,因此Java不是纯粹的面向对象。但上面的JavaDoc让我很困惑。

1 个答案:

答案 0 :(得分:0)

不要对“代表”一词感到困惑,搞乱“类型”和“价值”。表示由Java虚拟机创建,它们不是为每个原始实例化的(这将是autoboxing,尽管某些实例被缓存):

  

有九个预定义的Class对象来表示八个   原始类型和无效。这些是由Java Virtual创建的   机器,并且与它们的基本类型具有相同的名称   表示,即boolean,byte,char,short,int,long,float和   双

     

这些对象只能通过以下公共静态进行访问   最终变量,并且是此方法的唯一Class对象   返回true。

http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isPrimitive%28%29