JVM和JUC面筋整理

1、JAVA容器有哪些?同步容器,并发容器
2、JAVA反射原理,注解原理
3、新生代分为几个区?是用什么垃圾算法?为什么?
4、JMM模型, volatile
5、HashMap检测到哈希冲突,将元素插在链表末尾还是开头(头插法会造成循环链表)
6、1,8采用了红黑树,讲讲红黑树的特性,为什么不是AVL、B树之类的
7、http和https的区别,有没有用过其他安全全手段
8、有哪些网络协议(应用层(HTTP、SMTP、FTP、DNS、CMP)传输层 网络层(IP、ICMP、ARP)
9、线程池工作原理,重要参数如何设置,谈谈ThreadPoolExcecutor的理解,阻塞队列知道吗?阻塞队列作用是什么?
10、linux查看系统负载情况
11、讲一讲AtomicInteger为什么用CAS不是Synchorized(只能共享一个变量,CAS自旋消耗资源、ABA)
底层原理自旋锁;Unsafe类
12、JVM老年代和新生代(2:1) 伊甸园区和幸存区(8:1:1)
13、YGC和FGC发生的具体场景;GC用什么垃圾回收器?回收过程?哪些部分可以用作GC root?
14、单机上一个线程池正在处理服务如果忽然断电怎么办(正在处理和阻塞队列里的请求怎么处理)(阻塞队列持久化,正在处理事物控制。断电之后正在处理的回滚,日志恢复该次操作。服务器重启后阻塞队列中的数据再加载)
15、使用无界阻塞队列会出什么问题/有界阻塞队列
16、接口处理重复请求(幂等性)
17、hashmap和treemap底层数据结构,区别;Hashmap、HashTable和ConcurrentHashmap的区别,内部实现
18、sychorized什么时候是对象锁,什么时候是全局锁,为什么?和lock的区别
19、Threadlcoal底层怎么实现,写例子
20、volatile(提供java虚拟机轻量级同步机制,不保证原子性、可见性、禁止指令重排)工作原理,原子性问题,为什么i++不支持原子性(计算机原理讲述不能保证原子性,会丢失数据)?指令重排的意义;cas工作原理、缺陷和改进方法?(循环时间长开销大/ABA/只能保证一个变量原子操作)
Volatile中Number++(三步:从主存获得值、加1、赋值给主存);
Volatile那些地方用到? (单例模式、读写锁手写缓存、CAS(JUC包))
如何解决原子性(加sync、使用我们的juc下AtomicInteger);
AtomicInteger底层CAS(unsafe.getAndAddInt),自旋锁;谈谈AtomicInteger的ABA问题?原子更新引用?时间戳原子引用(CAS版本号机制)
21、JVM内存模型,用过什么垃圾回收器说说(CMS,G1),分代回收过程
22、线上频繁发送full gc,cpu使用频率过高怎么办?如何定位问题
23、字节码有哪些?Integer x=5,int y=5,比较x=y有哪些步骤
24、类加载机制,有哪些类加载器,这些加载器加载哪些文件
25、GC Root如何确定,哪些对象可以当做GC root?GC如何分带,每一代用什么算法回收
26、对象在java怎么存储,对象头信息有那些东西?JVM内部结构,常量池在哪里
27、JAVA有哪些锁?(公平锁和非公平锁,读写锁解决什么问题/可重入锁/递归锁/自旋锁)Synchorized和reentrentlock内部原理(AQS原理: reentrentlock、Countdownlanch、Semaphore、reentrentReadWritelock)
28、原子类内部如何实现
29、ArrayBlockingQueue和linkedBlockingQueue内部如何实现
30、Innodb索引数据结构31、Btree和B+树区别,为啥用B+树
32、comparable和comparator区别33、内存溢出和内存泄漏
34、mysql整体架构,innodb索引,innodb主键索引和非主键索引
35、JAVA的IO/Nio
36、线程间的通信和进程间的通信
37、HashSet是安全的吗,为什么不安全?哪些是线程安全的Map,ConcurrentMap怎么安全的?Hashtable怎么安全
38、JMM原子性、可见性、有序性
39、单例模式(饿汉式双端检索机制valatile)
加valatile的目的是进制指令重排,没有给对象初始化就赋值

        public class Singleton{
              private Sigleton(){}  
              private volatile static Singleton singleton=null;
              public static Singleton getInstance(){
              if(singleton==null){
                 Synchorized(Singleton.class){
                     If(singleton==null){
                     singleton=new Singleton();
                   }
               }
} 
return singleton; 
}  
}

40、死锁的必要条件四个?(资源互斥、循环等待、不可剥夺、请求保持)怎么避免死锁问题?四所编码定位分析
主要原因:系统资源不足、资源分配不当、进程顺序不当
41、ArrayList县城不安全 解决方案

(1new vector
 2、Collections.synchorizedList(new ArrayList<>()、Collections.synchorizedMap<>(new HashMap)
 3new CopyOnwriteArrayList() ) 

42、CountDownLatch/CyclicBarrier/Semaphore
43、Synchorized 关键字 不会死锁(正常退出或报错) 可重入、非公平、不可中断 自动
Reentrelock JAVA类 死锁 可重入、可公平、可中断 手动释放
44、GCRoots是什么?有哪些可以作为GCRoots对象?
Gcroot根链路扫描,虚拟机栈(局部变量表引用对象)、方法区(静态属性引用对象、常量引用对象)、本地方法栈(引用对象)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值