自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入浅出MySQL系列(2)—MySQL索引剖析(下)

索引优化策略、change buffer优化

2023-08-12 16:41:49 127

原创 深入浅出MySQL系列(4)—MySQL索引剖析(上)

索引分类、索引数据结构、B+树、Hash索引、索引失效

2023-08-12 16:15:18 149

原创 深入浅出MySQL系列(3)—MVCC机制

MVCC机制、快照读和当前读、幻读、Next-Key锁;

2023-08-12 15:43:54 132 1

原创 深入浅出MySQL系列(2)—MySQL的事务和锁剖析

(Durability):事务提交之后对数据的修改是持久性的,即使在系统出故障的情况下,比如系统崩溃或者存储介质发生故障,数据的修改依然是有效的。(MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。所以,SELECT 显示不存在,但是INSERT的时候发现已存在,说明符合条件的数据行发生了变化,也就是幻读的情况,而不可重复读指的是同一条记录的内容被修改了。,但是对于不支持事务的,比如MyISAM这种不支持事务的引擎,如果备份过程中有更新,总是只能取到最新的数据,那么就破坏了备份的一致性。

2023-08-01 22:18:07 105 1

原创 深入浅出MySQL系列(1)—MySQL的基础架构分析

MySQL基础架构分析、连接器、查询缓存、分析器、优化器、执行器;各类存储引擎特点;

2023-08-01 19:02:04 61 1

原创 Java并发成神系列(8)—线程安全的集合类基本使用和源码分析

JUC工具类、ConcurrentHashMap、LinkedBlockingQueue(阻塞队列)、ArrayBlockingQueue、ConcurrentLinkedQueue、CopyOnWriteArrayList

2023-08-01 18:47:20 705 1

原创 Java并发成神系列(8)—AQS工具用法和对应源码分析

AQS、ReentrantLock原理、ReentranReadWriteLock(读写锁)、Semaphore(信号量)、CountdownLatch、CycliBarrier

2023-08-01 18:22:16 97 1

原创 Java并发成神系列(7)—线程池详解

Java线程池用法,原理详解

2023-08-01 17:49:28 60 1

原创 Java并发成神系列(6)—共享模型之无锁设计(乐观锁)

乐观锁、CAS原理、源码分析

2023-07-31 23:04:15 290 1

原创 Java并发成神系列(5)—共享模型之内存(可见性和有序性问题)

多线程的可见性和有序性问题原因,以及解决办法和原理分析!

2023-07-31 22:44:10 155

原创 Java并发成神系列(4)—原子性问题及解决方案(管程)2

管程、Synchronized原理、wait-notify机制、park-unpark机制、死锁、活锁、RenentranLock

2023-07-29 22:00:13 74

原创 Java并发成神系列(3)—原子性问题及解决方案(管程)1

并发问题产生原因、解决办法、变量安全性分析

2023-07-29 17:37:42 123

原创 Java并发成神系列(2)—Java线程详解

创建和运行线程、查看进程线程方法、线程运行原理、线程常见方法(API)、线程状态

2023-07-29 17:02:55 74

原创 Java并发成神系列(1)—进程与线程及并行与并发

当线程 A 执行 I/O 操作的时候,线程 B 执行 CPU 计算,这样 CPU 的利用率和 I/O 设备的利用率就都达到了 100%。如果只有一个线程,执行CPU计算的时候,IO设备空闲;操作系统中有一个组件叫做任务调度器,它将CPU的时间片(windows时间片最小约为15ms)分给不同的程序使用,只是由于CPU在线程间(时间片很短)的切换非常快,我们感觉是同时运行的。但是,不是线程数越多越好的,如果越多线程上下文切换会消耗太多的资源,也是会降低效率的,因此,我们需要设计一个最佳线程数。

2023-07-29 16:41:42 54

原创 深入浅出Java程序性能调优三层关系

当我们的系统的时,我们就需要考虑对系统进行性能调优,一般情况,我们是:通常情况下,造成性能瓶颈的原因主要资源主要消耗在方面,机器的资源是有限的,当某资源消耗过多时,通常会造成系统的响应变慢。外部处理系统的性能不够主要是所调用的。这种情况的主要原因。

2023-07-29 16:26:11 234

原创 JVM夯实之路—深入理解运行时栈帧结构

在Java程序被编译为Class文件时,就在方法的Code属性的max_locals数据项中确定了该方法所需分配的局部变量表的最大容量。局部变量表的容量以。

2023-07-28 22:58:16 75 1

原创 JVM夯实之路—类加载机制

深入浅出JVM类加载机制

2023-07-28 22:40:24 137 1

原创 JVM夯实之路—Class类文件结构详解

越来越多的程序语言选择了。各种不同平台的Java虚拟机,以及所有平台都统一支持的程序存储格式——是构成的基石。在class文件中不仅存放了字节码,还存放了很多辅助JVM来执行class的附加信息。1):包括class文件格式版本号及各部分的数量与大小的信息2):对应于Java源码中声明与常量的信息。包含类/继承的超类/实现的接口的声明信息、域与方法声明信息和常量池3):对应Java源码中语句和表达式对应的信息。包含字节码、异常处理器表、求值栈与局部变量区大小、求值栈的类型记录、调试符号信息。

2023-07-28 22:11:18 194 1

原创 JVM夯实之路—垃圾收集器详解及JVM内存分配策略

是让G1收集器去跟踪各个Region里面的垃圾堆积的“价值”大小,价值即回收所获得的空间大小以及回收所需时间的经验值,然后在后台维护一个优先级列表,每次根据用户设定允许的收集停顿时间(使用参数-XX:MaxGCPauseMillis指定,默认值是200毫秒),优先处理回收价值收益最大的那些Region,这也就是“Garbage First”名字的由来。同样的,如果内存回收的速度赶不上内存分配的速度,G1收集器也要被迫冻结用户线程执行,导致Full GC而产生长时间“Stop The World”。

2023-07-28 21:59:15 211 1

原创 JVM夯实之路—深入理解垃圾收集算法

如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该reference数据是代表某块内存、某个对象的引用。在JDK1.2之后,Java对引用的概念进行了扩充,将引用分为。

2023-07-27 23:05:40 80 1

原创 JVM夯实之路—对象在堆中分配、布局和访问全过程

本文详细讲解。

2023-07-24 21:24:49 129

原创 JVM夯实之路—JVM内存区域详解

运行时常量池相对于Class文件常量池的另外一个重要特征是具备动态性,Java语言并不要求常量一定只有编译期才能产生,也就是说,并非预置入Class文件中常量池的内容才能进入方法区运行时常量池,运行期间也可以将新的常量放入池中,这种特性被开发人员利用得比较多的便是String类的intern()方法。,这部分内容将在类加载后存放到方法区的运行时常量池中。(由直接内存导致的内存溢出,一个明显的特征是在Heap Dump文件中不会看见有什么明显的异常情况,如果发现内存溢出之后产生的Dump文件很小,而。

2023-07-24 20:57:31 121

空空如也

空空如也

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

TA关注的人

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