本文收录在猪哥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
  • 种一棵树,最好的时间是十年前,其次是现在,大家共勉
码字不易,欢迎一键三连 关注猪哥!

【重点】Java大厂面试10个知识点汇总相关推荐

  1. 2019年Java大厂面试(吐血超详细总结)

    本文来自于慕课网手记: Java大厂面试(吐血超详细总结) 作者:小码哥的freestyle 链接: https://www.imooc.com/article/286545 来源:慕课网 面试清单 ...

  2. 转 :2019年Java大厂面试(吐血超详细总结)

    2019年Java大厂面试(吐血超详细总结) 本文来自于慕课网手记:Java大厂面试(吐血超详细总结),转载请保留链接 ;) 转载自:https://www.imooc.com/article/286 ...

  3. 面试10大算法汇总+常见题目解答

    http://www.programcreek.com/2012/12/%E9%9D%A2%E8%AF%9510%E5%A4%A7%E7%AE%97%E6%B3%95%E6%B1%87%E6%80%B ...

  4. 勇敢猿猿不怕困难!为去大厂我把这个Java大厂面试真题刷了几十遍!(2021最新版)

    BAJT等互联网公司的高薪和福利吸引了很多工程师的加入,面试难度也水涨船高,一线互联网公司面试有哪些特点,如何更好的准备互联网公司的面试?本篇文章就针对一线大厂后端面试,从方法论到实战,帮你梳理一个J ...

  5. 进Java大厂面试很难吗?借鉴京东大咖这套架构,面试后我能拿8w

    最近有不少小伙伴在后台留言,说 Java 的面试越来越难了,尤其是技术面,考察得越来越细,越来越底层.疫情期间虽说某些大厂高薪放低标准进行招聘,但很多小伙伴还是含泪转身.因为目前新老程序员更替严重,跳 ...

  6. 一次违反常规的Java大厂面试经历,内含福利

    分享第一份Java基础-中级-高级面试集合 Java基础(对象+线程+字符+接口+变量+异常+方法) Java中级开发(底层+Spring相关+Redis+分布式+设计模式+MySQL+高并发+锁+线 ...

  7. 前端关于html的面试题,关于java:前端面试HTML面试题汇总

    前端面试-HTML面试题汇总 博客阐明 文章所波及的材料来自互联网整顿和集体总结,意在于集体学习和教训汇总,如有什么中央侵权,请分割自己删除,谢谢! 1.语义化 为什么要语义化? a. 为了在没有CS ...

  8. Java大厂面试100题,你面试时总会用到的!

    Java是近10年来计算机软件发展的一个传奇,它在众多开发者心中的地位可谓是"爱不释手",不同于其他一些计算机语言随时间流逝而影响力减弱,Java却随着时间的流逝而越来越强大. 什 ...

  9. Java面试10大知识点总结宝典助你通关!已拿意向书!

    Java基础 1.Java语言的三大特性 2.Java语言主要特性 3. JDK和JRE有什么区别 4.Java基本数据类型及其封装类 5.如果main方法被声明为private会怎样? 6.说明- ...

最新文章

  1. js中获得当前时间是年份和月份
  2. 地区省份城市sql信息
  3. 乌版图 read-only file system
  4. C# VS 调试 动态加载的 DLL
  5. jsonobject json对象里面_「jsonobject」用JSONObject解析和处理json数据 - seo实验室
  6. 尝试:以下矩阵size length ndims repmat isempty ismatix E=A(:,[1:3:5])什么意思?
  7. c++整理程序 dev_【C++】用Dev-C++写的C++程序老是报错,请问为什么?如何解决?...
  8. Salus:安全扫描协调工具
  9. linux下blast设计引物,Primer-BLAST:NCBI的引物设计和特异性检验工具
  10. NVIDIA发布新驱动,支持RTX 4090,性能飞起!
  11. 数模混合计算机应用,数模混合集成电路的发展现状和前景
  12. 关于sysmon的基本使用(1)
  13. HTTPS之SNI介绍
  14. Word最常用的100个通用快捷键
  15. 免ROOT卸载手机自带软件详细教程
  16. 软件工程导论第六版 第一章 软件工程学概述知识点总结(上)
  17. 转:只要心底热爱,人生就会朝着光明的方向转变
  18. sentinel限流入门
  19. 查违章老显示服务器维护中咋回事,违章查询怎么老显示系统正在维护呢,为什么违章查询总是显示维护状态?...
  20. C语言中的二等公民在C++是如何翻身的?

热门文章

  1. c#图片base64去转义字符_C#实现字符串与图片的Base64编码转换操作示例
  2. python代码用c语言封装_使用C语言扩展Python程序的简单入门指引
  3. xwpython aui 子窗口-wxpython中的wxaui窗口管理器
  4. android 在同一activity切换layout,在 Android Studio 添加一个activity并实现跳转
  5. 知识库问答中的关系识别研究回顾
  6. ACL 2020 | 用于多领域端到端任务型对话系统的动态融合网络
  7. 万字长文详解文本抽取:从算法理论到实践
  8. 微软最新论文解读 | 基于预训练自然语言生成的文本摘要方法
  9. 回溯法-框架+全排列+N皇后
  10. 如何修改作者名称_PS2019中如何扩展文本选区 ps扩展文本选区的图文教程_photoshop教程...