有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

纯粹主义者和实用主义者编程模型之间的java差异

在阅读介绍时,我在Herbert Schildt的《Java完整参考》一书中发现了这句话

Java manages to strike a balance between the purist's "everything is an object" paradigm and the pragmatist's "stay out of my way" model. The object model in java is simple and easy to extend, while primitive type, such as integer, are kept as high performance non objects.

现在我知道Java是纯面向对象的,所以在Java中,一切都可以被视为对象,但我不知道另一个模型


共 (1) 个答案

  1. # 1 楼答案

    在Python中,整数是一个对象,它有方法

    x = 1
    y = x.__add__(2)
    print(y) # 3
    

    变量xy只包含对对象的引用。(你当然可以写x + 1。)

    在Java中,整数是原语。它们不是代表价值的对象;它们本身就是价值观。(Java也有一个对象类型,或引用-type,用于整数,但这不是主题。)类型int没有方法

    int x = 1;
    int y = x + 2;
    System.out.println(y); // 3
    

    关于你的问题:

    [...] Java is purely object oriented so in Java everything can be considered as an object [...]

    从上面的例子中可以看出,这根本不正确。这就是本书所讨论的:虽然Java是面向对象的,但它也支持原始数据类型,如int。直接管理一个值比管理一个对象成本更低,这是有意义的,因为处理器处理的是值,或者更确切地说是数字,而不是对象

    书中提到的实用主义者“别挡我的路”模型背后的想法是:当你处理整数时,你想处理值。为什么要把面向对象放在两者之间,甚至为了纯粹主义而放弃性能