这个运算符在Java里有一项特殊用途连接不同的字串这一点已在前面的例子中展示过了尽管与+的传统意义不符但用+来做这件事情仍然是非常自然的在C++里这一功能看起来非常不错所以引入了一项运算符过载机制以便C++程序员为几乎所有运算符增加特殊的含义但非常不幸与C++的另外一些限制结合运算符过载成为一种非常复杂的特性程序员在设计自己的类时必须对此有周到的考虑与C++相比尽管运算符过载在Java里更易实现但迄今为止仍然认为这一特性过于复杂所以Java程序员不能象C++程序员那样设计自己的过载运算符
我们注意到运用String +时一些有趣的现象若表达式以一个String起头那么后续所有运算对象都必须是字串如下所示
int x = y = z = ;
String sString = x y z ;
Systemoutprintln(sString + x + y + z);
在这里Java编译程序会将xy和z转换成它们的字串形式而不是先把它们加到一起然而如果使用下述语句
Systemoutprintln(x + sString);
那么早期版本的Java就会提示出错(以后的版本能将x转换成一个字串)因此如果想通过加号连接字串(使用Java的早期版本)请务必保证第一个元素是字串(或加上引号的一系列字符编译能将其识别成一个字串)