Java遇到的问题及反思

前言:

        最近在工作中犯了经验主义的错误,由于之前是写c++,Java底层逻辑与c++不一样,引发了生产的问题,写篇博客记录一下这次错误。经历这次错误后也需要开始思考,会导致这种错误产生的根本原因是什么,是否在解决工作中的问题的时候不仅考虑实现需求,同时也要系统性的考虑别的问题,如内存的消耗,程序抛出错误,算法效率问题,环境配置问题,maven兼容问题等问题。

        之后除了用心学习,同时也需要定时定期的对代码进行反思,

正文:

Java底层架构理解问题

        在实现对日志进行脱敏的需求的时候,由于Java中给函数传入对象时,名为值传递,实则在操作对象的方面只会复制一个对象的内存地址。函数实际是通过内存地址寻址然后操作原对象,从而引发了这次问题。

 Aop代码逻辑问题

        另一方面在使用aop操作时,需要使用

joinPoint.proceed();

        才会操作原ServletRequestAttributes的请求对象进行修改,这次也是忽视了在写日志的customLogDetails的Result的时候调用了这个方法,导致原本的需要脱敏的请求内容被修改。根本原因还是复制代码的时候逻辑没有理清,导致忽视了浅显的问题。

开发时写的测试用例和开发后与测试进行沟通的问题

        在修改接口时虽然寻找了aop低侵入的方法,但还是影响了代码和内存逻辑,然而在开发的时候没有考虑到这一层。这个问题也是出在自己的测试接口不全面,后期和测试沟通的时候也没有想到这一块。

        之后在写完代码之后应该优先考虑测试接口的全部流程,这个接口的修改会不会影响到其他的业务,然后再关闭任务提交验收。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值