![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java八股
文章平均质量分 53
汝熊
这个作者很懒,什么都没留下…
展开
-
MySql通过MVCC机制来解决幻读和不可重复读
假设之后事务B修改了数据,并且提交了,这个时候A读到的数据依旧不会改变,因为事务A只会生成一次readview,之后事务A每次读取,都是基于第一次生成的readview,这里就解决了重复读问题。在事务开启的时候,都会生成一个readview,之后这个事务的所有读操作都是基于这个readview的。不可重复读现象指的是,在同一事务内,连续两次查询同一条数据,查到的结果前后不一样。假设现在有事务A和事务B并发执行,事务A的id为1,事务B的id为2.这里有两个需要区分的概念:快照读和幻读。原创 2023-08-10 11:27:22 · 93 阅读 · 1 评论 -
关于mvcc的理解
【代码】关于mvcc的理解。原创 2023-08-10 11:16:38 · 63 阅读 · 1 评论 -
Java八股文之JVM垃圾回收
可达性分析法:是通过一系列被称为“GC Roots”的对象作为起点,向下搜索,搜索所走过的路径被称为引用链,当一个对象到"GC Roots"之间没有任何引用链相连时,表明这个对象是不可达的,也就是需要回收的。Full GC/Major GC:指发生在老年代中的垃圾回收动作,出现了Full GC通常会伴随着一次Minor GC,Major GC一般比Minor GC慢十倍以上。3.空间分配担保失败,通过Minor GC后,进入老年代的平均大小大于老年代的可用空间,会导致Full GC。原创 2023-07-07 18:18:09 · 123 阅读 · 1 评论 -
Java八股文之JVM部分(内存溢出异常问题)
2.单例模式导致内存泄漏,因为单例模式的静态特性,它的生命周期和JVM生命周期一样长,如果单例对象持有外部对象引用的话,他也不会被回收。指程序中动态分配给内存一些临时对象,并且这些对象始终没有被回收,一直占用着内存。1.静态集合类引起内存泄漏,因为静态集合类的生命周期和JVM一致,所以静态集合类引用的对象不能被释放。当线程所请求的栈深度超过虚拟机允许的最大深度时,有可能发送栈溢出,比如调用递归方法时。4.数据库连接,网络连接等各种连接没有显示释放也会导致内存泄漏。1.加载的数据量过大,内存不够用了。原创 2023-07-07 16:52:58 · 126 阅读 · 1 评论 -
Java八股文之redis系列
Redis事务是一个单独的隔离操作,事务中的命令都会序列化,按顺序地执行。事务在执行的过程中,不会被其他客户端发来的命令请求所打断,所以redis事务是在一个队列中,一次性,顺序性,排他性地执行一系列命令。redis事务地主要任务就是串联多个命令防止别的命令插队。在分布式场景下,对共享资源的访问,在同一时刻,只能被一个锁占有。原创 2023-07-04 17:09:23 · 39 阅读 · 0 评论 -
java并发编程(二)
1.因为这些方法在操作同步线程时,都需要标识他们操作线程的锁,只有同一锁上的被等待线程,才能被同一把锁上的notify()或者notifyAll()方法唤醒,不可以被不同锁的notify或notifyAll()方法唤醒,也就是说等待和唤醒必须是同一对象。而锁可以是任意对象,所以就算object类了。线程互斥指的是每次都保证只有一个线程访问一个资源,具有排他性和唯一性,但是不保证访问的顺序性。线程同步指的是在互斥的基础上保证对线程的访问是顺序的。线程同步:1.同步方法2.同步代码块。原创 2023-06-21 10:39:36 · 87 阅读 · 0 评论 -
java并发编程八股文(一)
线程是处理器任务调度和处理的基本单位,进程是操作系统资源分配的基本单位。进程是程序的一次执行过程,是系统运行的基本单位,线程是比线程更小的执行单位,一个进程可以包含多个线程。原创 2023-06-21 07:24:54 · 44 阅读 · 0 评论 -
MySql日志相关(binlog和redolog)
(实在不知道为啥要弄这,我觉得自己没有实操过,即使有理解,应该也只是为了面试)原创 2023-06-10 18:29:34 · 40 阅读 · 0 评论 -
java八股之关于mysql数据库锁和事务
数据库有并发事务的时候,保证数据顺序访问的机制成为数据库的锁机制。乐观锁:假设事务在访问数据的时候,大部分情况下是不会冲突的,所以数据库只在更新提交的时候检测是否冲突,如果冲突,更新操作失败。乐观锁的实现方式:cas和版本号实现。悲观锁:每次读取数据的时候,都会加锁。悲观锁的实现方式:使用数据库的锁机制,对查询语句,后面加上for update。死锁:两个或者两个以上的事务在等待统一资源,或者互相通信造成的环形等待,阻塞的关系。原创 2023-06-10 11:04:33 · 134 阅读 · 0 评论 -
Mysql数据库的一些知识点
索引是对数据库表一列或者多列进行排序的一种结构。索引使用的数据结构是B+树结构。原创 2023-06-07 20:13:28 · 49 阅读 · 1 评论 -
计算机网络
是存储再服务端,Session是通过Cookie实现的,当客户端浏览器第一次访问服务端时,服务端会向浏览器发送一个sessionid,将sessionid放在cookie里面,存在客户端浏览器。是存储在客户端的,其中包含了用户信息,当客户端向服务端发送请求时,服务端会向客户端发送一个Cookie用来保存用户信息,当下次客户端再访问服务端时,会带上Cookie,用来确认身份。3.如果没有,就访问本地dns解释器服务器,如果有的话,就完成解析,没有,就向根域名服务器发起查询请求。原创 2023-06-03 11:24:50 · 43 阅读 · 0 评论 -
Java集合
一次异或:key.hashcode()与key.hashcode()的高16位进行异或,这样key.hashcode()高16位不变,低16位既具备高16位特点又具备低16位特点,进而减少碰撞的发生。List:有序集合(此处的有序指的是取出来的数据顺序和存进去的数据顺序一致),可以存储多个元素,也可以存储多个null值。Map:使用键值对的方式存储数据,key是无序且唯一的,value值不唯一,不同的key可以对应相同的value。一次位运算:异或之后的结果和hashmap的容量-1进行位运算。原创 2023-06-02 08:46:59 · 40 阅读 · 0 评论 -
不太正式的秋招八股准备(欢迎小伙伴和我一起呀)
重载发生在同一个类中,指的是方法名相同,参数列表不同(参数个数不同,参数类型不同等)。重写发生在父子类中,指子类中重新定义与父类相同的方法名,参数列表的方法,且子类方法抛出的异常小于等于父类,子类访问修饰符大于等于父类。重载的方法是否能根据返回值类型进行区分?不能,调用的时候不能指定类型,故不能。==**比较的是值,对于引用数据类型,比较的是地址。对于equals对于没有重写equals的类,作用和双等于一样,对于重写了的,equals比较的是值。值传递。原创 2023-05-31 21:12:41 · 46 阅读 · 1 评论