【问题标题】:Difference between operator and keyword in JavaJava中运算符和关键字的区别
【发布时间】:2016-01-15 13:53:36
【问题描述】:

到目前为止,我对 Java 的理解是,运算符类似于:

+,-,*,/,%,<,<=,== 等等……

关键字/保留词是这样的:

boolean,char,int,do,float,double,new 等等。

但是,通过阅读Java书籍和在线教程我看到new被称为运算符?但是,我认为运算符是如何专门分配给算术类型的?我看到的只有 28 个。为什么new 关键字也称为运算符?

谢谢

【问题讨论】:

  • 因为它执行一个操作。此外,goto 是保留关键字(未实现)。

标签: java operator-keyword keyword


【解决方案1】:

引用Oracle 的优秀教程(强调我的):

实例化:new 关键字是创建对象的 Java operator

从一开始就没有人说过你只能操作原始类型。你对物体进行操作;是的,有一些数字运算符仅限于原始类型。编辑:Java 中其他适用于非基元的运算符的示例是 instanceof+(用于字符串连接)。

另外,退一步考虑一下像 Scala 这样不区分原始类型和“引用”类型的语言。在 Scala 中,一切都是对象。运算符只是方法周围的语法糖......对这些对象进行操作。

【讨论】:

【解决方案2】:

操作员: 运算符操作操作数例如:a = 2; b = 2 c = a + b; c = 4;

操作数例如:a 到 z 和 A 到 Z 等。

关键字: 关键字是保留字,不应在程序中使用。

【讨论】:

    【解决方案3】:

    new 不是运算符,而是关键字,根据 JLS。

    JLS #3.12 中给出了运算符列表,而new 不在该列表中。

    JLS #15.10.1 的末尾,您可以看到“新关键字”的提及。

    【讨论】:

    • 这也是我遇到的。我仍然对哪个是什么感到困惑。运算符在 +、-、*... 方面有意义,而关键字在 char、boolean、int 方面有意义......为什么 new 应该是运算符。我不明白。
    • @FooFighter 我的理解是,操作员执行一些操作。与 new 相同也执行一些操作。分配内存等等。
    猜你喜欢
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 2014-10-28
    相关资源
    最近更新 更多