TreeviewCopyright @doctording all right reserved, powered by aleen42

请访问: https://doctording.github.io/sword_at_offer/

欢迎:starforkpr 或 email


Skills必备

开发基础

  • CPU,操作系统
  • 数据结构 & 算法
  • Java语言基础: 设计模式, 多线程, 并发基础, Java8, JVM
  • I/O, 网络基础, TCP/UDP
  • 数据库, 缓存, 限流, Redis
  • 分布式: Zookeeper, RPC, Dubbo, 微服务
  • 补充: Python基础

算法刷题补充

  • leetcode
  • 左程云《代码面试指南最优解》

源码阅读

面经

其实面试也就是那些知识和东西,虽然很多靠背诵,但是越到后面就越发现还是得靠理解和总结,彻头彻尾的理解它以及与之关联的东西,会让记忆更加的深刻。

具体举例说一些面试感悟吧,如下

  1. 比如谈多线程,能联想到很多知识点:线程/进程、CPU架构、线程的各种状态转化图、线程安全、多线程的优缺点和使用场景、单线程的优缺点、线程池、线程死锁、JUC(java.util.concurrent)相关等等。总之,学一个知识不是光这个点,而是能举一反三,发散开来并总结思考;在进行复习的时候也是要能够联想开来,让复习更加全面和透彻。

  2. 再比如谈Spring,显然这必须是通过源码学习并深入的;应该要能结合官网文档和源码,还有自己平时的代码实践,要能从多个方面去阐述某个点;比如解释AOP,要能从AOP的概念,到Spring AOP概念,到Spring官网对AOP各种术语解释,再到Srping源码具体是如何实现的,同时可以顺带着复习到动态代理(设计模式)等知识点。

  3. 在谈Kafka或者Druid.io的时候,则要能做到心中有框架图,且一些细节点要能知道。即要知道框架的输入、输出;也需要知晓各种可能的边界情况,知道实际究竟是怎么处理的?还有没有什么问题?怎样还能再改进的好一点?其次,还要有一些对比,当然这需要使用和扩展思考;我们总是太关注自己使用的东西和做的事情,其实类比相似的东西,也是能带来很多其它思考的。

  4. 平时还是要注重各种代码的练习,保持手感。本人视频面试手敲代码时犯过一些低级错误,我觉得这仍然是不够熟练,不够自信的表现。

// Todo

Copyright @doctording all right reserved,powered by Gitbook该文件修改时间: 2021-01-13 13:58:18

results matching ""

    No results matching ""