摘要:
netty源码推荐:https://www.cnblogs.com/crazymakercircle 附上个人理解的 JavaNio在netty 4.x中对应 代码位置 static class Server { public static void testServer() throws IOEx 阅读全文
摘要:
使用方式:https://my.oschina.net/kings0/blog/4710642 使用场景:一些策略逻辑可以通过自定义表达式来做到动态配置生效 源码: 1.先解析表达式,按照逆波兰表达式。 2.把表达式通过asm编译成二级制直接交给jvm执行 阅读全文
摘要:
情况一、内存空间不足 对比监控出现性能毛刺时间点的GC日志和业务日志,发现JVM停顿了较长时间,且停顿时GC日志中有大量的“Allocation Stall”日志。 原因就是堆内存被占满,导致部分线程阻塞,如下图中的 High used已经达到100% 解决办法: 1.最直接有效的办法就是增加堆大小 阅读全文
摘要:
最近项目从g1升级到jdk11后的zgc,p999明显稳定了很多,可见zgc还是挺强大的 推荐:https://www.zhihu.com/question/287945354/answer/458761494 里面的回答很赞! 阅读全文
摘要:
今天看了jdk11的AQS,发现里面多了一个 VarHandle这个类(相对与jdk8), 看了下类注解是jdk9之后引入的,主要是替换 Unsafe里面的一些方法。其他使用Unsafe的场景也替换成了VarHandle(例如AtomicXxx) 如果用JDK9以后,可以直接使用VarHandle来 阅读全文
摘要:
堆溢出 原因:老年代没有足够的空间存放即将进入老年代对象(或者没有连续的空间存下某个大对象),1.多次gc没有回收的对象 2. ygc后,s区满了,多余的对象直接进入老年代,3.大对象直接进入老年代 解决办法:1.检查是否存在内存泄漏,2.合理设置 新生代和老年代的比例 3.增大 堆内存 -xmx 阅读全文
摘要:
1.问题 spring 是如何把 http中的body,转换为指定类的,里面的难点其实在于泛型的处理。 2.Spring的处理 2.1 HandlerMethod 这个类Spring对Method的封装,例如使用@RequestMapping注解方法,会使用HandlerMethod封装(其实是其子 阅读全文
摘要:
程序员这个职业是用“脑力”创造价值的职业,包括但不限于技术能力,沟通能力,抗压能力等等。既然脑力是创造价值的基础,那么不断学习就是搭建更高的平台,开阔视野。关于自学,有以下几点感悟。 和实践结合起来 抛开应用(指的是一些比较深入使用)单独去学习一样东西,往往理解是不够透彻的,可能过一段时间又往。就和 阅读全文
摘要:
在前面一篇文章中,介绍,在一个Bean中注入自己,如果有@Async和@Transaction,如果使用@Autowire注入自身,会报循环依赖,如果使用BeanFactoryAware注入自己,会使得@Transaction失效。 阅读全文
摘要:
1.概述 spring的事务注解@Transaction 相信很多人都用过,而@Transaction 默认配置适合80%的配置。 本篇文章不是对spring注解事务做详细介绍,而是解决一些实际场景下遇到的问题 spring事务注解的基本原理 下面针对是否需要开启事务和是否需要回滚事务在特定场景下的 阅读全文