高并发
文章平均质量分 83
东北亚大中华区首席搬砖工具人
要饭,要饭,精通C++
展开
-
Java高频重点面试题,看这一篇就够了。
1.==和equals区别?1)对于==,比较的是值是否相等如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,所有类从Object类中继承equals方法,比较的是是否是同一个对象 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; 诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象原创 2021-07-16 20:54:25 · 1499 阅读 · 0 评论 -
Java面试之什么是GCRoots,能做什么?
JVM面试汇总JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots什么是垃圾简单来说就是内存中已经不再被使用的空间就是垃圾如何判断一个对象是否可以被回收引用计数法Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法就是通过引用计数来判断一个对象是否可以回收。简单说,给对象中添加一个引用计数器每当有一个地方引用它,计数器值加1每当有一个引用失效,计数器值减1任何时刻计数器值为零的对象就是不可能再被使用的,那么这个对象就是可回收对象。那么原创 2021-04-08 20:50:30 · 623 阅读 · 0 评论 -
Java面试之阻塞队列
阻塞队列概念队列队列就可以想成是一个数组,从一头进入,一头出去,排队买饭(FIFO),和栈是一样的FIFO阻塞队列BlockingQueue 阻塞队列,排队拥堵,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示:线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素当阻塞队列是空时,从队列中获取元素的操作将会被阻塞当蛋糕店的柜子空的时候,无法从柜子里面获取蛋糕当阻塞队列是满时,从队列中添加元素的操作将会被阻塞当蛋糕店的柜子满的时候,无法继续向柜子转载 2021-03-30 20:58:26 · 116 阅读 · 0 评论 -
Java面试之锁-公平锁和非公平锁
Java锁之公平锁和非公平锁概念公平锁是指多个线程按照申请锁的顺序来获取锁,类似于排队买饭,先来后到,先来先服务,就是公平的,也就是队列非公平锁是指多个线程获取锁的顺序,并不是按照申请锁的顺序,有可能申请的线程比先申请的线程优先获取锁,在高并发环境下,有可能造成优先级翻转,或者饥饿的线程(也就是某个线程一直得不到锁)如何创建并发包中ReentrantLock的创建可以指定析构函数的boolean类型来得到公平锁或者非公平锁,默认是非公平锁/*** 创建一个可重入锁,true 表示公平锁,f原创 2021-03-15 20:58:14 · 100 阅读 · 0 评论 -
Java面试之ArrayList为什么线程不安全?
Collection线程不安全的举例前言1、当我们执行下面语句的时候,底层进行了什么操作new ArrayList<Integer>();底层创建了一个空的数组,伴随着初始值为10当执行add方法后,如果超过了10,那么会进行扩容,扩容的大小为原值的一半,也就是5个,使用下列方法扩容Arrays.copyOf(elementData, netCapacity)单线程环境下单线程环境的ArrayList是不会有问题的public class ArrayListNotSafeD转载 2021-03-15 20:34:51 · 238 阅读 · 0 评论 -
Java面试之原子类AtomicInteger的ABA问题
原子类AtomicInteger的ABA问题连环套路从AtomicInteger引出下面的问题CAS -> Unsafe -> CAS底层思想 -> ABA -> 原子引用更新 -> 如何规避ABA问题ABA问题是什么狸猫换太子假设现在有两个线程,分别是T1 和 T2,然后T1执行某个操作的时间为10秒,T2执行某个时间的操作是2秒,最开始AB两个线程,分别从主内存中获取A值,但是因为B的执行速度更快,他先把A的值改成B,然后在修改成A,然后执行完毕,T1线程在1原创 2021-03-14 10:12:44 · 930 阅读 · 0 评论