# summer.docs **Repository Path**: pftian/summer.docs ## Basic Information - **Project Name**: summer.docs - **Description**: 文档 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-10-15 - **Last Updated**: 2022-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README !> summer.docs仓库主要作为一个知识点总结,学习记录的仓库。 *目前包含以下几个模块的内容:* Java、Spring、 Spring Boot、 Spring Cloud、 Spring Cloud Alibaba、 Redis、 MQ、 DataBase 各个模块的整理内容以及完成情况如下: # Java ## 编程基础 !> 本模块主要介绍:编程基础 - [x] 面向对象与面向过程 - [x] 面向对象的三大特征 - [x] 面向对象的五大基本原则 - [x] 什么是多态 - [x] 方法的重写与重载 - [x] Java的继承与实现 - [x] Java的继承与组合 - [x] 构造函数与默认构造函数 - [x] 类变量、成员变量和局部变量 - [x] 成员变量和方法作用域 - [x] Java是如何实现平台无关性 - [x] 成员变量和方法作用域 - [x] JVM还支持哪些语言 - [x] 值传递与引用传递 - [ ] 为什么说Java中只有值传递 ## Java基础 !> 本模块主要介绍:Java基础 ### 基本能数据类型 - [x] 8种基本数据类型 - [x] 整型中byte、short、int、long的取值范围 - [x] 什么是浮点型 - [x] 什么是单精度和双精度 - [x] 为什么不能用浮点型标识金额 ### 自动拆装箱 - [ ] 自动拆装箱 - [ ] Integer的缓存机制 - [ ] 如何正确定义接口的返回值boolean、Boolean类型以及命名succsee、isSuccess ### String - [ ] 字符串的不可变性 - [ ] JDK6和JDK7中substring的原理及区别 - [ ] replaceFirst、replaceAll、replace区别 - [ ] String对"+"的重载 - [ ] 字符串拼接的几种方式和区别 - [ ] String.valueOf和Integer.toString的区别 - [ ] switch对String的支持 - [ ] 字符串池 - [ ] Class常量池 - [ ] 运行时常量池 - [ ] intern - [ ] String有没有长度限制 ### Java中的关键字 - [ ] transient - [ ] instanceof - [ ] volatile - [ ] synchronized - [ ] final - [ ] static - [ ] const ### 集合 - [x] Collection和Collections的区别 - [x] Set和List的区别 - [x] ArrayList和LinkedList和Vector的区别 - [x] SynchronzedList和Vector的区别 - [x] Set如何保证元素不重复 - [x] HashMap、HashTable、ConruccentHashMap的区别 - [x] HashMap的容量、扩容 - [ ] HashMap中hash方法的原理 - [ ] 为什么HashMap的默认容量设置成16 - [ ] 为什么HashMap的默认负载因子设置成0.75 - [ ] 为什么建议设置HashMap的初始容量,设置多少合适 - [ ] Java8中stream相关用法 - [ ] Apache集合处理工具类的使用 - [ ] Arrays.asList获得的List使用时需要注意什么 - [ ] Collection如何迭代 - [ ] Enumeration和Iterator区别 - [ ] fail-fast和fail-safe - [ ] 如何在遍历的同时删除ArrayList中的元素 - [ ] CopyOnWriteArrayList - [ ] ConCurrentSkipListMap ### 枚举 - [ ] 枚举的用法 - [ ] 枚举的实现 - [ ] 枚举与单例 - [ ] Enum类 - [ ] Java枚举如何比较 - [ ] switch对枚举的支持 - [ ] 枚举的序列化如何实现 - [ ] 枚举的线程安全性问题 ### IO - [ ] 字符流、字节流 - [ ] 输入流、输出流 - [ ] 字节流和字符流之间的相互转换 - [ ] 同步、异步 - [ ] 阻塞、非阻塞 - [ ] Linux 5种IO模型 - [ ] BIO、NIO和AIO的区别、三种IO的用法与原理 - [ ] netty ### 反射 - [ ] 反射 - [ ] 反射有什么作用 - [ ] Class类 - [ ] 反射与工厂模式实现Spring IOC ### 动态代理 - [ ] 静态代理 - [ ] 动态代理 - [ ] 动态代理和反射的关系 - [ ] 动态代理的几种实现方式 - [ ] AOP ### 序列化 - [ ] 什么是序列化与反序列化 - [ ] Java如何实现序列化与反序列化 - [ ] Serializable 和 Externalizable 有何不同 ### 为什么序列化 - [ ] serialVersionUID - [ ] 为什么serialVersionUID不能随便改 - [ ] transient - [ ] 序列化底层原理 - [ ] 序列化如何破坏单例模式 - [ ] protobuf - [ ] Apache-Commons-Collections的反序列化漏洞 - [ ] fastjson的反序列化漏洞 ### 注解 - [ ] 元注解 - [ ] 自定义注解 - [ ] Java中常用注解使用 - [ ] 注解与反射的结合 - [ ] 如何自定义一个注解? - [ ] Spring常用注解 ### 泛型 - [ ] 什么是泛型 - [ ] 类型擦除 - [ ] 泛型带来的问题 - [ ] 泛型中K T V E ? object等的含义 ### 泛型各种用法 - [ ] 限定通配符和非限定通配符 - [ ] 上下界限定符extends 和 super - [ ] `List`和原始类型`List`之间的区别? - [ ] `List`和`List`之间的区别是什么? ### 单元测试 - [ ] junit ### junit 和Spring 的结合 - [ ] mock - [ ] JMockit - [ ] 内存数据库(h2) ## API&SPI ### API - [ ] API和SPI的关系和区别 - [ ] 如何定义SPI - [ ] SPI的实现原理 ### 异常 - [ ] Error和Exception - [ ] 异常类型 - [ ] 异常相关关键字 - [ ] 正确处理异常 - [ ] 自定义异常 - [ ] 异常链 - [ ] try-with-resources - [ ] finally和return的执行顺序 ### 时间处理 - [ ] 时区 - [ ] 冬令时和夏令时 - [ ] 时间戳 ### Java中时间API - [ ] 格林威治时间 - [ ] CET,UTC,GMT,CST几种常见时间的含义和关系 - [ ] SimpleDateFormat的线程安全性问题 - [ ] Java 8中的时间处理 - [ ] 如何在东八区的计算机上获取美国时间 - [ ] yyyy和YYYY有什么区别? ### 编码方式 - [ ] 什么是ASCII? - [ ] Unicode - [ ] 有了Unicode为啥还需要UTF-8 - [ ] UTF8、UTF16、UTF32区别 - [ ] 有了UTF8为什么还需要GBK? - [ ] GBK、GB2312、GB18030之间的区别 - [ ] URL编解码 - [ ] Big Endian和Little Endian ## 语法糖 - [ ] Java中语法糖原理、解语法糖 - [ ] 语法糖介绍 ## Java 8 - [x] lambda表达式 - [x] Stream API - [x] Optional - [x] 时间API - [ ] 函数式接口 - [ ] 默认方法 ## Java线程 !> 本模块主要介绍:Java线程 - [ ] 什么是并发 - [ ] 什么是并行 - [ ] 并发与并行的区别 ## Java底层 ## 网络知识 # Spring ## IoC !> 本模块主要介绍Spring IoC - [x] IoC概览 - [x] IoC-统一资源加载策略 - [x] ResourceLoader - [x] IoC-加载BeanDefinition - [x] IoC-验证模型获取 - [x] IoC-获取Document - [x] IoC-BeanDefinitions注册 - [x] IoC-解析Bean-解析import标签 - [x] IoC-解析bean标签-开启解析进程 - [x] IoC-解析bean标签-BeanDefinition - [x] IoC-解析bean标签-01 - [x] IoC-解析bean标签-02 - [x] IoC-解析bean标签-解析自定义标签 - [x] IoC-解析自定义标签 - [x] IoC-注册解析的BeanDefinitions - [x] IoC-装载 BeanDefinitions 总结 - [x] IoC-开启Bean的加载 - [x] IoC-加Bean-从单例缓存中获取单例Bean - [x] IoC-加载Bean-parentBeanFactory与依赖处理 - [x] IoC-加载Bean-分析各scope的Bean创建 - [x] IoC-加载Bean-创建Bean-1之主流程 - [x] IoC-加载Bean-创建Bean-2之实例化Bean对象(1) - [x] IoC-加载Bean-创建Bean-3之实例化Bean对象(2) - [x] IoC-加载Bean-创建Bean-4之属性填充 - [x] IoC-加载Bean-创建Bean-5之循环依赖处理 - [x] IoC-加载Bean-创建Bean-6之初始化Bean对象 - [x] IoC-加载Bean-总结 - [x] IoC-Aware接口 - [x] IoC-BeanPostProcessor - [x] IoC-InitializingBean和init-method - [x] IoC-Bean的生命周期 - [x] IoC-BeanFactoryPostProcessor - [x] IoC-PropertyPlaceholderConfigurer - [x] IoC-PropertyPlaceholderConfigurer的应用 - [x] IoC-PropertyOverrideConfigurer - [x] IoC-Bean的类型转换体系 - [x] IoC-自定义类型转换器 - [x] IoC-BeanWrapper - [x] IoC-Bean的实例化策略-InstantiationStrategy - [x] IoC-BeanDefinition注册表-BeanDefinitionRegistry - [x] 环境&属性-PropertySource-Environment-Profile - [x] ApplicationContext相关接口架构分析 - [x] ApplicationContext的refresh方法 - [ ] 图解Bean ## AOP !> 本模块主要介绍Spring AOP 资料整理中... ## Transaction !> 本模块主要介绍Spring Transaction 资料整理中... # Spring Boot 资料整理中... # Spring Cloud 资料整理中... # Spring Cloud Alibaba 资料整理中... # Redis 资料整理中... # MQ 资料整理中... # DataBase 资料整理中... # interview-面试 - [ ] 设计模式 - [x] java基础 - [x] 集合 - [x] Java线程 - [x] Java线程池 - [x] Java锁 - [ ] JVM - [ ] MySql - [ ] Redis - [ ] Spring - [x] SpringMVC - [x] SpringBoot - [ ] SpringCloud - [ ] Dubbo - [ ] Linux - [ ] Maven - [ ] Git