自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并发

并发 1 JVM相关 1.1 volatile volatile的作用:保证内存可见性,禁止指令重排。 保证内存可见性:在JMM层面,主内存的变量由各线程共享,但是各线程并不会直接操作主内存,而是先将主内存中的数据调入工作内存,在工作内存中操作结束后再写回主内存。在CPU层面,CPU不会直接操作内存,而是先将内存中的数据调入缓存,之后有寄存器操作后写入缓存,最后才会写回内存。因此在多线程工作时就有可能发生如下情况:A线程对变量a做了修改但还没有来得及写回主线程就发生了上下文切换到了B线程,此时B线程就会

2021-05-06 19:29:42 165

原创 MySQL

MySQL 1. 索引 1.1 为什么MySQL使用B+树? hash:等值查询很快,但无法范围查询。 二叉树:当数据量过大时二叉树的深度会过深。导致查询可能需要多次IO导致速度变慢。 B树:所有节点中都有数据,过大的数据会使得节点中的索引信息变少,无法存储大规模数据。 B+树:只有叶子节点中有数据,其他节点中只有索引信息,可以存储更多条记录。并且叶子节点由双向链表连接,可以很快地做范围查询。 1.2 索引匹配方式 现有表staffs 有字段(id,name,age,pos,add_time) 有组合索引(

2021-05-02 21:44:18 146

原创 容器

Java常用容器总结 1. Collection 1.1 List 有序,可重复 1.1.1 ArrayList 底层维护了一个可扩容数组。 重要成员: private static final int DEFAULT_CAPACITY = 10; // 默认容量 private static final Object[] EMPTY_ELEMENTDATA = {}; // 空数组,JDK7及之前均使用此变量 private static final Object[] DEFAUL

2021-05-01 19:06:53 236

原创 jvm

1. JVM运行时内存区域 1.1 程序计数器 线程私有,记录下条指令的位置。 1.2 虚拟机栈 每当方法调用时就会往虚拟机栈中压入栈帧,其中包含参数,局部变量,返回地址等信息。线程私有。 1.3 本地方法栈 与虚拟机栈类似,只不过虚拟机栈中为字节码服务,而本地方法栈为本地方法服务。线程私有。 1.4 Java堆 几乎所有对象都在这里,这里也是垃圾收集器管理的地方。 1.5 jdk8之前方法区 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码。更具体的说,静态变量+常量+类信息

2021-05-01 19:04:53 140

原创 git

1 git简介 1.1 git分区 工作区(working Directory):简单的理解你在电脑里能看到可以直接操作的目录或文件。 暂存区(stage):想要被git管理的文件首先要添加的暂存区,之后才可以提交到分支区(版本库)暂存区的内容可以随意修改而不保留记录。 版本库(Repository):工作区有一个隐藏目录.git,但该目录不属于工作区,其中保存着暂存区以及分支区的内容。对分支区的一切操作,如提交,切换版本等都会有记录。 2 git 常用命令 2.1 初始化仓库 git init 2.2

2020-12-25 17:23:34 82

空空如也

空空如也

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

TA关注的人

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