Java面试
banboo998
Java 后端开发
展开
-
Java 面试:MySQL
mysql事务隔离:读已提交,可重复读 的底层原理:MVCC 和 read view原创 2021-03-21 18:05:56 · 78 阅读 · 0 评论 -
备战Java校招实习
JVMhttps://blog.csdn.net/qq_20156289/article/details/115010547JUChttps://blog.csdn.net/qq_20156289/article/details/115032604数据结构https://blog.csdn.net/qq_20156289/article/details/115024315mysqlredis原创 2021-03-21 17:37:37 · 168 阅读 · 0 评论 -
Java面试:死锁的种类
1.由于争夺资源导致的死锁 。 https://blog.csdn.net/qq_20156289/article/details/1147764992.notify导致的死锁。https://blog.csdn.net/qq_20156289/article/details/114776427原创 2021-03-14 08:43:49 · 83 阅读 · 0 评论 -
Java面试:死锁,由资源争夺导致的死锁
如图。t1和t2都需要r1 和 r2锁。但是t1需要的顺序是获取r1再获取r2而t2是获取了r2才会去获取r1这种情况下如果t1获取了r1然后失去cpu,t2获取cpu然后获取了r2这种情况下t1一直持有r1然后尝试获取r2而t2是一直持有r2然后尝试获取r1...原创 2021-03-14 08:42:55 · 138 阅读 · 0 评论 -
java面试 多线程:notify为什么会导致死锁。而notifyAll不会?
前提:notify导致的死锁不是争夺资源引起的死锁首先我们要知道。在Java中当线程使用了wati 、 notify后,锁就自动升级为总量级锁了,这时会使用操作系统提供的monitor对象。monitor对象内有waitSet和entryList.其中 waitSet 中的对象,只能由notify或者notifyAll唤醒后才会去争夺锁。而entryList中的对象,则是有机会就会去尝试获取锁。notify每次只随机唤醒waitSet内的一个线程notifyAll 会将waitSet内的所有线程原创 2021-03-14 08:35:04 · 3176 阅读 · 5 评论 -
Java 面试:消息中间件
这里用Kafka 举例消息中间件优点:异步削峰解耦原创 2021-03-06 22:10:48 · 257 阅读 · 0 评论 -
Java 面试 :乐观锁 悲观锁
乐观锁悲观锁,是为了解决多线程并发操作共享变量可能导致的脏读、幻读和不可重复读等问题悲观锁悲观锁,是因为这是一种对数据的修改持有悲观态度的并发控制方式。总是假设最坏的情况,每次读取数据的时候都默认其他线程会更改数据,因此需要进行加锁操作,当其他线程想要访问数据时,都需要阻塞挂起。共享锁【shared locks】又称为读锁,简称S锁。顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。排他锁【exclusive locks】又称为写锁,简称X锁。顾名思义,排原创 2021-03-05 14:24:28 · 1790 阅读 · 5 评论 -
Java 面试: synchronized原理
说到synchronized,我们提到,Java 对象的对象头,Java对象头中包含一个Mark word 内存取,当我们的对象被synchronized 当成对象锁时,Mark word 就会指向要一个 Monitor对象,这个是操作系统提供的一个管程对象,这个对象。简单说来这个对象有三个主要的属性,Owner,EntryList,WaitSet。其中Owner 使用来指向当前拥有对象锁的线程的。这个就是synchronized的原理。...原创 2021-03-04 22:57:38 · 131 阅读 · 1 评论 -
Java 面试:进程与线程的区别
进程说到进程与线程的区别,首先我们要知道什么是进程什么是线程。 说到进程,我们要只要一个概念,程序。 程序是由指令和数据组成。程序的指令要加载至cpu,程序的数据要加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启这个程序的一个进程。 进程可以视为程序的一个实例,有的程序可以有多个进程实例,有的则规定只能有一个进程实例线程一个线程就是一个指令流,将指令流中的一个个指令交给cpu运行原创 2021-03-04 22:07:08 · 113 阅读 · 1 评论 -
Java面试。 多线程中锁的4中状态
锁的4中状态:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态(级别从低到高)原创 2021-03-03 22:58:33 · 149 阅读 · 1 评论 -
Stringbuffer 和Stringbuilder的区别
StringBuffer多线程安全的,StringBuilder多线程不安全原创 2021-03-03 22:57:57 · 94 阅读 · 1 评论 -
Java面试. Java的基本类型
Java有8种基本类型,以及类型占用方法栈内存的大小原创 2021-03-03 22:45:13 · 75 阅读 · 1 评论