- 博客(22)
- 收藏
- 关注
原创 深入浅出MySQL系列(2)—MySQL的事务和锁剖析
(Durability):事务提交之后对数据的修改是持久性的,即使在系统出故障的情况下,比如系统崩溃或者存储介质发生故障,数据的修改依然是有效的。(MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。所以,SELECT 显示不存在,但是INSERT的时候发现已存在,说明符合条件的数据行发生了变化,也就是幻读的情况,而不可重复读指的是同一条记录的内容被修改了。,但是对于不支持事务的,比如MyISAM这种不支持事务的引擎,如果备份过程中有更新,总是只能取到最新的数据,那么就破坏了备份的一致性。
2023-08-01 22:18:07 105 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并发成神系列(4)—原子性问题及解决方案(管程)2
管程、Synchronized原理、wait-notify机制、park-unpark机制、死锁、活锁、RenentranLock
2023-07-29 22:00:13 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夯实之路—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夯实之路—JVM内存区域详解
运行时常量池相对于Class文件常量池的另外一个重要特征是具备动态性,Java语言并不要求常量一定只有编译期才能产生,也就是说,并非预置入Class文件中常量池的内容才能进入方法区运行时常量池,运行期间也可以将新的常量放入池中,这种特性被开发人员利用得比较多的便是String类的intern()方法。,这部分内容将在类加载后存放到方法区的运行时常量池中。(由直接内存导致的内存溢出,一个明显的特征是在Heap Dump文件中不会看见有什么明显的异常情况,如果发现内存溢出之后产生的Dump文件很小,而。
2023-07-24 20:57:31 121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人