- 博客(37)
- 资源 (2)
- 收藏
- 关注
原创 SpringBoot源码解析系列(2)之@SpringBootApplication注解做了什么
springBoot源码解析系列(2)之@SpringBootApplication注解做了什么
2022-04-20 08:24:00
672
原创 SpringMVC源码解析系列(2)之Spring MVC处理请求的执行流程
重要的前置知识:Spring MVC中有几大组件,帮助Spring MVC实现请求的处理工作:前端控制器:DispatcherServlet作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求配置:前端控制器DispatcherServlet由Spring提供,需要我们在web.xml配置文件中手动配置(可以采用注解开发,但也需要手动配置)处理器映射器:HandlerMapping作用:根据请求的url、param等信息查找Handler,即控制器方法处理
2022-04-20 08:20:55
341
原创 Spring源码解析系列(6)之BeanFactory与FactoryBean的区别
Spring源码解析系列(6)之BeanFactory与FactoryBean的区别
2022-04-19 14:47:45
295
原创 Spring源码分析系列(2)之beanDefiniton的注册(大体流程)
Spring源码分析系列(2)之beanDefiniton的注册(大体流程)
2022-04-19 12:36:14
466
原创 Spring源码分析系列(1)之bean工厂的创建+内置bean的注册(this()+this.register(componentClasses))
Spring源码分析系列(1)之bean工厂的创建+内置bean的注册(this()+this.register(componentClasses))
2022-04-19 11:45:24
1114
1
原创 本地线程分配缓冲区
1.什么是线程分配缓冲区?TLAB是JVM在堆内存的Eden区划分出来的一块专用于原始线程进行对象分配的区域。在虚拟机的TLAB功能启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间,只给当前线程使用,如需要分配内存,在自己的TLAB上分配。
2022-03-29 21:57:55
945
原创 JVM(3)之垃圾回收(GC垃圾收集器+垃圾回收算法+安全点+记忆集与卡表+并发可达性分析......)
JVM(3)之垃圾回收(GC垃圾收集器+垃圾回收算法+安全点+记忆集与卡表+并发可达性分析......)
2022-03-29 16:48:28
2940
原创 谈谈强引用、软引用、弱引用、虚引用、引用队列、WeakHashMap
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。
2022-03-27 17:08:53
1024
1
原创 JVM(1)之JVM的组成详解(字符串常量池+双亲委派机制+JIT即时编译......)
JVM(1)之JVM的组成详解(字符串常量池+双亲委派机制+JIT即时编译......)
2022-03-25 22:19:59
1403
原创 JAVA并发编程之CyclicBarrier(和CountDownLatch区别)
JAVA并发编程之CyclicBarrier(和CountDownLatch区别)
2022-03-22 16:10:17
1473
原创 JAVA并发编程之Semnphore
JAVA并发编程之Semnphore1.是什么?Semaphore 通常我们叫它信号量,通常用于多个共享资源的互斥使用和控制并发线程数可以理解成抢车位,总共有十个车位,来一辆车占用一个,剩余车位数量减一,走一辆车,剩余车位就加一,如果十个车位全部被占满,后来的车只能等待,其他人把车开走。2.使用场景适用于资源复用的场景,比如数据库连接池3.怎么用以抢车位为例:public class SemaphoreDemo { public static void main(S..
2022-03-22 16:02:14
663
原创 JUC并发编程之AQS源码解析(独占锁)+面试问题
JUC并发编程之AQS源码解析(独占锁)+面试问题跟据阳哥视频,自己总结整理.......1.什么是AQSAQS的全称是:AbstractQueuedSynchronizer(抽象队列同步器),它是构建锁或其他同步器组件的基础框架及整个JUC体系的基石,通过内置的CLH(FIFO)队列的变种来完成资源获取线程的排队工作,将每条将要去抢占资源的线程封装成一个Node节点来实现锁的分配,有一个int类变量表示持有锁的状态(private volatile int state),通过CAS完成对st
2022-03-16 12:42:44
655
原创 解决HashMap线程不安全之ConcurrentHashMap源码剖析(jdk1.7)
解决HashMap线程不安全之ConcurrentHashMap源码剖析(jdk1.7)+unsafe
2022-03-13 11:50:09
1080
原创 HashMap那些事之HashMap多线程扩容造成CPU100%(循环引用)
JDK1.7中HashMap采用的是头插法,那么在多线程进行扩容时可能会造成循环引用和数据丢失的问题,JDK1.8中采用的是尾插法就不会造成这个问题,但是JDK8仍然会有数据覆盖(见下一篇)循环引用分析:1.首先我们要明确JDK1.7中单线程是怎样扩容的:扩容代码:void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; for (Entry<K,V&g...
2022-03-12 14:35:19
2856
1
原创 StringBuilder与StringBuffer的底层原理实现
stringbuilder与stringbuffer底层原理分析(面试回答)
2022-03-08 17:53:34
1790
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人