目录

​​概念​​

​​基础源码​​

​​原理​​

​​底层​​

​​关系数据库​​

​​锁​​

​​非关系数据库​​

​​大数据​​

​​架构​​

​​Spring​​

​​网络​​

​​线程​​

​​运维Linux​​

​​分布式​​

​​集群​​

​​场景模拟​​

​​其他​​


 

 

相关面试指南

​https://snailclimb.gitee.io/javaguide/#/​

 

 

​https://gitee.com/veal98/CS-Wiki/tree/master/docs​

​https://veal98.gitee.io/cs-wiki​

🎉 用清晰的脉络总结 Java 和 AI 相关的知识点,便于构建完善的知识体系

 

概念

  1. 简单说一下面向对象的特征以及六大原则
  2. Java容器有哪些?哪些是同步容器,哪些是并发容器?

 

基础源码

  1. Java中==、equals与hashCode的区别和联系
  2. 谈谈Java容器ArrayList、LinkedList、HashMap、HashSet的理解,以及应用场景
  3. 谈谈final、finally、finalize的区别
  4. 谈谈线程的基本状态,其中的wait() sleep() yield()方法的区别。
  5. ArrayList和LinkedList的插入和访问的时间复杂度?
  6. HashMap在什么情况下会扩容,或者有哪些操作会导致扩容?
  7. HashMap push方法的执行过程?
  8. HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?
  9. ConcurrentHashMap和HashMap

 

 

原理

  1. Java反射原理, 注解原理?
  2. 注解的原理
  3.  

 

 

底层

  1. JVM性能调优的监控工具了解那些?
  2. 简单谈谈JVM内存模型,以及volatile关键字
  3. 垃圾收集器与内存分配策略
  4. 垃圾收集算法
  5. 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?
  6. Java内存模型
  7. full gc怎么触发?
  8. gc算法
  9. JVM回收策略
  10. ClassLoader原理和应用
  11. 高吞吐量的话用哪种gc算法

 

关系数据库

  1. MySQL几种常用的存储引擎区别
  2. 数据库的隔离级别
  3. 查询中哪些情况不会使用索引?
  4. 数据库索引,底层是怎样实现的,为什么要用B树索引?
  5. Mysql主从同步的实现原理?
  6. MySQL是怎么用B+树?
  7. 数据库原理,数据库中间件,索引优化
  8.  

 

 

 

  1. 谈谈数据库乐观锁与悲观锁?
  2.  

 

非关系数据库

  1. 有使用过哪些NoSQL数据库?MongoDB和Redis适用哪些场景?
  2. Redis和memcache有什么区别?Redis为什么比memcache有优势?
  3. 考虑redis的时候,有没有考虑容量?大概数据量会有多少?
  4.  

 

 

大数据

  1. 5亿整数的大文件,怎么排?
  2. 1亿个手机号码,判断重复

 

架构

  1. 从项目的架构设计到部署流程。
  2.  

 

Spring

  1. 请详细描述springmvc处理请求全流程?
  2. ioc原理、aop原理和应用
  3.  

 

网络

  1. https和http区别,有没有用过其他安全传输手段?
  2.  

 

线程

  1. 线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?
  2. 线程之间的交互方式有哪些?有没有线程交互的封装类 (join)?
  3. 说一说你使用的是什么样的线程池,自定义线程池的几个参数是什么

 

运维Linux

  1. Linux怎么查看系统负载情况?
  2.  

 

分布式

  1. 谈谈分布式锁、以及分布式全局唯一ID的实现比较?

 

集群

  1. 集群监控的时候,重点需要关注哪些技术指标?这些指标如何优化?

 

场景模拟

  1. 两次点击,怎么防止重复下订单?
  2. 秒杀场景设计,应付突然的爆发流量
  3. 分布式数据一致性
  4. zk挂了怎么办?
  5. 布式锁的实现方式,zk实现和Redis实现的比较

 

MQ

  1. 消息队列原理介绍
  2.  

 

 

 

其他

  1. 最近两年遇到的最大的挫折,从挫折中学到了什么?
  2. 最近有没有学习过新技术?
  3. 从千万的数据到亿级的数据,会面临哪些技术挑战?你的技术解决思路?

 

建议

多刷题

包括【Java核心知识】以及【算法刷题】

算法刷题LeetCode

 

看一些技术直播,在直播间交友;

加一些技术性的交流群,多交流问题;

参加一些线下活动,如面基、研讨会等等。