近日,接触了stringbuilder和string的差异这一问题,也学习了反编译工具,总结如下
StringBuilder取代String的好处。【参考DoubleAC与AC0的decode(double v)代码】
String能够进行“+”连接字符串,是因为String类重载了“+”。
例如:(AC0.decode()):
String sequence = "";
sequence += A[index];
实际编译过程中是:
sequence = (new StringBuilder()).append(s).append(A[i]).toString();
每次循环都会创建一个新的StringBuilder对象,从而产生大量无引用指针,占用大量内存。因此直接用StringBuilder取代就能解决这一问题了。
jad下载地址:http://yunpan.cn/QXewrIhHWCsnC
使用步骤:1.将jad放在需要反编译的文件的同根目录下;
2.jad 和文件AC0.java都在e://java目录下,
3.生成AC0.AC0.java的文件即是反编译文件;