请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

您好,老师,这一块为什么要这么写

private List<OrderVo> assembleOrderVoList(List<Order> orderList,Integer userId){

        List<OrderVo> orderVoList = Lists.newArrayList();

        for(Order order : orderList){

            List<OrderItem>  orderItemList = Lists.newArrayList();//这一块每次循环都会创建对象,对于前台用户来说,可能订单项不是太多,没太大影响,可是针对于后台管理员的查询,那么它是有所有用户订单项,会不会内存泄漏?我也只是根据我的浅显知识分析,也可能不对,请老师帮我说明一下,谢谢

            if(userId == null){

                //todo 管理员查询的时候 不需要传userId

                orderItemList = orderItemMapper.getByOrderNo(order.getOrderNo());

            }else{

                orderItemList = orderItemMapper.getByOrderNoUserId(order.getOrderNo(),userId);

            }

            OrderVo orderVo = assembleOrderVo(order,orderItemList);

            orderVoList.add(orderVo);

        }

        return orderVoList;

    }


正在回答 回答被采纳积分+3

4回答

Geely 2018-05-14 19:12:20

你好,这里不会内存泄露的。首先这个方法上一层是分页的,也就是结果集的size可控。

另外在方法里new出来的对象回收很快的哟~如果fullgc不频繁 这么写都没关系。除非这个size非常大。但是我们size在分页可控的,所以不必担心哈。

1 回复 有任何疑惑可以回复我~
polo哦 2018-05-11 09:12:07

首先这个是局部变量,其次java有非常nice的垃圾回收机制,等这个函数结束完,引用不再被调用的时候就会清除掉,不太可能造成内存泄漏

1 回复 有任何疑惑可以回复我~
提问者 慕函数9708254 2018-05-14 23:27:07

谢谢老师,我懂了,没有想到分页,重点跑偏了,没有综合去看,另外你说的fullgc 我不太懂,不过我打算看下这个jvm虚拟机的回收机制,谢谢老师的回答,您解决了我的问题,另外我得攒一波老师,您讲的第二期也非常棒,讲解过程逻辑非常清晰,而且也很有耐心,最近刚辞职,因为想到自己职业规划的问题,希望看了您的视频之后,能让我再找到工作,还没看完,不过很谢谢您,后期我还会来和您学习我不知道的东西,谢谢您

0 回复 有任何疑惑可以回复我~
  • Geely #1
    不用客气,首先感谢你的肯定,我也非常开心。另外听到你找到满意工作的消息我更开心~~同学学习也是辛苦了,赞一个!!大家一起加油~~如果感觉赞一下,两个课程的评价还是求10分好评呀,这里提前感谢啦,嘻嘻
    回复 有任何疑惑可以回复我~ 2018-05-19 14:45:59
  • Geely #2
    fullgc可以查查,垃圾回收机制里面的,也比较简单,还有young gc。eden s0 s1区的置换等。
    回复 有任何疑惑可以回复我~ 2018-05-19 14:46:22
提问者 慕函数9708254 2018-05-11 09:20:27

是有回收机制,也是局部变量引用,可是在方法没结束完的这个过程的的确确在堆内存中产生了大量的订单项数量对应arraylist 对象实例,回收机制是在方法完成后进行回收,还是在方法执行过程中不停的回收未被使用的对象,我们是不可去控制的,其次,我知道jvm会在运行过程中可能动态的去申请堆内存,可是也有个极限吧。所以我不能确定你说的这个,我很感谢你的回答,但是我还是没有搞清,哎,头好大,都怪自己原理理解的不透彻

0 回复 有任何疑惑可以回复我~
  • Geely #1
    这个没关系吗,慢慢来 先了解jvm内存结构,不断体会思考即可。不要着急哈,我们一步一步来。
    回复 有任何疑惑可以回复我~ 2018-05-19 14:46:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信