面试整理
文章平均质量分 86
面试整理
景未白
这个作者很懒,什么都没留下…
展开
-
JVM垃圾回收
无论是引用计数法还是可达性分析算法都用到了 引用 这个概念,JDK1.2以前,Java中引用的定义很传统,一个对象只有引用和被引用两种状态,我们希望能描述这一类对象:当内存空间足够时,则保留,当GC后内存很紧张,就可以抛弃这些对象,很多系统的缓存功能都符合这样的应用场景,所以在JDK1.2之后,将引用分为四类,不同的引用类型,主要体现的是对象不同的可达性状态和GC的影响。老年代的对象一般寿命比较长,因此每次垃圾回收会有大量对象存活,如果采用复制算法,每次需要复制大量存活的对象,效率很低。原创 2024-08-02 15:44:11 · 948 阅读 · 0 评论 -
JVM内存结构
它是一块比较小的内存空间,是当前线程正在执行的那条字节码指令的地址。它是描述Java方法运行过程的内存模型。Java虚拟机栈为每一个即将运行的Java方法创建一个名为 栈帧 的区域,用于存放该方法运行过程中的一些信息,如:局部变量表,操作数栈,动态链接,方法出口信息...它是为了JVM运行Native方法准备的空间,由于很多Native方法都是用C语言实现的,所以它通常又叫C栈。它与Java虚拟机栈实现的功能类似,只不过本地方法栈是描述本地方法运行过程的内存模型。原创 2024-07-26 17:14:51 · 681 阅读 · 0 评论 -
Java内存模型
此处的变量不是指java编程中的变量,它包括了实例字段,静态字段和构成数值对象的元素,但不包括局部变量和方法参数。JMM规定所有变量都存储在主内存中。每条线程有自己的工作内存,工作内存中保留了该线程使用到变量的主内存的副本。线程对变量的所有操作都必须在工作内存中进行,不能直接读写主内存的变量,不同的线程间也无法直接访问对方工作内存的变量,线程之间的变量值传递需要通过主内存来完成。原创 2024-07-19 17:37:28 · 854 阅读 · 1 评论 -
Java SE知识(持续更新中...)
12.synchronized和java.util.concurrent.locks.Lock的异同 :lock能完成synchronized所实现的所有功能,Lock有比synchronized更精确的线程语义和更好的性能,synchronized能自动释放锁,而Lock要求手动释放,并且必须在finally语句中释放。抽象类中可以有普通成员变量,接口中没有普通成员变量;1.switch语句可以作用在int类型上,byte,short,char可以隐形的转换成int,所以也支持,但是不支持long类型。原创 2024-07-10 10:28:10 · 352 阅读 · 0 评论 -
深入理解 Java 并发锁(2)
确保线程安全最常见的做法是利用锁机制(Lock,synchronized)来对共享数据做互斥同步,这样在同一时刻,只有一个线程可以执行某个方法或者某个代码块,那么操作必然是原子性的,线程安全的。在工作,面试中,经常会听到各种五花八门的锁,听的人云里雾里,实际上,锁的概念术语很多,他们说针对不同的问题所提出来的,通过简单的梳理,也不难理解。死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待之中,没有任何个体可以继续前进。原创 2024-07-09 10:46:22 · 556 阅读 · 0 评论 -
深入理解 Java 并发锁(1)-- AQS
全称为AbstractQueuedSynchronizer,其主要作用是处理同步,它是很多并发锁和很多同步工具类的实现基础(例如ReenTrantLock,CountDownLatch,FutureTask等)原创 2024-07-03 09:46:01 · 930 阅读 · 0 评论 -
Java并发简介
并发编程可以总结为三个核心问题:分工、同步、互斥。分工:是指如何高效地拆解任务并分配给线程。同步:是指线程之间如何协作。互斥:是指保证同一时刻只允许一个线程访问共享资源。原创 2024-05-31 16:09:02 · 933 阅读 · 0 评论 -
Zookeeper选举机制
节点3启动时,发起一次选举,节点1、2、3先投自己一票,然后因为节点3的id最大,两者更改选票投给为节点3,此时节点3票数最多,当选leader,节点1和节点2更改状态FOLLOWING,节点3更改状态为LEADING。节点2启动时,发起一次选举,投自己一票,此时节点1收到节点2的投票并发现节点2的ID比自己大,于是修改投票节点2,节点1和节点2状态保持为LOOKING。假设节点3宕机了,节点1的事务ID为99,节点2的事务ID为103,节点4的事务ID为100,节点5的事务ID为101,原创 2024-05-28 10:59:29 · 302 阅读 · 0 评论