char+string 这里的加号重载过了?? src里的源代码在哪里?? char ch='a';String str="b";String temp = ch+str; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C++里边叫重载加操作符,java里边没有这个语法。 String类型的对象和基本类型以及基本类型的包装类相+,都会自动转型的. 其实就是语言本身对String类型提供了+的重载.源代码估计要去看编译器的源代码了.去openjdk.java.net下载分析吧. 这是编译器的东西,不在 src 源代码中。编译器 %java_home%/lib/tools.jar 中在 com.sun.tools.javac 这个包下面。char ch = 'a';String str = "b";String temp = ch + str;这个编译器会处理成使用 StringBuilder(JDK 5 及以上)或 StringBuffer(JDK 5 以下)进行连接。如果是 String str = 'a' + "b"; 这样的话,由于是两个常量相加,编译器会进行优化,在编译时就会处理成字符串 ab 了。 运算符重载和指针一样,虽然能够使我们的程序更加灵活,但也有很多的不确定因素,不符合java的设计思想,所以我们是没法做运算符重载的。但我认为,string的+是java为我们做的唯一的运算符重载(先调toString(),再调用StringBuffer.append()),方便我们做字符串的连接。 String中的+号并不是运算符重载,这个只是编译器优化罢了。在JVM的指令中根本不支持这个 String中的+号并不是运算符重载,这个只是编译器优化罢了。在JVM的指令中根本不支持这个 叫运算符重载是没有问题了,跟jvm没有关系。其他的直接支持运算符重载的语言也不会创建特殊的指令来专门支持 +号挺方便的啊,可以连接字符串.但是JAVA中没有运算符重载的概念. jsp 求助 关于数据查询 关于socket的问题 如何能在exception的tracelog里面不输出at XXX.XXX(XXX.java)这样的信息? XML 节点数问题 用java语言怎样进行文件的删除 问个基础问题:重构和改写有什么区别 ActionListener这个东西怎么用,什么意思 关于String类的intern()方法 如何判断一个JFrame有没有被别的窗口遮住? 请问 堆和栈有什么区别? 關閉Rational Rose 2003時出現如下錯誤,請高手指點. java分析识别文件
去openjdk.java.net下载分析吧.
在 com.sun.tools.javac 这个包下面。char ch = 'a';
String str = "b";
String temp = ch + str;这个编译器会处理成使用 StringBuilder(JDK 5 及以上)或 StringBuffer(JDK 5 以下)进行连接。如果是 String str = 'a' + "b"; 这样的话,由于是两个常量相加,编译器会进行优化,在编译时就
会处理成字符串 ab 了。
其他的直接支持运算符重载的语言也不会创建特殊的指令来专门支持