Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

luckendeavor/ShiftJava

Repository files navigation

整理了一波学到头秃的 Java 入坑笔记,劝退一波,别搞后端了,转算法去吧!

image-20200317230215494 image-20200317230339393 image-20200318080237857 image-20200318080416391 image-20200318080710502 image-20200318080804629 image-20200318080907764 image-20200318081002237 image-20200318081120263
Java 设计模式 算法 网络 操作系统 数据库 Spring 分布式 大数据

目录


Java

1. 基础
  • 基础:数据与程序结构、关键字等。
  • 对象与类:继承、接口、抽象类、内部类、枚举、常用类、常用接口、注解等。
  • 异常:异常体系等。
  • 泛型:用法、类型参数、通配符等。
2. 集合与容器
  • 集合容器类:队列、列表、栈、Map、Set 等结构,含 ArrayList、LinkedList、ArrayDeque、PriorityQueue、HashMap、LinkedHashMap、TreeMap 及并发容器类等。
3. 并发
  • 并发:线程基础、JMM、AQS、CAS、锁与线程安全(Synchronized、ReentrantLock)、JUC、线程池、定时任务、TreadLocal 等。
4. Java8/IO/其他
  • Java8:Lambda、流 Stream 等。
  • IO:文件操作、IO流、网络操作等(NIO 放到了 Netty 部分)。
  • 其他:Java性能问题定位、必备技能等。

数据结构与算法

  • 算法基础:数学模型、时间复杂度分析、递归等。
  • 基础数据结构:数组、线性表、栈、队列、符号表、散列表、优先级队列与堆等。
  • 进阶数据结构:布隆过滤器、跳表、并查集。
  • 排序算法:基础、选择排序、冒泡排序、插入排序、希尔排序、归并排序、快速排序、堆排序、非比较排序。
  • 查找算法:二分查找、裴波那契查找。
  • :BST树、AVL树、2-3树、红黑树、多路查找树、B树、B+树、B*树等。
  • :无向图、有向图、最小生成树、最短路径算法。
  • 字符串算法:
  • 算法设计:动态规划、贪心算法、分治算法。
  • 剑指Offer题目
  • 链表类题目
  • 树题目
  • 队列与栈题目
  • 递归与动态规划题目
  • 字符串题目
  • 数组与矩阵题目
  • 位运算题目
  • 图题目
  • 数学相关题目
  • 贪心算法
  • 大数据与空间限制题目
  • 智力题
  • 面试代码题汇总:记录一下面经中看到过的问过的面试题。

网络

  • 网络基础与物理层:网络分层、物理层等。
  • 数据链路层:点对点信道、广播信道、PPP 协议、以太网、局域网等。
  • 网络层:IP 协议栈、ICMP协议、路由选择协议(RIP、OSPF、BGP协议等)、IPV6、VPN 等。
  • 传输层:UDP、TCP、ARQ协议、TCP 可靠传输、TCP连接释放等。
  • 应用层:DNS、FTP、DHCP、邮件协议等。
  • 网络安全:密码体制、数字签名、鉴别、安全协议、Web攻击技术(CSRF、XSS、SQL注入、DOS等)等。
  • HTTP:报文结构、HTTP方法、HTTP状态码、HTTP首部、HTTP应用等。
  • HTTPS:加密、认证、完整性保护、TLS等。

操作系统

1. 操作系统理论
  • 操作系统概述:操作系统基本特征、基本功能、系统调用、系统中断等。
  • 进程管理:进程与线程、进程描述符、进程状态、进程调度算法、进程同步、线程同步、进程间通信、死锁等。
  • 内存管理:内存管理机制、虚拟地址、虚拟内存、分页、分段等。
  • IO管理与磁盘调度:磁盘结构、磁盘调度算法等。
  • 编译原理:编译系统、目标文件、动态链接、静态链接等。
  • IO模型:五种 IO 模型、IO 多路复用实现等。
2. Linux
  • Linux基础:磁盘接口、分区表、开机监测程序等。
  • Linux文件与文件系统:文件系统、目录、文件、文件与目录操作命令等。
  • Linux Shell编程:基础、变量操作、数据流重定向、提取与转换、排序指令、测试指令等。
  • Linux系统管理:Linux启动、进程管理、系统资源管理、网络管理、定时任务等。

数据库

1. 数据库系统原理
  • 基础:函数依赖、数据库范式、ER图等。
2. MySQL
  • 基础:基础、数据类型、运算符、DDL数据定义语言、DQL数据查询语言(基础查询、条件查询、查询排序、常见函数、分组查询、连接查询、子查询、分页查询、组合查询等)、DML数据操作语言(增加数据、删除数据、修改数据等)等。
  • 高级特性:MySQL函数、存储过程、视图、触发器等。
  • 系统原理:MySQL架构、存储引擎、SQL语句执行等。
  • 索引:概述、B+Tree、索引与存储引擎实现、索引优化、索引设计等。
  • 事务与并发控制:ACID、并发一致性问题、锁机制、隔离级别、MVCC等。
  • 优化:查询优化、大表优化。
  • 架构设计:切分与分库分表、主从复制与读写分离。
  • 设计规范:命名规范、设计规范、字段设计规范、SQL开发规范。
  • LeetCode数据库题解
