xianliu18 / interviews

面向实践编程之复习资料整理

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

1. 概述

本项目是以小傅哥的博客为蓝本整理出来的,面向高级程序员的一份学习资料。

阅读本文之前,请先阅读《How To Ask Questions The Smart Way(中文版)》。

阅读建议:
1,实践出真知

  • 我的初中数学老师曾在数学复习课中讲过,你得在纸上写写划划,自己写一遍演算过程,才能学会。只是瞪眼看,学不到任何内容,而且还容易犯困。
  • 关于代码的学习,也建议你新建一个项目,按照博客中的示例,亲身在IDE中敲一遍,运行一下,验证一下结果。

2,建议阅读三遍

  • 这些博客是写作者多年经验的总结。由于自己没有真正的遇到过相应问题,当阅读第一遍完成时,只能达到“虚假”的理解层次;换句话说,引用的博客作者们是站在地上十八层进行写作的,而当下的自己是站在地下十八层阅读的。因此,并不是阅读一遍就可以跨越这么大的层次。
  • 本文的信息密度较大,由于艾宾浩斯遗忘曲线的存在,会产生读完后面,忘记前面的情况,这属于正常情况;
  • 当你阅读完第三遍时,相信会达到“一览众山小”境界;

最后,以人生三境界结束概述:看山是山;看山不是山;看山是山

由于本人的写作水平和能力有限,文中难免存在不妥之处,欢迎大家通过邮箱与我联系,邮箱地址:isliuxian@163.com


----------- 概述 完 ----------


0. Java 基础

  1. 基本数据类型
  2. 三大特性:封装,继承,多态
  3. 抽象类和接口
  4. Java 异常分类

0.1 基本数据类型

  • 基本数据类型:
    • byte: -128 ~ 127
    • short: -2^15 ~ 2^15 - 1
    • int: -2^31 ~ 2^31 - 1
    • long: -2^63 ~ 2^63 - 1
    • float
    • double
    • boolean
    • char

0.2 三大特性:封装,继承,多态

0.3 抽象类和接口

0.4 Java 异常分类


----------- 入门章 完 ----------


1. JVM 相关内容

  1. JDK,JRE,JVM 关系
  2. JVM 类加载机制
  3. JVM 内存模型
  4. 垃圾收集算法及对应实现
  5. JVM 故障处理

1.1 JDK,JRE,JVM关系

1.2 JVM 类加载机制

1.3 JVM 内存模型

1.4 垃圾收集算法及对应实现(垃圾收集器)

1.5 JVM 故障处理


----------- 第一章 完 ----------


2. Java 集合相关

  1. String
  2. ArrayList 和 LinkedList
  3. HashMap

2.1 String 相关

2.2 ArrayList 和 LinkedList

2.3 HashMap


----------- 第二章 完 ----------


3. 并发编程

  1. Thread 介绍
  2. ThreadLocal 介绍
  3. 并发编程基础
  4. volatile 关键字
  5. synchronized 关键字
  6. 多线程协作 wait,notify,notifyAll
  7. ReentrantLock
  8. CAS
  9. AQS 讲解(AbstractQueuedSynchronizer)
  10. Semaphore,CountDownLatch,CyclicBarrier
  11. 线程池

3.1 Thread 介绍

3.2 ThreadLocal 介绍

3.3 并发编程基础

3.4 volatile 关键字

3.5 synchronized 关键字

3.6 多线程协作 wait,notify,nofityAll

3.7 ReentrantLock

3.8 CAS

3.9 AQS 讲解(AbstractQueuedSynchronizer)

3.10 Semaphore,CountDownLatch,CyclicBarrier

3.11 线程池


----------- 第三章 完 ----------


4. Spring

  1. 反射,动态代理
  2. SpringBoot 相关
  3. Spring IOC
  4. Spring AOP
  5. Spring MVC
  6. MyBatis

4.1 反射,动态代理

4.2 SpringBoot 相关

4.3 Spring IOC

4.4 Spring AOP

4.5 Spring MVC


----------- 第四章 完 ----------


5. MySQL

  1. MySQL 介绍
  2. 存储引擎:InnoDB 和 MyISAM
  3. 索引
  4. 事务
  5. MVCC

5.1 MySQL 介绍

  • MySQL 十连问
  • MySQL 45 讲
    • 快照读原理:事务到底是隔离的还是不隔离的
    • 当前读原理:幻读是什么,幻读有什么问题
    • 加锁原则:为什么我只改一行的语句,锁这么多
    • 普通索引和唯一索引,应该怎样选择(change buffer 和 redo log)
    • MySQL 是怎么保证主备一致的(binlog 格式)
  • SQL 语句是如何执行的

5.2 存储引擎:InnoDB 和 MyISAM

5.3 索引

5.4 事务

5.5 MVCC


----------- 第五章 完 ----------


6. Redis

  1. Redis 介绍
  2. Redis 数据结构
  3. Redis 集群
  4. Redis 分布式锁
  5. Redis 缓存常见问题
  6. 分布式 ID 生成策略

6.1 Redis 介绍

6.2 Redis 数据结构

6.3 Redis 集群

6.4 Redis 分布式锁

  • 分布式锁用 Redis 还是 Zookeeper?
    • Redis 分布式锁方案演进
    • setnx 占锁成功,业务代码出现异常或者服务器宕机,没有执行删除锁的逻辑,会造成死锁;
    • set <key> <value> PX <多少毫秒> NX: 获取锁时,也需要设置锁的过期时间,这是一个原子操作;
    • 释放锁需要使用 lua 脚本,保证获取锁,比较锁的值,并删除锁的原子性。
    • 阻塞获取锁,即获取不到锁的时候,等待一段时间:tryLock(long timeout, TimeUnit unit)

6.5 Redis 缓存常见问题

6.6 分布式ID生成策略


----------- 第六章 完 ----------

7. 分布式相关

  1. Dubbo
  2. Kafka

7.1 Dubbo

7.2 Kafka


----------- 第七章 完 ----------


8. 设计模式

8.1 设计模式的其他参考资料

  • 设计模式之美
    • 单例模式,工厂模式,代理模式,装饰器模式,适配器模式,观察者模式,模板模式,策略模式,职责链模式,状态模式

----------- 第八章 完 ----------

9. 算法

9.1 算法可视化平台

9.2 大厂常考题目

9.3 自己面试中碰到的题目

----------- 第九章 完 ----------

10. 系统设计

10.1 秒杀系统设计

----------- 第十章 完 ----------

11. 面试软实力(详见注释)



----------- 鸣谢 ----------

About

面向实践编程之复习资料整理


Languages

Language:Java 99.8%Language:HTML 0.2%Language:RobotFramework 0.0%