這個運算符在Java裡有一項特殊用途:連接不同的字串。這一點已在前面的例子中展示過了。盡管與+的傳統意義不符,但用+來做這件事情仍然是非常自然的。在C++裡,這一功能看起來非常不錯,所以引入了一項“運算符過載”機制,以便C++程序員為幾乎所有運算符增加特殊的含義。但非常不幸,與C++的另外一些限制結合,運算符過載成為一種非常復雜的特性,程序員在設計自己的類時必須對此有周到的考慮。與C++相比,盡管運算符過載在Java裡更易實現,但迄今為止仍然認為這一特性過於復雜。所以Java程序員不能象C++程序員那樣設計自己的過載運算符。
我們注意到運用“String +”時一些有趣的現象。若表達式以一個String起頭,那麼後續所有運算對象都必須是字串。如下所示:
int x = 0, y = 1, z = 2;
String sString = "x, y, z ";
System.out.println(sString + x + y + z);
在這裡,Java編譯程序會將x,y和z轉換成它們的字串形式,而不是先把它們加到一起。然而,如果使用下述語句:
System.out.println(x + sString);
那麼早期版本的Java就會提示出錯(以後的版本能將x轉換成一個字串)。因此,如果想通過“加號”連接字串(使用Java的早期版本),請務必保證第一個元素是字串(或加上引號的一系列字符,編譯能將其識別成一個字串)。