【2020】超100篇牛客网Java面经高频知识点汇总

总觉得自己好像什么都会点,但是面试就被问得很懵逼,自己很菜就不再吐槽了

最近疯狂的在牛客刷面经,但是过目就忘了!!!所以分门别类的记录了一下高频的考点。
何为高频的考点?快速扫描了七八十篇面经后,再看的面经绝大部分都在我笔记覆盖了!
所以看完了100多篇就没怎么看了,还是整理整理开始狂补基础知识吧!

本文内容来自陌陌、美团、阿里、链家、快手、京东、瓜子、滴滴、百度、爱奇艺、vivo等十多个公司最近三年的100多篇面经中比较高频的总结,有的是校招的有的是实习的,不过不影响学习。学习嘛,反正都得学。


一、JVM

  1. JVM内存结构

    • JVM的分区(Java的内存管理机制)(JAVA 的运行时区域分配):都说的是JVM的内存结构

    • JVM哪个区域不会发生内存溢出

  2. 类加载器

    • JVM 类加载机制

    • class 文件如何执行

    • 为什么要引入双亲委派机制

    • 什么情况下用自定义类加载器

  3. 反射

    • 写一段反射的代码

  4. GC

    • 哪些阶段会发生STW现象

    • G1垃圾回收为什么可停顿

    • GC的工作流程

    • FULL GC发生场景

    • 如何打印GC日志

    • 经常FULL GC怎么定位到错误

    • GC可达性分析怎么做,哪些可以作为GC Root

    • CMS收集器和G1垃圾回收器回收垃圾过程

    • G1的优点

    • 垃圾回收的过程,什么对象会进入老年代

    • 垃圾回收算法有哪些?为什么新生代使用复制算法

    • 高吞吐量时用哪种GC算法、

    • 执行了System.gc()触发GC机制后如何进行回收的

  5. 其他

    • JVM排错方式

    • 内存泄露的原因,举例说明

    • 如何排查内存泄露

    • JVM启动参数有哪些,列举熟悉的几个

    • JVM为什么分新生代和老年代

    • 系统周期性卡顿,如何定位问题,结合GC日志

    • 在 JVM上运行一段Java 程序输出一条语句,它是怎么输出到屏幕上的

二、 并发

    • Java 中的锁机制

    • 为什么需要锁

    • 介绍下几种锁

      • 公平锁和非公平锁的区别

      • 悲观锁和乐观锁

      • 可重入锁与非可重入锁

      • 自旋锁与阻塞锁

    • Synchronized

      • Synchronized和ReetrantLock的区别

      • Synchronized的偏向锁、轻量级锁、重量级锁

      • Synchronized关键字的底层原理

    • Reentrantlock

      • Reentrantlock 有哪些方法

      • 有Synchronized了为什么还需要Reentrantlock

      • tryLock()在什么场景下用

    • 读锁插队策略,锁升降级策略

    • 如何优化锁并提高并发性能

  1. 线程池

    • 线程池是如何实现的

    • 使用线程池带来的好处

    • 常见的线程池有哪些,各个参数的意义

    • 执行线程池的两种方式

    • 线程池怎么定时完成一项任务?

    • 线程池线程都有任务,阻塞队列也满了,再来任务怎么办?

    • Java 线程池 ThreadPoolExecuter 和四个自带的线程池分别适合什么场景?

    • ScheduledThreadPoolExecutor 中的使用的是什么队列?内部如何实现任务排序

    • 线程池常见的拒绝策略

    • 如何优雅的关闭线程池

    • 如何设计一个简单的线程池

  2. 并发类

    • 怎么实现一个类满足插入和删除操作的原子性

    • JUC原子类的实现原理

    • AQS的原理和应用场景

    • CAS的底层原理和应用场景,ABA问题

    • 怎么实现一个线程安全的计数器? 原子类 AtomicInteger 实现原理是什么?和你设计的计数器优劣比较? CAS 怎么实现原子操作的?

    • ThreadLocal 

      • ThreadLocal 的应用场景

      • ThreadLocal 与Thread的关系

      • ThreadLocal 使用不当为什么会发生内存溢出?怎么避免

    • CopyOnWriteList 

      • CopyOnWriteArrayList 与ArrayList相比有哪些异同?

      • CopyOnWriteArrayList 通过哪些手段实现了线程安全?

      • 为什么 CopyOnWriteArrayList 迭代过程中,数组结构变动,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值