Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

No packages published