Java编译器用串联替换StringBuilder
发布时间:2020-12-15 05:18:00 所属栏目:Java 来源:网络整理
导读:这是一些简单的 Java代码: String s = new StringBuilder().append("a").append("b").append("c").toString(); 我用JRE 1.6编译它,我在反编译的类文件中观察到以下内容: String s = "a" + "b" + "c"; 我有以下问题: 为什么编译器选择”而不是StringBuilde
这是一些简单的
Java代码:
String s = new StringBuilder().append("a").append("b").append("c").toString(); 我用JRE 1.6编译它,我在反编译的类文件中观察到以下内容: String s = "a" + "b" + "c"; 我有以下问题: >为什么编译器选择”而不是StringBuilder? 解决方法
反过来说. for String是在幕后使用StringBuilder(或StringBuffer)实现的(参见
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html或
http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.18.1).
因此,一旦编译完成,您的两个代码片段就难以区分.反编译器必须猜测原始形式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |