Java面试 32个核心必考点完全解析(上)【附视频地址】
in with 1 comment

Java面试 32个核心必考点完全解析(上)【附视频地址】

in with 1 comment
  • 在准备面试过程中,发现一份不错的很全面的面试视频资源,它涵盖的Java高级工程师所需要掌握的绝大部分知识点,将它整理成文档形式,方便复习,以及后期学习的查漏补缺。

  • 文末回复 “面试” ,获取视频地址

由于篇幅过长,故分成上下两篇,此篇主要讲解:

  1. 操作系统与计算机网络
  2. Java语言特性及设计模式
  3. 深入浅出JVM
  4. 并发与多线程
  5. 数据结构与算法
  6. 常用工具

1、操作系统与计算机网络

操作系统 计算机网络

面试题整理

  1. 进程与线程的区别与联系(资源的占用,切换效率,通信方式)
  2. 简单介绍一下进程的切换过程 (线程上下文的切换代价,切换保存寄存器、栈,用户态切换内核态,vmstat 命令)
  3. 操作系统中的进程调度算法
  4. 经常使用的 Linux 命令,使用场景
  5. OSI 七层模型
  6. 简述 TCP\UDP的区别
  7. TCP 如何实现可靠性传输
  8. TCP 的三次握手和四次挥手过程
  9. 为什么 TCP 关闭链接时需要 TIME_WAIT 状态,为什么要等 2MSL?
  10. 一次完整的 HTTP 请求过程(DNS TCP HTTP)
  11. 简述 HTTP 中 GET 和 POST 的区别
  12. HTTP2 与 HTTP 之间的区别

参考 https://www.cnblogs.com/midiyu/p/7897086.html

2、Java语言特性及设计模式

java语言特征 设计模式

面试题整理

  1. 项目中使用过哪些设计模式?主要用来解决什么问题?
  2. 简单描述一下Java的异常机制
  3. 线上使用的哪个版本JDK,为什么使用这个版本(有什么特征)?
  4. Java的四种对象引用,及其各自的特点
  5. HashMap和ConcurrentHashMap的底层实现原理,在1.8中的改变
  6. 谈谈对JUC的理解

3、深入浅出JVM

JVM

面试题整理

  1. 简单描述JVM的内存模型
  2. 什么情况下会触发 FullGC
  3. Java 类加载器有几种,关系怎样
  4. 双亲委派机制的加载流程及其好处
  5. 1.8为什么用 Metaspace 替换 PermGen,Metaspace 保存在哪里
  6. 编译器会对指令做哪些优化(简单描述编译器的指令重排)
  7. 对 ZGC 的了解,使用场景
  8. 简单描述 volatile 可以解决什么问题?如何做到的?
  9. 简单描述 GC 的分代回收
  10. G1 垃圾回收算法与 CMS 的区别有哪些
  11. 对象引用有哪几种方式,有什么特点?
  12. 问题排查经验与思路
  13. JVM 调优经验和调优思路

4、并发与多线程

多线程

面试题整理

  1. 如何实现一个生产者与消费者模型?(锁、信号量、线程通信、阻塞队列等)
  2. 如何理解线程的同步与异步、阻塞与非阻塞?
  3. 线程池处理任务的流程是怎样的?线程池的原理、使用场景、常用配置
  4. wait与sleep有什么不同?(4点)
  5. Synchronized 和 ReentrantLock 有什么不同?
  6. 读写锁适用于什么场景?ReentrantReadWriteLock是如何实现的?
  7. 线程之间如何通信?
  8. 保证线程安全的方法有哪些?
  9. 如何尽可能提高多线程并发性能?
  10. ThreadLocal用来解决什么问题?ThreadLocal是如何实现的?
  11. 死锁的产生条件?如何分析是否有线程死锁?
  12. 在实现过程中遇到过什么样的并发问题,如何发现排查并解决的?
  13. JUC工具的使用场景和实现原理
  14. 了解Java8对JUC的增强
  15. 了解Reactive异步编程思想

5、数据结构与算法

数据结构 算法

面试题整理

  1. 各种排序算法实现和复杂度、稳定性
  2. 二叉树的前、中、后序遍历
  3. 翻转句子中单词的顺序
  4. 用栈模拟队列(或用队列模拟栈)
  5. 对10亿个数进行排序,限制内存为1G(分治思想)
  6. 去掉(或找出)数组中重复的数字(排序、Hash)
  7. 将一颗二叉树转换成其镜像
  8. 确定一个字符串中的括号是否匹配(单模、多模匹配)
  9. 给定一个开始词,一个结束词,一个字典,如何找到从开始词到结束词的最短单词接龙路径(深度优先搜索)
  10. 如何查找两个二叉树节点的最近公共祖先(递归和非递归实现)

6、常用工具

常用工具 JVM工具 JVM工具

面试题整理

  1. 排查JVM问题有哪些常用工具?(曾经遇到的问题,如何排查,如何解决)
  2. Git合并代码有哪两种方法?有什么区别?
  3. Git与SVN有哪些区别

后续文章:Java面试 32个核心必考点完全解析(下)

关注后,回复“面试”

回复 “面试” 即可,获取视频地址 公众号