摘要: 前几天看了极客时间一个二维码的视频[1],写的不错,这里总结下: 在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。对于非技术人员呢,除了解惑,还可以引导他更好地辨别生活中遇到的各种二维码,防止上当受骗。二维码,大家再 阅读全文
posted @ 2021-04-13 10:12 aresFang 阅读(656) 评论(0) 推荐(0)
摘要: 偏向锁 偏向第一个拿到锁的线程。 即第一个拿到锁的线程,锁会在对象头 Mark Word 中通过 CAS 记录该线程 ID,该线程以后每次拿锁时都不需要进行 CAS(指轻量级锁)。 如果该线程正在执行同步代码块时有其他线程在竞争(指其他线程尝试 CAS 让 Mark Word 设置自己的线程 ID) 阅读全文
posted @ 2021-02-19 22:47 aresFang 阅读(102) 评论(0) 推荐(0)
摘要: Spring Bean 的注入过程 Spring ioc 容器的核心类是 AbstractApplicationContext,入口是 refresh() 方法,该方法是个模板方法,定义了加载到容器的全部过程。 @Override public void refresh() throws Beans 阅读全文
posted @ 2021-02-19 22:10 aresFang 阅读(480) 评论(0) 推荐(0)
摘要: 接口幂等性如何实现? 导读 现在这个时代大家可能最关心的就是钱了,那么有没有想过你银行转账给你没有一次是转多的,要么失败,要么成功,为什么不能失误一下多转一笔呢?醒醒吧年轻人,别做梦了,做银行的能那么傻x吗? 今天我们就来谈一谈为什么银行转账不能多给我转一笔?关乎到钱的问题,小伙伴们打起精神!!! 阅读全文
posted @ 2021-02-19 17:04 aresFang 阅读(111) 评论(0) 推荐(0)
摘要: 1 为什么要有Survivor区 先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪里? 如果没有Survivor,Eden区每进行一次Minor GC,存活的对象就会被送到老年代。老年代很快被填满,触发Major GC(因为Major GC一般伴随着Minor 阅读全文
posted @ 2021-02-09 17:34 aresFang 阅读(76) 评论(0) 推荐(0)
摘要: 1、为什么使用redis 分析:我觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发。当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。因此,这个问题主要从性能和并发两个角度去回 阅读全文
posted @ 2021-01-28 00:45 aresFang 阅读(132) 评论(0) 推荐(0)