06 2022 档案
摘要:缓存,从本质上讲,是为了更好的协调两个速度差异比较大的组件而引入的一种中间缓存层。例如,如果需要将数据读入CPU进行计算处理,由于CPU的运算速度是非常快的,而磁盘的IO处理相比于CPU来说,慢了很多数量级,每次从磁盘读取数据,势会造成CPU长时间并且频繁等待磁盘IO。此时,我们就可以通过内存来缓和
阅读全文
摘要:垃圾收集器 Serial:单线程收集器、在进行垃圾收集的时候需要暂停其他线程。优点:简单高效。适用于新生代。复制算法 SerialOld:是Serial收集器的l老年代版本,,也是一个单线程收集器,不同的是采用标记-整理算法。也会去暂停其他线程。标记整理算法 ParNew:Serial收集器的多线程
阅读全文
摘要:为什么要使用线程池?什么是线程池?字面意思(他是一种基于池化思想管理和使用线程的机制,他将多个线程预先存储在一个池子中) 池化思想应用: 内存池:预先申请内存,提升申请内存速度,减少内存碎片. 连接池:预先申请数据库连接,提升连接速度,降低系统开销。 实例池:循环使用对象,减少资源在初始化和释放。比
阅读全文
摘要:公平锁和非公平锁 公平锁就是按照先来先服务、非公平就是不管你什么时候来,唤醒的时候都是随即唤醒。例如synchronize就是非公平锁,ReentrantLock既可以作为公平锁,也可以作为非公平锁。 可重入锁 可重入锁就是说某个线程已经获取到某个锁,这个线程跨域在次获取到这个锁而不会出现死锁。sy
阅读全文
摘要:概念:aqs是多线程同步器,他是juc包中多个组件的底层实现,比如lock、countDownLatch、Semaphore都用到了AQS,aqs提供了两种锁的机制分别是排他锁和共享锁。排它锁就是多个线程对同一共享资源进行竞争的时候,只允许一个线程访问,如lock中的ReentrantLock重入锁
阅读全文
摘要:数据库:建立连接、开启事务、进行sql操作、成功提交、失败回滚 业务逻辑:准备工作(可以进行前置通知)、开启事务、事务操作、成功提交(可以后置通知)、失败回滚(异常通知) spring的事务是由aop实现的,首先要生成具体的代理对象,然后按照aop流程执行具体的操作逻辑,正常情况下要通过通知来完成核
阅读全文
摘要:1、实例化(在堆空间中申请空间,对象的属性值一般是默认值。通过调用createBeanInstance()方法进行反射。先获取反射对对象class,然后获取默认无参构造器,创建对象) 2、初始化(就是进行属性赋值。通过populateBean的set方法完成赋值操作) 3、检查aware相关接口并设
阅读全文