
java原理
文章平均质量分 80
赵泉伟
此人很懒,什么也没留下
展开
-
volatile的作用及原理
前言voliate关键字的两个作用:1、 保证变量的可见性:当一个被volatile关键字修饰的变量被一个线程修改的时候,其他线程可以立刻得到修改之后的结果。当一个线程向被volatile关键字修饰的变量写入数据的时候,虚拟机会强制它被值刷新到主内存中。当一个线程用到被volatile关键字修饰的值的时候,虚拟机会强制要求它从主内存中读取。2、 屏蔽指令重排序:指令重排序是编译器和处理器为了高效对程序进行优化的手段,它只能保证程序执行的结果时正确的,但是无法保证程序的操作顺序与代码顺序一致。这在单线程原创 2022-05-06 17:08:23 · 2558 阅读 · 0 评论 -
基于Apollo远程配置中心+MybatisPlus的多数据源配置组件
只是服务员公司内部架构所开发,只是服务于公司项目的架构,无法通用全部项目,若要通用,则还需要进行通用化改造,本文只是提供一个思路package com.iskytrip.mybatis.inject.mybatis.dataSource;import com.iskytrip.mybatis.inject.mybatis.dataSource.config.ISkyTripDataSourceConfiguration;import org.springframework.context.an.原创 2020-12-29 17:22:35 · 2177 阅读 · 1 评论 -
springboot启动原理及bean的初始化和自动注入
@SpringBootApplicationpublic class ServletInitializer extends SpringBootServletInitializer { public static void main(String[] args) throws Exception { SpringApplication app = new SpringApplication(ServletInitializer.class);//创建SpringApplication对.原创 2020-05-13 10:01:58 · 3209 阅读 · 1 评论 -
MapperScannerRegistrar源码解读
mybatis注册bean有两种方式,一种是通过扫描@Mapper注解,一种是通过@MapperScan注解扫描指定的包路径,两种方式大同小异,唯一的区别是前者是将具有添加了该注解的类注册为mybatis的bean,后者是通过将该注解所指定的包下的所有接口类注册为mybatis的bean,结合上篇文章,本文主要解释的是后者。源码如下:该类通过@MapperScan通过中的@import注解导入...原创 2020-05-08 11:34:21 · 1561 阅读 · 0 评论 -
Java动态代理——cglib动态代理解析
名词解释 静态代理:编译期就已确定代理对象。即编码出代理类。 动态代理:运行时动态生成代理对象。可对被代理类做出统一的处理,如日志打印,统计调用次数等。 cglib动态代理:cglib工具包实现的动态代理生成方式,通过字节码来实现动态代理,不需要被代理类必须实现接口。 1. 举例使用cglib代理需要引入两个包,maven的话包引入如下 ...原创 2020-01-06 11:02:02 · 947 阅读 · 1 评论 -
Java动态代理——JDK动态代理解析
Java设计模式之JDK动态代理原理名词解释 静态代理:编译期就已确定代理对象。即编码出代理类。 动态代理:运行时动态生成代理对象。可对被代理类做出统一的处理,如日志打印,统计调用次数等。 JDK动态代理:即JDK中自带的动态代理生成方式。JDK动态代理的实现依赖于被代理类必须实现自接口。 动态代理核心源码实现public Object getProx...原创 2020-01-06 10:47:30 · 142 阅读 · 0 评论 -
Java中Class.forName和ClassLoader的区别?
1Class.forName除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。源码2.而classloader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。3.Class.forName(name,initialize,loader)带参数也可控制是否加载sta...原创 2019-12-26 17:49:42 · 460 阅读 · 0 评论 -
jvm之java类加载机制和类加载器(ClassLoader)的详解
jvm之java类加载机制和类加载器(ClassLoader)的详解当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。一...转载 2019-12-26 17:05:21 · 222 阅读 · 0 评论