****
之前在看JVM的锁优化中看到JVM中对synchronized实现中,在不同的情况下会对锁进行优化,其中有几种不同的锁实现,此篇做一个笔记,在这个月的月度分享中会将这篇分享到部门同事,共同进步~ JVM锁类型 对象头模型: 轻量级锁 轻量级锁的“轻”是对比重量级锁来的,因为重量级锁需要对互斥量进行更新,操作更加消耗性能,而轻量级锁则是在此基础上继续优化,轻量级锁锁定不会去更新互斥量,而是会在调用这个对象的栈帧......
上次学习了JVM的类加载过程,之前学习过的双亲委派模型变得生疏了,这篇笔记用于重新学习和以后复习~ JVM双亲委派模型 什么是双亲委派模型? 在加载一个类之前,先使用父加载器加载,若返回null才进行加载。 引入双亲委派模型是为了解决一些核心类,只能由某个加载器进行加载,避免有全限名一样但类加载器不一样的情况。 类的唯一标识是什么? 加载类的类加载器+类全限名 双亲委派模型的破坏 jdk1.2,双亲委派模型出......
JVM类加载过程 什么是类加载? 在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*.class)。而JVM把Class文件中的类描述数据从文件加载到内存,并对数据进行校验、转换解析、初始化,使这些数据最终成为可以被JVM直接使用的Java类型,这个说来简单但实际复杂的过程叫做JVM的类加载机制。 类加载过程分别是什么? Class类文件加载 首先类加载器通过一个类的全限定名获取......
指定堆大小 12345//指定堆最大-XX:Xmx1024m//指定堆初始大小-XX:Xms1024m Java方法栈 指定线程的栈最大空间 12//默认256K-XX:Xss128K 影响GC因素: 局部变量表槽位复用 在方法体中声明的变量都会在局部变量表中,如果超过其作用域,则会被之后声明的变量复用,如果是引用类型,则会失去引用,被GC。但如果只是超过作用域但是没有被其他变量复用,则不会失去引用。 栈内分配......
之前看了springIOC源码,现在结合Springboot整体启动过程来看这个 重要的时间回调机制 ApplicationContextInitializer 上下文初始化器,在创建出上下文之后被执行 SpringApplicationRunListener 应用启动监听器,在各个阶段的方法,在spring启动到指定时期回调 ApplicationRunner CommandLineRunner 用于自定义创......
SpringAOP是什么 springAOP是Spring框架对aop切面编程模式的一个实现,具体来说就是通过BeanPostProcessor在SpringIOC的支持下,在Bean初始化时进行的增强。具体流程可以看我之前写的SpringIOC源码笔记。 基于Spring1.2的aop支持: 通过 DefaultAdvisorAutoProxyCreator 实现的,创建Bean过程的初始化 Abstrac......
趁着五一假期深入学习一下SpringIOC构建的源码,获益匪浅~ ApplicationContext IOC容器是基于 应用上下文类 的子类,因为这个类继承了 ListableBeanFactory 可列表BeanFactory和 HierarchicalBeanFactory 分层BeanFactory ,这两个类继承于 BeanFactory ,然后通过组合的方式把 AutowireCapableBea......
贴一下以前做的spring笔记,提供给大家学习~ Spring Interceptor&Filter Interceptor(拦截器) 需要Springmvc支持,通过实现 HandlerInterceptor 接口,并在 WebMvcConfigurerAdapter 中 addInterceptors 注册拦截器绑定拦截路径实现对 Controller 的围绕通知或者拦截,比如判断用户登录情况、权限......
Git常用命令汇总 添加个人信息 1234projectPath/.git/config 添加[user] email=chingguo20@163.com name=ching ssh秘钥生成 1ssh-keygen -o 分支 查看分支 1git branch -a //查看所有分支(远程和本地) 分支修改暂存&恢复 123git stash/......
明天虽然没有女朋友要陪,但是工作还是要做好的~,项目需要自定义Starter对新功能进行支持,虽然之前也做过,但是没有系统性分析其原理,所以这两天对Spring自定义Starter进行深入学习,做了以下笔记,提供给大家学习。 Springboot自定义Starters 关键点 编写pom文件,引入相关依赖 编写XXXAutoConfiguration类实现自动配置 123456789101112131......