人生 = 思维方式 x 热情 x 能力
-
体验阿里开源的Java诊断工具Arthas阿尔萨斯
服务器安装arthas实时监控JVM运行状态,快速定位应用的热点,生成火焰图
-
ThreadLocal使用与内存泄漏
threadLocal线程局部变量为我们解决了多线程访问变量的安全问题,key是弱引用,只能生存到下次GC前,如果很多线程使用Threadlocal可能会引起内存泄露,不同的请求获取相同的ThreadLocal值如何解决,InheritableThreadLocal可继承线程变量在线程池中执行被获取相同值的原因,因为线程变量没有被重新set值
-
MySQL使用自增ID,UUID,雪花ID
mysql做分库分表分布式设计,我是建议使用雪花ID的,但是单机就建议自增ID,mysql innodb引擎下,uuid是无序id作为主键会导致数据跟着索引进行重排浪费性能,不建议使用
-
Oracle的知识点
基本的sql优化策略,insert append原理解析,归档模式,快速插入大量数据的4种方法,DML操作与锁,行锁原理,5个阻塞场景分析
-
阿里Java开发手册泰山版-个人精简
会当凌绝顶,一览众山小
-
Spring的Controller单例,怎么保证并发的安全
Spring的Controller默认是单例的,线程不安全的,尽量不使用成员变量,ThreadLocal成员变量,Request请求会复用线程池里线程,所以也不能达到请求并发安全,使用ConcurrentHashMap等并发安全类,微服务的并发安全考虑使用可共享信息的分布式缓存中间件如Redis
-
SpringBoot整合RabbitMQ实现事务补偿
与阿里的Setta框架提供的强一致性事务补偿不一样,MQ提供的是弱一致性事务补偿
-
为什么 Java 中“1000==1000”为false,而”100==100“为true?
integer的缓存,快戳进来看答案
-
Spring IOC
spring框架的7大模块了解,IOC的原型由我们自行控制对象的创建,控制反转的本质是获得对象的方式反转了,将对象的创建转移给第三方
-
高并发分布式环境下的高可用负载均衡方案
keepalive+nginx+tomcat 实现应用的高可用,nginx的高可用