乐趣区

关于面试:重点Java大厂面试10个知识点汇总

本文收录在猪哥 GitHub:https://github.com/pig6/Java 中,本我的项目收集一线大厂面试、实战、Java 学习路线等。

本篇笔记是我五年来的工作学习面试教训 & 记录,心愿对大家有一些帮忙

一、java 根底

  • Object 类的所有办法:getClass hashCode equals clone toString notify notifyAll wait finalize
  • 八种根本数据类型 & 取值范畴
  • 主动拆装箱 & 包装类型的缓存机制
  • ThreadLocal 了解 String& 不可变性 StringBuffer StringBuilder 源码
  • ArrayList LinkedList HashMap(重点,能够花一天工夫彻底把握)LinkedHashMap TreeMap HashSet LinkedHashSet TreeSet 源码
  • 异样体系结构
  • Java8:了解函数式编程 流式操作 CompletableFuture

二、并发编程

必考,高并发的解决必要伎俩,对于 juc 以及线程模型的演进过程的把握十分重要

  • 了解并发与并行
  • 线程池的原理:了解每个参数
  • Thread Runnable Callable
  • AQS(重要:经常会配合 synchronized 来说)Condition
  • Lock:ReentrantLock ReentrantReadWriteLock
  • Semaphore CountDownLatch CyclicBarrier
  • 各种 Atomic
  • ConcurrentHashMap BlockingQueue CopyOnWriteArrayList
  • Executors
  • 线程的状态转换:wait sleep notify notifyAll join park
  • 进行线程的办法
  • 线程模型:了解 BIO、NIO(重点)、AIO、理解 netty
  • 并发包就那些货色,把握 AQS 之后其余的很快就买通了,所以不必

三、jvm

《深刻了解 java 虚拟机》没事就看一遍,每次都会有新的了解

  • jvm 内存构造
  • 罕用调优参数
  • gc 算法
  • gc 的工具:CMS&G1 重点 &ZGC
  • java 内存模型:

    • 可见性、原子性、程序性、happens-before、内存屏障、volatile、final
    • synchronized(对象头):偏差锁 -> 轻量级锁 -> 重量级锁、monitor、锁优化、锁打消、锁粗化、自旋锁、可重入锁
  • 常用工具以及命令
  • 类加载过程
  • 对象创立过程
  • fullGC 的排查思路
  • 工具:jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, Arthas

四、设计模式

  • 创立型:单例模式、形象工厂模式、建造者模式、工厂模式、原型模式。
  • 结构型模式:适配器模式、桥接模式、装璜模式、组合模式、外观模式、享元模式、代理模式。
  • 行为型模式:模版办法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter 模式)、状态模式、策略模式、职责链模式 (责任链模式)、访问者模式。

五、mysql

上面列出来的全是重点

  • 罕用 sql 以及内置函数
  • 索引

    • hash 索引
    • b+ 树的索引
    • 汇集索引 & 非汇集索引
    • 回表
    • 联结索引:最左前缀 & 笼罩索引 & 索引下沉
  • 事务 & 隔离级别 & 实现原理:readview undolog redolog mvcc
  • 锁的应用 & 锁算法 & 行锁 & 表锁 & 乐观锁 & 乐观锁
  • 连贯查问的原理(算法)
  • binlog& 应用场景
  • 分库分表:垂直 & 程度
  • 工具:explain

六、redis

《redis 的设计与实现》看完这本书就行了,深入浅出,很快就可以看完和把握,间接搞定 redis

  • 纯熟五种类型对象 & 实用场景:字符串 列表 哈希 汇合 有序汇合
  • 理解底层数据结构:SDS 链表 字典 跳跃表 整数汇合 压缩列表
  • 淘汰策略
  • RDB&AOF
  • 复制性能的实现
  • Sentinel& 集群的构造
  • 公布订阅 & 事务
  • 分布式锁
  • 常见问题 & 解决方案:缓存击穿,缓存穿透,缓存雪崩

七、web

感觉很少有人问了,应届生可能问的多些

  • 三次握手与四次挥手
  • http/1.0 http/1.1 http/ 2 之间的区别
  • http 中 get 和 post 区别
  • 了解 https 加密过程
  • forward&redirect 的区别
  • CSRF&XSS 攻打与防备
  • 常见的 web 申请返回的状态码
  • cookie&session
  • Servlet&filter&listener
  • DNS
  • tomcat&nginx 区别

八、spring

说实话问到我的不多,感觉把握上面几个足够了

  • IOC&DI&AOP
  • 把握罕用注解
  • 如何解决循环依赖
  • 事务流传机制
  • 事务生效场景
  • springMVC 的了解
  • springboot 的了解

九、分布式 & 高可用

平时多留神怎么解决好程序可能遇到的极其状况,保障服务的高可用

  • zookeeper

    • 了解应用:文件系统 + 监听器
    • 理解选举算法 & 分布式锁的实现
  • mq(重要,有时候面试官间接一串 mq 连环炮就能够决定要不要一个人了)

    • 作用:异步 解耦 削峰
    • kafka(之后会就 kafka 写一个系列)

      • 设计架构
      • 如何保障高可用
      • 如何保障高吞吐
      • 如何实现部分有序
      • 反复生产的问题
      • 提早音讯
  • 理解 dubbo&spring cloud&Consul 工作流程
  • 限流 & 熔断:Hystrix/Resilience4j(高可用的必须中间件)
  • 链路追踪(理解实现原理)

十、算法 & 数据结构

常刷 leetcode

  • 栈、队列、链表、数组、哈希表、树、堆、图
  • 快排 & 二分 & 分治 & 递归 & 滑动窗口 / 双指针 &BFS&DFS

十一、工具

  • git 多分支合作流程
  • maven 常用命令 & 生命周期
  • linux 常用命令:tail grep awk sed 等等

备注

  • 看着的确很失望,up 自己也是
  • 集体不免有盲区,欢送评论区斧正 & 补充,会继续更新
  • but
  • 种一棵树,最好的工夫是十年前,其次是当初,大家共勉
 码字不易,欢送一键三连 关注猪哥!
退出移动版