- 博客(11)
- 收藏
- 关注
原创 手写数据库
为了记录事务总数,采用long数据类型进行记录,也就是使用8字节进行记录,所以xid文件的头部,要使用8字节表示总事务数。数据库中,事务具有三种状态:active(运行状态,使用0表示),committed(提交状态,使用1表示),aborted(回滚状态,使用2表示)。值得注意的是,我们在操作MySQL的时候不是都要开启事务的,有些不需要我们开启事务,针对这些不需要开启事务的操作,默认事务id=0。开启事务操作:要开启一个事务,首先要定义事务id,记录事务状态,最后更新XID文件中总事务个数。
2023-10-08 21:16:13
172
1
原创 基于JDK的动态代理原理
1、先编写公共接口和实现此接口的目标类(被代理类)。2、编写实现了InvocationHandler接口的类,在这个类中一般会有接口对象,和一个invoke方法,在invoke中通过接口调用目标类的方法,同时添加自己的方法。3、通过newProxyInstance静态方法创建代理类。
2023-03-08 20:36:12
312
原创 Java异常知识点
因为在执行try或者catch语句的return时,正常来说就要结束,这个时候先调用finally,发现finally可以退出,则直接在此退出。
2023-02-11 14:48:02
79
原创 HashMap的理解
HashMap底层是哈希表(hash table,也叫作散列表),为了解决哈希碰撞,又在原来的基础上把每个数组的元素扩展成一个个链表。简单理解的话,结构=数组(也叫作哈希桶)+链表,注意的是在jdk8以后,为了更高效的查询,在满足一定条件下,将链表转化成红黑树。...
2022-09-01 11:09:15
382
原创 FileInputStream中的java.io.FileNotFoundException异常
FileInputStream中莫名出现java.io.FileNotFoundException异常
2022-08-16 19:07:49
3469
转载 Java跨平台性
文章主要来自:Java跨平台性的理解_Meyu-优快云博客_java跨平台性1、Java跨平台原理首先看一张与C语言有关的图:如果您有过C的开发经历,这张图看起来将非常轻松。我们知道,只要是用标准C开发的程序,使用不同的编译器编译后的可执行文件是可以在对应平台运行的,比如windows可以使用VC编译,那编译后的exe文件就可以在windows下运行;liunx下可以使用GCC编译,生成的可执行文件就可以在Liunx上运行。到这里请大家思考一个问题:“VC编译的exe能在Liunx上运行吗
2021-07-08 20:05:39
248
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人