时间具有一维性,我们每个人都要利用自己有限的时间去创造跟多的价值。软件优化就是在不停地去优化,亦实在创造价值,本篇文章,就和小编一起来了解一下关于软件优化的知识吧。
线程不销毁意味着上条线程set的ThreadLocal.ThreadLocalMap中的数据依然存在,那么在下一条线程重用这个Thread的时候。很可能get到的是上条线程set的数据而不是自己想要的内容。这个问题非常隐晦,一旦出现这个原因导致的错误,没有相关经验或者没有扎实的基础非常难发现这个问题。因此在写代码的时候就要注意这一点,这将给你后续减少很多的工作量。
切记以常量定义的方式替代魔鬼数字。魔鬼数字的存在将极大地降低代码可读性,字符串常量是否使用常量定义可以视情况而定,long或者Long初始赋值时,使用大写的L而不是小写的l,因为字母l极易与数字1混淆,这个点非常细节,值得注意
所有重写的方法必须保留@Override注解。这么做有三个原因:清楚地可以知道这个方法由父类继承而来,getObject和get0bject方法,前者第四个字母是“O“,后者第四个子母是“0“,加了@Override注解可以马上判断是否重写成功,在抽象类中对方法签名进行修改,实现类会马上报出编译错误,推荐使用JDK7中新引入的Objects工具类来进行对象的equals比较,直接a.equals(b),有空指针异常的风险。
循环体内不要使用“+“进行字符串拼接,而直接使用StringBuilder不断append,说一下不使用“+“进行字符串拼接的原因,假如我有一个方法:将这段代码编译之后的.class文件,使用javap -c进行反编译一下,截取关键的一部分。意思就是每次虚拟机碰到“+“这个操作符对字符串进行拼接的时候,会new出一个StringBuilder,然后调用append方法,最后调用toString方法转换字符串赋值给oriStr对象。即循环多少次,就会new出多少个StringBuilder来,这对于内存是一种浪费。
以上,就是小编在本篇文章中对于软件优化的简单介绍。由于篇幅的原因,涉及到的内容十分有限,其实还有很多关于软件优化的知识小编没有讲到。不过对软件优化感兴趣的小伙伴,可以看一下小编之前写过的有关于软件优化的知识。俗话说,活到老,学到老,还不赶快行动起来。
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!