java
李灿的博客
这个作者很懒,什么都没留下…
展开
-
堆外内存使用分析【转】
原文:https://www.jianshu.com/p/35cf0f348275堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代码中还可以使用堆外内存,比如Netty,广泛使用了堆外内存,但是这部分的内存并不归JVM管理,GC算法并不会对它们进行回收,所以在使用堆外内存时,要格外小心,防止内存一直得不到释放,造成线上故障。堆外内存的申请和释放JDK的ByteBuffe...转载 2018-08-07 22:46:41 · 426 阅读 · 0 评论 -
ThreadLocal维持线程封闭
线程封闭作用: 当访问共享的可变数据时,通常需要使用同步。一种避免使用同步的方式就是不共享数据。如果仅在单线程内访问数据,就不需要同步。这种技术被称为线程封闭,它是实现线程安全性的最简单方式之一。当某个对象封闭在一个线程中时,这种用法将自动实现线程安全性,即使被封闭的对象本身不是线程安全的。 维持线程封闭性的一种更规范方法是使用ThreadLocal,这个类能使线...原创 2018-08-07 23:08:43 · 364 阅读 · 0 评论 -
技术方案设计
概要设计文档-技术方案:1.由原始需求逐步拆分,深入;后期迭代增加;2.数据流图,整体流程+每一条数据流链路,便于查问题节点;3.不仅给技术开发看,面向产品和测试,对测试的输出和产品的输出;4.写出支撑功能点,前端对接的数据结构;流程:需求评审--设计方案评审(数据链路,需求拆分)--技术方案评审(实现方案合理性,性能,复杂度)--开发--测试--上线--维护架子:目录...原创 2018-08-30 23:37:44 · 8793 阅读 · 1 评论 -
用Mat分析内存快照
1.下载Mat工具安装;2.用jmap命令dump下内存快照,也可以在jvm启动参数中加参数,当OOM时,自动生成dump文件;3.在mat中打开dump文件,查看对象占用内存情况;...原创 2018-08-31 10:59:49 · 879 阅读 · 0 评论 -
代码review原则
1.判空2.下标越界3.三方依赖鲁棒性,空值判断,异常处理,服务降级4.魔法数/常量封装5.逻辑错误6.可读/可维护性原创 2018-10-16 16:15:36 · 841 阅读 · 0 评论