• Java 面试 知识清单


    一、Java:

    1. java语法基础:不用特别记,如果有问到不会的,再去查查。基础弱的可以看这个
    2. java容器(非常重要):HashMap、ArrayList、ConcurrentHashMap实现原理,HashMap的扩容操作。看这个注意HashMap的扩容操作,在1.7下先判断是否需要扩容再插入,而1.8是先插入,再判断是否需要扩容。
    3. java虚拟机:
      1. 运行时数据区域:堆、栈……
      2. 垃圾收集:重点是垃圾收集算法,垃圾收集器有时间再看,没时间就不看。
      3. 内存分配与回收策略
      4. jvm调优:这个我不擅长,但有时候会问到
      5. gc日志排查:结合项目讲如何排查gc时间太长,关键是gc日志里的real_time实际gc时间

    二、Java多线程 & 并发:看这里面的:一、线程,四、互斥同步,七、J.U.C,九~十三

    1. 线程
    2. 线程池ThreadPoolExecutor所有参数的含义(非常重要)
    3. 互斥同步
    4. Java自带保证线程安全的方法,以及对其优化后的锁
    5. synchronized和Lock的区别
    6. 结合自己的项目,讲如何处理高并发,如高并发的三板斧:缓存、限流、降级。以及容灾\熔断\限流\缓存设计\单点故障如何解决:https://pdai.tech/md/arch/arch-y-ratelimit.html#%E9%87%87%E7%94%A8atomicinteger
    7. 缓存:关键词:本地缓存和分布式缓存2种方案
    8. 限流
    9. 降级
    10. 负载均衡:常见的负载均衡策略,如何用代码实现负载均衡
      1. 轮询/随机/IP地址 hash/加权轮询/加权随机/当前处理请求数最小的机器

    三、MySql:

    1. MySql索引的数据结构(B+树)
    2. mysql的原理:搜一下《丁奇mysql45讲》的pdf,一定要看里面的前3章:
      链接: https://pan.baidu.com/s/1EC7xdw58N-_jJHh4XtjGcw?pwd=hku9 提取码: hku9
      一定要看《丁奇mysql45讲》里的前3章:基础架构、日志、事务隔离!
    3. mysql性能调优(也可以理解为索引):套到自己的项目里讲案例https://www.cnblogs.com/zhangyinhua/p/7620964.html
    4. mysql索引失效的场景
    5. mysql聚簇索引和非聚簇索引
    6. mysql索引设计(非常重要):面试官会给一个场景,让你设计mysql表、索引
      1.银行转账场景:写建表语句、根据查询场景建索引。注意要考虑A给B转账的同时,B给A转账造成的死锁,以及如何解决。
    7. 编写sql语句:常规的关联查询;分组然后每组取1个;部分字段重复的去重。

    四、半吊子Redis知识清单:(我用的少,这个我不是很擅长)

    五、半吊子大数据知识清单(之前没做过大数据的小伙伴,就不用看这个了

    • spark运行原理:

      • 参考:https://tech.meituan.com/2016/04/29/spark-tuning-basic.html的最后一节
      • 重点关注:
        • driver、executors、Cluster Manager
        • job、stage、task的关系
        • 常见面试问题:为什么 spark shuffle 是很耗费的
    • 性能优化:

      • 结合到项目里讲
      • 参考https://tech.meituan.com/2016/04/29/spark-tuning-basic.html
      • 对多次使用的RDD持久化(cache、persist)
      • 大变量先广播(任务数据、规则)
      • 尽量避免使用shuffle类算子
      • 解决数据倾斜
      • 删除掉无用数据
      • ……
    • 问题排查和性能调优:结合之前的排查经历讲:

      • 数据倾斜
      • 减少数据量
      • 数据量膨胀问题排查
    • 离线任务运维:

      • 遇到过的问题,及解决方案
    • Clickhouse(如果简历里要写的话):

      • 为什么Clickhouse比mysql在某些场景下更快
  • 相关阅读:
    前端面试手册
    小程序商城如何成为商家的标配?
    java源码系列:HashMap源码验证,自己手写一个HashMap之01-基本框架
    【COS 加码福利】COS 用户实践有奖征文,等你来投稿!
    python后台框架简介
    XML解析
    Codeforces Round 901 (Div. 2)
    【无标题】
    Spring-ImportSelector接口功能介绍
    基于ssm的高校校友信息管理系统设计与实现-计算机毕业设计
  • 原文地址:https://blog.csdn.net/qijingpei/article/details/125428885