- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 【无标题】Mysql创建索引原则
1. 创建索引的原则1)最左前缀匹配原则,组合索引非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立 (a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。2)较频繁作为查询条件的字段才去创建索引3)更新频繁字段不适合创建索引4)若重复数据过多的列不适合做索引列(如性别,男女
2021-11-30 16:16:38
658
原创 一、Java 基础面试题
1.JDK 和 JRE 有什么区别?JRE:Java Runtime Environment(java运行时环境)。即java程序的运行时环境,包含了java虚拟机,java基础类库。JDK:Java Development Kit(java开发工具包)。即java语言编写的程序所需的开发工具包。JDK包含了JRE,同时还包括java源码的编译器javac、监控工具jconsole、分析工具jvisualvm等。2.== 和 equals 的区别是什么?==对于基本类型来说是值比较,对于引用类型来
2021-03-25 11:31:40
117
原创 volatile一些特性及内存屏障
指令重排遵循as-if-serial和happens-before原则happens-before原则如下:高并发下双重检测锁DCL(单例模式:双重检测锁)对象:之前存在指令重排,存在漏洞,解决的方式是通过volatile修饰,汇编指令包括内存屏障单例模式:下面的属性值需要volatile进行修饰,否则会出现指令重排private volatile static Singleton _instance;内存屏障:采用的是:前后均为读读 加的是loadload屏障前后均为写写 加的是st.
2021-03-10 10:38:18
178
原创 volatile中的八大原子操作
(1)read(读取):从主内存中读取数据(2)load(载入):将主内存读取到的数据写入到工作内存中(3)use(使用):从工作内存读取到数据来计算(4)assign(赋值):将计算好的值重新赋值到工作内存中(5)store(存储):将工作内存数据写入主内存(6)write(写入):将store过去的变量赋值给主内存中的变量(7)lock(锁定):将主内存变量加锁,标识为线程独占状态(8)unlock(解锁):将主内存变量解锁,解锁后其他线程可以锁定该变量...
2021-03-08 15:33:27
666
原创 2021-03-08
volatile底层原理底层是c++,汇编语言写的下载包:(1)查看运行代码的汇编指令.zip(2)解压后的包放在jdk安装目录下(3)运行地方JRE和VM OPTIONS需要进行配置(4)运行之后的结果参照诸葛老师的视频讲解总结上面的文章,视频原地址是:https://www.bilibili.com/video/BV1QX4y1N7Wj?p=4&spm_id_from=pageDriver...
2021-03-08 15:15:59
103
1
WechatIMG97.png
2021-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人