婚恋系统源码优化的目的是在于保障程序的健壮性,当程序能够正常运行时,有时候也没有必要花费太多时间。
看一个例子,请大家注意这样的代码,婚恋系统源码在循转中调用了方法,所以getList()会执行多遍,带来性能上的损耗。
public static void main(String[] args) { for (int i = 0; i < getList().size(); i++) { } } public static List<String> getList() { System.out.println("test"); List<String> stringList = new ArrayList<>(); stringList.add("1"); stringList.add("2"); stringList.add("3"); return stringList; }
即使个将getList()作为临时变量存储起来,依旧会多次执行size()方法,错误例子比如
public static void main(String[] args) { List<String> list = getList(); for (int i = 0; i < list.size(); i++) { } }
所以婚恋系统源码正确的执行方法是
public static void main(String[] args) { for (int i = 0, size = getList().size(); i < size; i++) { } }
上诉的例子验证了一个观点
永远不要在for循环的第二个参数使用方法调用
婚恋系统源码的局部变量在使用完时,就处于不可视阶段,垃圾回收机制也会尽快的回收它们。
虽然这三个对象都可以实现拼接字符串的功能,但是它们会有很大的性能顺序之分,因为String本身是存在常量池中,它对的任何改变都不影响到原对象,相关的任何改变都会生成新的对象。
来看看它们三者的区别。
来验证一下它们的效率。
public static void main(String[] args) { long times = System.currentTimeMillis(); String string = ""; for (int i = 0; i < 10000; i++) { string = string + "a"; } System.out.println("间隔:" + (System.currentTimeMillis() - times)); // 304 }
public static void main(String[] args) { long times = System.currentTimeMillis(); StringBuffer stringBuffer = new StringBuffer(); for (int i = 0; i < 10000; i++) { stringBuffer.append("a"); } System.out.println("间隔:" + (System.currentTimeMillis() - times)); // 20 }
public static void main(String[] args) { long times = System.currentTimeMillis(); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < 10000; i++) { stringBuilder.append("a"); } System.out.println("间隔:" + (System.currentTimeMillis() - times)); // 15 }
我尝试一万次的拼接字符串,从结论看出,StringBuild 和 String 相比,差距巨大。
其实回收机制会自动回收一些婚恋系统源码不再使用的对象,一般情况下,我们不用手动回收,我们只能建议/提醒它回收。 什么意思呢?
就是我们将Null赋值给这个对象即可。
if(obj == null) create obj; ... obj = null;
以上,就是婚恋系统源码可以优化的地方。
声明:本文由云豹科技转发自Android唐浮博客,如有侵权请联系作者删除