java面试清单和书籍推荐 五颗星五颗星

前言

面试必备技能清单,这里不会详细论述,更多的是清单列举,罗列一些关键字和链接注释。

数据结构与算法

Java

  • Java 基础部分

  • Java 集合框架
    • ArrayList 与 LinkedList
    • Hashtable、Hashmap 与 ConcurrentHashmap
  • Java 并发编程
    • 线程状态
      • 新建、可运行(运行和就绪)、阻塞、无限期等待、限期等待、死亡
    • 实现线程三种方式(继承Thread,实现 Runnable 接口,实现 Callable 接口)
    • 并发两个关键问题
      • 线程通信
      • 线程同步
    • volatile 和 synchronized
    • lock 和 synchronized
    • Java内存模型(JMM),解决并发中的可见性,原子性,有序性问题
  • Java IO
    • 序列化
    • AIO、BIO、NIO
  • Java 虚拟机
    • 运行时数据区
    •  
  • Java 设计模式
    • 单例模式
    • 工厂模式

Java Web

  • Spring
    • IOC
    • AOP
    • DI
  • SpringMVC
    • 执行流程
  • MyBatis

数据库

  • 存储引擎

    • MyISAM(表级锁,不支持事务,全文索引,只读应用)
      • .frm / .myd / .myi
      • 非聚集索引
    • InnoDB(行级锁,最大支持并发,事务,表更新和查询都相当的频繁)
      • .frm / .ibd
      • 聚集索引,以主键为索引来组织数据
  • 索引(衡量标准:IO渐进复杂度)

    • Hash(冲突,无法做范围查询)
    • FullText(全文搜索,优化:前缀索引)
    • R-Tree(空间索引,附近三公里的数据怎么查询)
    • B+ Tree(B Tree:每个key、data信息存在结点,B+ Tree存在叶子节点)
  • 哪些情况下不会使用索引

    • 全表扫描更快
    • 条件中有or
    • 不是复合索引的第一部分
    • like以%开始
  • 隔离级别

    • 串行化
    • 可重复读
    • 读已提交
    • 读未提交
  • Redis 数据类型

    • String:字符串
    • Hash:字典
    • List:链表
    • Set:集合
    • Sorted Set:有序集合

操作系统

  • 进程和线程的区别

    • 资源、调度、开销、通信 4个方面来对比
  • 线程间通信

    • synchronized
    • while轮询
    • wait() / notify()
    • 管道
  • 进程通信

    • 直接通信
    • 间接通信

计算机网络

  • 应用层

    • HTTP请求和响应报文
  • 传输层

    • 为什么三次握手,两次不行吗
    • 四次挥手 TimeWait 作用
    • TCP可靠传输

分布式

  • 分布式通信协议

    • http
    • https
    • RESTful API
  • 分布式锁

项目

  • 扫码登录原理

  • Cookie 和 Session 的原理

  • 单点登录

  • 参考资料

 

 

一、数据结构与算法

包含数据结构与算法两部分。

?阅读清单

?学习课程

二、Java

包含 Java 核心知识和 Java Web 框架。

?阅读清单

?学习课程

  • 【廖雪峰】Java教程
  • 【龙果学院】Java并发编程原理与实战
  • 【龙果学院】深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)
  • 【慕课网】Java零基础入门
  • 【尚学堂】白鹤翔_jvm虚拟机优化
  • 【网易云课堂】Java开发工程师(Web方向)翁凯
  • 【慕课网】Spring Cloud微服务实战_廖师兄
  • 【黑马程序员】SSH框架_王泽
  • 【黑马程序员】SpringMVC+Mybatis
  • 【牛客网】初中高Python+Java项目实战_叶神

三、Web Server

  • 【网易云课堂】thinkphp5开发restful-api接口

四、面向对象

五、数据库

?阅读清单

  • 《高性能MySQL》
  • 《Redis实战》

?学习课程

  • 【慕课网】MySQL性能管理及架构设计
  • 【慕课网】Redis从入门到高可用,分布式实践

六、操作系统

?阅读清单

  • 《Linux+C程序设计大全》
  • 《快乐的Linux命令行》
  • 《深入理解计算机系统》
  • 《UNIX环境高级编程》
  • 《Linux+高性能服务器编程》

?学习课程

七、计算机网络

?阅读清单

  • 《图解HTTP》
  • 《计算机网络原理创新教程》韩立刚主编

?学习课程

  • 【51CTO】韩老师-计算机网络原理-156讲
  • 【慕课网】HTTP协议原理+实践 Web开发工程师必学

八、系统架构

?阅读清单

?学习课程

  • 【慕课网】Nginx从入门到实践
  • 【咕泡学院】架构师系列课程

九、面试

  • 【慕课网】360大牛全面解读PHP面试

  • 【慕课网】Google面试官亲授 升级Java面试

十、机器学习

?阅读清单

  • 《机器学习实战》

?学习课程

  • 【慕课网】Python3入门机器学习 经典算法与应用
  • 【莫烦Python】机器学习系列

十一、工具

?学习课程

版权声明:程序员胖胖胖虎阿 发表于 2022年11月23日 上午6:32。
转载请注明:java面试清单和书籍推荐 五颗星五颗星 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...