3. 非关系型数据库
  • MongoDB 相关内容

JVM

  • JVM内存区域与对象解析:运行时数据区、对象创建过程、对象内存布局等。
  • 内存分配与垃圾收集:堆结构、内存分配策略、引用类型、垃圾回收算法、垃圾收集器、内存泄漏与内存溢出等。
  • JVM监控与故障处理工具:jsp、jstat、jinfo、jmap、jstack、JConsole、VisualVM、堆转储、GC日志等。
  • 类文件结构与类加载机制:Class类文件结构、类的生命周期、类初始化时机、类加载器等。
  • 虚拟机方法调用与指令执行引擎:字节码指令、运行时栈帧结构、方法调用等。
  • 程序编译与代码优化:编译期优化、运行期优化。
  • 虚拟机调优及参数总结:GC调优、JVM参数总结。
  • 大白话认识虚拟机

设计模式

  • 面向对象思想:封装、继承、多态等、设计原则(SOLID)等。
  • UML类图:类图结构、类之间的关系等(继承、实现、组合、聚合、关联、依赖)。
  • 设计模式之创建型:单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、生成器模式、原型模式等。
  • 设计模式之行为型:责任链模式、解释器模式、迭代器模式、中介者模式、命令模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式等。
  • 设计模式之结构型:适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式等。

Spring

  • J2EE与Web基础:JSP、Servlet等。
  • Spring基础:基础、Spring EL 等。
  • Spring IOC:控制反转、Bean作用域、依赖注入、Bean生命周期、BeanFactory等。
  • AOP:基础、Spring AOP、AspectJ AOP。
  • Spring事务:事务管理方式、事务管理接口、事务属性详解等。
  • Spring MVC:基础、工作流程、重要组件。
  • Spring Boot基础与原理:基础、配置文件、自动配置原理等。
  • Spring Boot应用整合:数据整合、日志、调度、热部署、监控、邮件任务等。
  • Spring注解总结
  • Spring中的设计模式
  • RESTful API设计
  • Spring IOC源码分析

缓存

  • 缓存理论:缓存基础、缓存问题(缓存穿透、缓存雪崩、缓存无底洞、缓存一致性问题)等。
  • Redis基础:基础、基本命令与数据类型、底层数据结构、Redis高级功能、其他等。
  • Redis持久化:RDB持久化、AOF持久化等。
  • Redis主从复制:基础、复制原理、运维问题等。
  • Redis哨兵:架构基础、实现原理等。
  • Redis Cluster:数据分布理论、集群搭建、通信机制、集群伸缩、请求路由、故障转移、集群运维等。
  • Redis内存、阻塞与运维:内存消耗分析、内存管理、内存优化、阻塞分析、Redis运维等。

ORM

  • MyBatis:JDBC、MyBatis框架设计、缓存等。

分布式与系统设计

  • 分布式系统设计:基础、CAP、BASE、负载均衡、分布式锁、分布式ID、一致性算法、分布式事务等。
  • 系统认证与授权:Cookie与Session、Token与JWT、OAuth2、单点登录SSO、分布式Session等。
  • 网关:网关设计、大厂网关总结等。
  • Zookeeper:概述、Znode、客户端、集群、ZAB协议、Zookeeper使用场景等。
  • 限流:基础、限流算法(固定窗口、滑动窗口、漏桶算法、令牌桶算法)等。
  • Nginx

消息队列

  • 消息队列概述:消息模型、使用场景、问题、JMS与AMQP、消息队列对比等。
  • RabbitMQ:基础、RabbitMQ 架构。
  • RocketMQ:消息模型、架构、消费问题、刷盘机制等。
  • Kafka:架构模型、存储实现、生产者、消费者、可靠性、Zookeeper与Kafka、Kafka事务、各种API等。

RPC

  • RPC概述:基本原理、常见RPC框架。
  • Dubbo:架构、负载均衡、通信协议、集群容错策略、SPI等。

Netty

  • Java网络IO:BIO、NIO、AIO 等。
  • Netty核心功能与线程模型:基础、线程模型、模块与组件、ByteBuf、编解码、粘包拆包、心跳机制、零拷贝等。
  • Netty应用:WebSocket弹幕系统、Dubbo、HTTP服务器等。

搜索引擎

面试

  • 简历相关
  • 非技术问题
  • 项目问题

其他

  • Git
  • Docker

备注

本项目 Markdown 文件均由 Typora 编辑器整理,且使用了高亮语法(标识重点),Typora 需要打开高亮开关,看起来才舒服。如下图。

image-20191205192232182

针对部分内容有相应图示,架构图源文件在各种小章节的文件夹之下,可使用如下软件打开:

参考资料

由于是站在巨人的肩膀上前进,==侵删==

1. 参考书籍
  • 《Java 核心技术卷》 凯S.霍斯特曼
  • BruceEckel. Java 编程思想: 第 4 版 [M]. 机械工业出版社, 2007
  • 《深入理解 Java 虚拟机第二版》 周志明
  • 《计算机网络第七版》 谢希仁
2. 参考项目

参考了不少优秀的项目啊(大佬们是真的img)。

欢迎三连~

image-20200318081422659

About

学到头秃的Java的小笔记。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /