(1)stringbuffer a="1"请问为什么string a="1"就可以,而前面的关于STRINGBUFFER就不能呢?
(2)system.out.print((new stringbuffer("1"))+2)为什么不对呢?而system.out.println("1"+2)就行呢?
(3)请问这种形式可以吗?为什么呢?string c="1"+new stringbuffer("2")
拜托各位前辈给予我指导谢谢大家
(2)system.out.print((new stringbuffer("1"))+2)为什么不对呢?而system.out.println("1"+2)就行呢?
(3)请问这种形式可以吗?为什么呢?string c="1"+new stringbuffer("2")
拜托各位前辈给予我指导谢谢大家
而 StringBuffer 是一个普通的类,
2.因为StringBuffer是没有"+"这个操作的,故不行。
3.可以,因为String有“+”这个操作。
String s="aaaa";是因为常量池的原因才有的写法,这个论坛里有很多关于String的帖子。可以好好总结总结。
好像是我搞错了,Java编译的时候确实对“=”进行了不同的解释。但是自定义操作符是不可能的。也就是说Java对操作符重载是对程序员透明的。
只是在java编译器里做了一点手脚。
javac对String的运算符做了特殊处理。
比如:
String s = "abcd";
s += "s2";
编译器转换成如下语句:
String s = "abcd";
s=(new StringBuilder()).append(s).append("abcd").toString();