我很早就学过Java数据类型,发现它们是原始类型。尽管Java是面向对象的语言,但其数据类型并不是对象。这是为什么呢?
我很早就学过Java数据类型,发现它们是原始类型。尽管Java是面向对象的语言,但其数据类型并不是对象。这是为什么呢?
class MyInteger extends Integer /* a builtin numeric type */ {
public ... add(...) { /* a different way of doing addition */ }
}
Int
,Long
等,但映射到JVM的int
,long
等原语。有一个提案添加值类到Scala;您可以创建自己的类,将其映射到JVM原始类型。对于值类将有限制,您不能像“普通”类那样做所有事情。 - Jesper更加高效的处理方式是使用基本类型,而不是将每个变量作为完整的对象。最常见的类型(例如int、char、float等)是简单的基本类型,其余则是对象。
性能和内存占用是使用基本数据类型而不是完整对象的良好理由。