关于java 代码的思考

for (String string : LinkList) {
    String RegisteredFund = null;
    String FounderName = null;
    List<String> AssociatedCompany = new ArrayList<String>();
    Map<String, String> TotalData = new HashMap<String, String>();

最近自己写代码发现java 一段代码,这代码每次从开始循环都要申请内存空间,感觉效率有点低,能不能在一开始申请一块内存,然后 循环结束给这个内存块清0,然后到循环开始的时候还是在这片区域赋值呢?感觉这样相当于缓存一个block 这样就会速度提高很多。

麻烦对java 内存申请熟悉的指教一下,谢谢

阅读 2.1k
3 个回答

放外面并不会在性能上有什么飞跃,反而会有线程安全的问题

新手上路,请多包涵

其实对于内存并没有什么影响:
AssociatedCompany放到上面,每次循环完成之后AssociatedCompany所指向的对象就成了没有指针引用的对象,按照JVM引用计数法可以判断当前对象可以回收。

不建议你这么做

1、会大大增加编程的复杂度,而且手工维护这个内存区域,有可能会内存泄漏,想想C语言的痛苦,就是手工管理内存,Java只要你不一次性申请大的内存,变量的作用域在for循环内,可以很好的回收。

2、能不能提升性能,需要测试,代码性能的瓶颈,往往是测试出来的(28原则),所以你这块代码,可以打印下耗时,看看是不是性能瓶颈,再决定是否要优化(大概率不是性能瓶颈)。

3、用Java了,可以多关注下代码的维护性,代码的可读性等,关注下业务的逻辑是否正确,你头发会少掉一点。

可以关注下我的博客:https://www.epoooll.com/

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题