【发布时间】:2012-07-21 16:08:51
【问题描述】:
以下语句在 Java 中有效。
int a=50;
String tmp="a = ";
String b=tmp+a;
String 类型的b 现在包含a = 50(作为字符串)。
虽然tmp 是String 类型,a 是int 类型,但还是会进行连接(即使Java 不支持运算符重载)。
Java 不支持运算符重载的原因之一(与其他语言一样。事实上,我对任何语言都没有深入的了解)。
Java 不支持运算符重载。运算符重载有时是 C++ 程序中的歧义,Java 设计团队认为它造成的麻烦比 益处。
More关于它。
如何评估此语句String b=tmp+a;? Operator Overloading 内部一定有一些等价的概念。
只有一个问题:我们能否从字面上理解它是如何实现的,或者我们应该相信“这只是语言的一个特性”?
我听说 Java 编译器使用 StringBuilder/StringBuffer(使用 append() 方法)来实现这一点,但我不确定。
【问题讨论】:
-
它只是作为特例内置在编译器中;没有什么可以一概而论的。
标签: java string operator-overloading string-concatenation