为什么在Java中,当String是一个类时,您可以使用+运算符添加String?在String.java
代码中,我没有找到这个操作符的任何实现。这个概念是否违背了面向对象的思想?
发布于 2012-07-10 15:25:40
Java语言为字符串连接运算符(+)和将其他对象转换为字符串提供了特殊支持。字符串连接是通过StringBuilder
(或StringBuffer
)类及其append
方法实现的。
发布于 2012-07-10 22:39:41
当应用于String
时,+
运算符的含义由语言定义,每个人都已经写过了。既然您觉得这还不够令人信服,请考虑以下内容:
整数、浮点数和双精度数都有不同的二进制表示,因此,就位操作而言,添加两个整数与添加两个浮点数是不同的操作:对于整数,您可以逐位相加,进位并检查溢出;对于浮点数,您必须分别处理尾数和指数。
因此,原则上,“添加”取决于被“添加”的对象的性质。Java为字符串以及整型和浮点型(长整型、双精度型等)定义了它。
发布于 2012-07-10 15:25:03
在编译时,+
运算符通常由StringBuilder
替换。有关该问题的更多详细信息,请查看此answer。
https://stackoverflow.com/questions/11408427
复制相似问题