自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 多线程环境下共享变量可见性

多线程环境下共享变量的可见性体现:线程A \线程B 同时操作共享变量c会出现线程A更新了变量c的值,但是线程B读取不到更新后的值Java层面通过提供的volatile指令来解决(用volatile共享变量,即可保证共享变量的修改可以立即在其他线程可见)为什么会出现可见性问题:底层cpu高级缓存优化、编译器优化、指令重排序等导致代码指令执行的可见性和有序性**JMM JAVA MEMORY MODULE **:(java 内存模型)java内存模型定义了共享内存中多线程程序读写操作的规范:在虚拟机中

2022-02-06 17:46:48 304

原创 并发安全之同步锁

线程安全问题,本质多线程环境下代码执行的原子性、可见性、有序性得到保证synchronized 可以保证原子性、可见性、有序性例:两个线程同时执行 count ++count++由多条cpu指令组:1.线程从内存加载count到寄存器2.执行count +1操作3.把操作结果加载到内存多线程环境下由于cpu时间片分配,导致随时会有线程上下文切换可能,这会导致多个线程对共享变量进行count ++ 操作时出现数据混乱问题用synchronized 关键字给这个代码块加锁,可以保证count +

2022-02-06 09:22:37 1993

原创 mybatis插件逻辑

自定义实现插件自定义插件要实现mybatis的插件接口 Interceptorpublic interface Interceptor { // 执行拦截逻辑的方法 Object intercept(Invocation invocation) throws Throwable; // 决定是否触发 intercept()方法,如果该插件是拦截对应方法,则返回该类的代理对象 default Object plugin(Object target ) { return Plu

2022-02-04 17:54:38 623

原创 Mybatis缓存模块实现执行

1.缓存配置初始化Configuration 中缓存容器: protected final Map<String, Cache> caches = new StrictMap<>("Caches collection");缓存类型别名初始化XmlMapperBuilder 解析对应mapper二级缓存的初始化配置 try { String namespace = context.getStringAttribute("namespace");

2022-02-04 12:03:29 367

原创 单例模式singleton

定义:一个类只有一个实例应用:有的应用场景只需要一个实例对象,就可满足,线程池、打印机驱动优点:不用每次使用都生成一个新的对象,减少内存的使用和GC回收,有的场景就只能用一个实例,不然会造成业务异常大体实现思路1.私有化无参构造方法——避免外部程序调用2.提供一个静态公共方法获取对象实例 getInstance3.实例对象声明为静态全局变量两种实现1.懒汉模式:类加载时直接生成...

2020-05-05 16:59:43 130

原创 static

static修饰的变量,属于类的静态变量也称全局变量 类变量静态变量独立于实例对象,它被该类的所用实例对象共享, 不能用this super. 引用JVM在加载类时,如果发现有类里有static修饰的方法,变量时,会为所有静态变量,方法新开一个专门的内存区域,所有的实例对象共享在类加载时就已经初始化,初始化时间要早于非静态变量...

2020-05-05 15:10:17 130

原创 java 8个基本数据类型

//java 基本数据类型 boolean byte 1个字节、 char 2个字节、 short 2个字节、 int 4个字节、 long 8个字节、// float 4个字节、 double 8个字节ps: 内存里用一位就可以表示(0|1)但大部分计算机在分配内存时允许分配内存单元是一个字节8位 所以大部分计算机里都是用的8位表示boolean基本分类//1.布尔型 :boole...

2020-05-03 09:50:10 200

原创 Vectory AarryList.LinkedList

Vector ArrayList. LinkList 特点区别从底层实现 线程安全 使用效率,应用场景考虑1.底层实现Vector ArrayList 底层都是由有序数组实现,最顶层类是list 都实现了Collection接口LinkList 底层由双向链表实现,访问时需要遍历元素,效率低,插入更新删除效率高容量: 会设置一个初始容量,插入的的元素大于容量值时会进行动态扩容,新建一个...

2020-04-28 08:29:25 96

原创 int integer

java是面向对象编程,不过还是有8个原始数据类型byte char short false int long float doublejava8种基本数据类型

2020-04-27 07:46:16 77

原创 反射、代理

反射反射特点是在运行期动态识别类,运行期动态调用类的方法反射机制可以再运行期,获取类的。构造类对象获取类明,方法,属性,构造函数,并进行动态生成实例对象,对方法,属性进行调用,赋值主要运用在框架里,提高框架的通用性 运行期才知道类的实际类型动态代理主要用于RPC调用,调用对象与调用对象之间不能直接访问时,可以通过中间对象(代理对象进行访问)还可以在代理对象对调用方法增强加入公共业务逻...

2020-04-21 07:57:21 126

原创 String StringBuffer StringBulilder

操作字符串,是我们业务编码中用得最多的,字符串的拼接,转换,添加,这些性能对于我们应用效率有很大影响String 类是不可变的,做字符串拼接时,会重新生成一个新的字符串对象,拼接操作很多时,内存中会存在很多不用对象,对内存使用,运行效率有影响为了解决这个问题,StringBuffer设计出来了StringBuffer是的append。add()方法可以实现多个字符串拼接时不会产生多个对象,提...

2020-04-19 20:14:13 149

原创 java引用学习

java引用分4个引用的级别主要是用于垃圾回收的的不同策略处理1.强引用:object obj = new ……。平时项目用到的都是强引用,垃圾回收时,强引用对象不会回收,内存不足时jjvm宁愿报leroy our of err的错,也不进行回收,只有把引用明确设置为null,垃圾回收才会纳入垃圾回收列表,具体何时回收还得看回收策略2,软引用:内存不足时会考虑进行垃圾回收,在报out of ...

2020-04-18 10:05:27 115

原创 got pull err

your. local chang would be在这里插入图片描述

2020-04-09 14:45:40 66

原创 maven 初学 相关

在idea 中使用maven 时 ,一开始总是容易出现几个问题1.下载jar很慢特别要关注maven 的setting 配置文件,是否配置好D:\dep\apache-maven-3.6.3-bin\apache-maven-3.6.3\conf我的配了这个后就正常了不要小看这个问题,我被这个问题扰乱了好几天我的配置里镜像仓库配置如下 <mirror>...

2020-03-28 12:34:14 140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除