非常感谢「后端圈」小伙伴们的高质量技术交流。 这里,我使用「知识星球」沉淀「2018年的第22周」高质量的答疑内容。本周与你一起精进 6 个问题,请细心阅读。如果对您有帮助的话,可以帮忙转发与分享。同时,欢迎加入「后端群」与「知识星球」共同探讨,一起进步,文末扫描关注,或公众号回复「加群」。
作者|后端圈成员 编辑|陈同学 / 梁桂钊
问题1 : 为什么会产生堆溢出
Paul 提问:为什么会产生堆溢出? new char[] 是分配在堆上的?
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
问题解答
Bin : 复制数组的时候,会申请一个新的数组,当堆内存没有足够的剩余空间,就会堆溢出 。
互动成员: Paul 、 Bin
问题2 : 输入流转成 json 之后在 controller 中无法再次读取
杭州-java-菜鸟 提问 :读取请求输入流转成 json 之后,在 controller 中无法再次读取该怎么解决?
** 问题解答**
杭州-后端-超杰 :因为 request 的流只能被读取一次 、springmvc 也需要读取一次 、需要自己弄一个 filter 保存下来 。
互动成员: 杭州-java-菜鸟、 杭州-后端-超杰
问题3 : 对于 Java8 -Xmx 是不是不起作用
Paul 提问 :对于 Java8 -Xmx 是不是不起作用?是不是要排除 metadataspace?
** 问题解答**
Bin :起作用 -Xmx 是最大堆空间,metadataspace 是元空间,不是一个东西。
深圳-Java-阿飞:metaspace 是堆外的,不在 Xmx 范围内 。即使是 JDK7 的 Perm,也是堆外的。 -Xms 就是Young(Eden+S0/S1)+ Old 。
江苏-Java-匠心零度 :
互动成员: Paul、 Bin、 深圳-Java-阿飞、 江苏-Java-匠心零度
问题4 : 聊一下阿里的 dubbo
广州-Java-松钦 提问:大家能聊一下阿里的dubbo吗 ? Spring Cloud效率差点?
问题解答
杭州-后端-梁桂钊 : Dubbo 的定位始终是一款 RPC 框架,RPC场景可以考虑dubbo 。而 Spring Cloud 的目标是微服务架构下的一站式解决方案。如果非要比较的话,我觉得 Dubbo 可以类比到 Netflix OSS 技术栈,而 Spring Cloud 集成了 Netflix OSS 作为分布式服务治理解决方案,但除此之外 Spring Cloud 还提供了包括 config、stream、security、sleuth 等等分布式问题解决方案。 一般场景下,我觉得业务上升期,性能还不是主要考虑因素,性能不够机器来凑。绝大部分业务或产品,还没到性能瓶颈就死了 ,不过优先考虑性能也是对的 。http://blog.didispace.com/microservice-framework-2/
互动成员: 广州-Java-松钦 、 杭州-后端-梁桂钊
问题5 : 项目中线程池是怎么处理的
北京-Java-winner_0715 提问:在项目中线程池是怎么处理的? 所有业务逻辑用同一个线程池还是不同业务处理用不同的线程池 ?是在代码分别里new,还是把不同的线程池都配置在Spring里面,通过注入的方式 ?
问题解答
杭州-后端-梁桂钊 : 用到线程的地方都可以用线程池 ,也优先考虑用线程池。不同业务尽量考虑不同线程池隔离,找一个平衡 。
深圳-后台-库里:不同业务处理用不同的线程池
Snake:一个应用里,线程池多了不是好事 ,搞些公用的就可以了
南京-JAVA-曹炜:除了计算密集型的项目,很少遇到需要线程池的,很多用多线程的地方也仅仅是异步执行的诉求。
互动成员: 北京-Java-winner_0715 、 深圳-后台-库里、 杭州-后端-梁桂钊 、 Snake、 南京-JAVA-曹炜
问题6 : Git 下班时忘记提交,一天的产出全部丢失
上海-Java-小白 提问:Git下班时忘记提交,第二天开机自动回滚到我上次刚提交的状态,然后一天的产出全部丢失,请问怎么处理?
问题解答
重庆-后端-Lind : 如果是用的IDEA的话,应该可以看到localHistory
北京-Java-Waters:如果是idea的话,有本地缓存
兰小伟-《Solr权威指南》:idea的缓存目录不要设置在C盘 ,idea的bin目录下有个idea.properties配置文件,并且idea请设置自动保存 ,养成commit习惯 。
互动成员: 上海-Java-小白 、 重庆-后端-Lind、 北京-Java-Waters 、 兰小伟-《Solr权威指南》