发布了文章2024-12-17
在JDK1.2版之后,Java对引用的对象进行了扩充,将引用分为强引用(Strongly Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)4种,这4种引用强度依次减弱。
发布了文章2023-09-22
Java线程的状态可以使用监控工具查看,也可以通过Thread.getState()调用获取。Thread.getState()的返回值类型是一个枚举类型(Enum)。Thread.State所定义的线程状态包括以下几种。
发布了文章2023-09-13
解决并发事务带来问题的两种基本方式并发事务访问相同记录的情况可以划分为3种。读 - 读情况:并发事务相继续读取相同的记录。读取操作本身不会对记录有任何影响,不会引起什么问题,所以允许这种情况的发生。写 - 写情况:并发事务相继对相同的记录进行改动。读 - ...
发布了文章2023-08-31
如果一个事务修改了另一个为提交事务修改过的事务,就意味着发生了脏写现象。我们可以把脏写现象简称为P0.假设现在事务T1和T2并发执行,它们都要访问数据项x(可以把数据项x当作一条记录的某个字段)。那么P0对应的操作执行序列如下所示:
发布了文章2023-08-31
mysql系统中共有128个回滚段。其实这是默认值,我们可以通过启动选项innodb_rollback_segments 来配置回滚段的数量。针对临时表的回滚段数量一直是32,也就是说:
发布了文章2023-08-14
假设我们在事务提交后发生了某个故障,导致内存中的数据全部失效了,对于刚刚事务在数据库中的操作所做的更改也就跟着丢失了,所以需要这个持久性。一个简单的做法是在事务提交完成之前,把该事务修改的所有页面都刷新到磁盘。不过这个粗暴的做法存在两个问题:
发布了文章2023-08-14
原子性隔离性一致性持久性事务我们把需要保证原子性、隔离性、一致性、持久性的一个或者多个数据库操作称为事务。状态
发布了文章2023-08-11
Inndb的Buffer Pool简介BufferPool组成free链表的管理缓冲页的哈希处理flush链表的管理LRU链表的管理查看Buffer Pool的状态信息
发布了文章2023-07-27
对于两张表的连接来说,驱动表只会被访问一遍,但被驱动表却要被访问好多遍;具体访问几遍取决于对驱动表执行单表查询后的结果集中有多少条记录。对于内连接来说选取哪个表作为驱动表都没关系;而外连接的驱动表是固定的。对于t1表和t2表执行内链接的大致过程如下:
发布了文章2023-07-03
设计MySQL的大叔把MySQL执行查询语句的方式称为访问方法(access method)或者访问类型。同一个查询语句可以使用多种不同的访问方法来执行,虽然最后的查询结果都是一样的,但是不同的执行方式话费的时间成本可能差距甚大。就像是从北京南锣鼓巷到什刹海,你可以打车...
发布了文章2023-05-24
我们只为出现在where子句中的列、连接子句中的连接列,或者出现在ORDER BY或者GROUP BY子句中的列创建索引。仅出现在查询列表中的列就没必要建立索引。比如这样一个查询语句:
发布了文章2023-04-27
应用程序的主要关注点是什么?如果是数据分析、科学计算类的任务,目标是尽快算出结果,那吞吐量就是主要关注点;如果是SLA应用,那停顿时间直接影响服务质量,严重的甚至会导致事物超时,这样延迟就是主要的关注点;而如果是客户端应用或者嵌入式应用,那垃圾收集的...
发布了文章2023-04-21
class文件是Java虚拟机唯一可以识别的文件,根据Class文件我们可以完成一个程序的运行,本节文章是本人解析一个基本Class文件的全过程,记录在此,希望能提供给正在前进路上的同学作为辅助作用,下面是我们要解析Class文件必要条件。
发布了文章2023-04-20
在堆里面存放着Java中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件时间就是要确定哪些对象还 "存活" 着,哪些已经 "死去"(代表即不可能再被任何途径使用的对象)了。
发布了文章2023-04-18
方法区主要存储类加载后的数据结构信息、运行时常量池信息、字符串、数字常量(这部分常量信息是Class文件中常量池部分的内存映射)(JDK1.7之前,JDK1.7之后字符串常量池、静态变量移至堆中)。
发布了文章2023-04-16
Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。
发布了文章2023-04-14
为编译虚拟机,首先必须获得虚拟机的源码,大家可以使用下面的命令获取JDK10的源码。推荐使用较新的版本,因为老版本的编译脚本可能在某平台上存在问题。
发布了文章2023-04-14
Java类文件是包含可在Java 虚拟机 (JVM)上执行的Java 字节码的文件(具有.class 文件扩展名)。Java 类文件通常由Java 编译器根据包含 Java 类的 Java 编程语言源文件(.java文件)生成(或者,其他JVM 语言也可用于创建类文件)。如果一个源文件有多个类,则每个类...
发布了文章2023-04-13
在Java的虚拟机中,整数有byte、short、int、long四种,分别表示8位、16位、32位、64位有符号整数。整数在计算机中用补码表示,在Java虚拟机中也不例外。在学习补码之前,必须先理解原码和反码。
发布了文章2023-03-31
在Spring1.2版本的时候提供了 (org.springframework.transaction.annotation )注解。简化了事务的操作.