java编写程序判断这个声明是否合法:String str='a'+'b';求解谢谢

如题所述

合法啊,string追加而已,不过要是频繁追加需要用string buffer或者stringbuild,因为string不可变,你这么追加实际是一直在new新对象,大量追加消耗性能。你要用程序判断可以用try catch捕获异常,如果不合法,在catch里面抛出异常。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-06
若这些字符串都是第一次出现,且java编译器,虚拟机都没有做优化的话,那么应该是3个对象,分别是a,b,ab, 原因是String 对象是final修饰的也就是说,只能新建,不能修改,所以肯定得有4个对象。不过高版本的java编译器,或虚拟机都是有做优化的,那时候就不一定了。在不优化的情况下,肯定是StringBuilder更优,原因就是创建对象的开销是很大的。StringBuilder.append操作是不需要创建新对象的,ab就不存在了,随着+号的增加,性能差异会越来越明显。本回答被网友采纳
相似回答