学习清单 - Java基础
JAVASE
基础
- Java 的特性
- jdk1.8 / java8 的新特性
- 箭头函数
- stream流
- string stringbuffer stringbuilder
- 语法
- == equals hashCode
- 访问修饰符
- 数据类型
- 基本据类型
- 普通类
- 包装类
- 转换:自动、强制
- 引用数据类型:string、数组、类/对象
- 基本据类型
- 变量
- static变量
- 方法
- static方法
- 重载和重写
- 可变长参数
面向对象
- 面向对象
- 面向过程
- 性能区别
- 对象
- 类加载机制
- 创建对象的方式:Java中创建对象5种方式
- 深浅拷贝
- 值传递、引用传递
- 引用拷贝、零拷贝
- 如何实现嵌套集合的深拷贝
- 四种引用:强软弱虚 是否会被GC回收
- 构造方法:不能被重写,可以被重载
- 三大特征
- 封装
- 继承:Java继承的底层原理浅析
- 多态:动态分派、Java多态的本质
- 重载和重写
- 接口和抽象类
- 共同点、区别
- 接口的实现
- Object类
- 常用方法
- equals
- hashCode
- String类
- String、StringBuffer、StringBuilder区别
- 不可变原因/常量池 & 创建对象的数量
- 转成Integer的原理:parseInt
- equals和Object的区别
- intern
高级
- 异常
- 常见的异常类、异常分类
- try() finally final
- 序列化
- 序列化 反序列化
- Java常见序列化:Java自带、ProtoBuf、JSON、XML
- 泛型
- 如何理解 / <> / 泛型擦除
- 通配符
- 反射
- 使用方法、使用场景、作用、优缺点、底层实现、权限检查
- 代理
- 静态代理
- 动态代理
- JDK动态代理:反射机制
- CGlib动态代理:继承机制,实现:AOP切面编程 注解 事务,日志
- 区别:接口和抽象类
- 注解:底层实现
- SPI
- IO流
两种IO流存在的原因 - 语法糖
Java集合
- 定义:原生数组和容器类应用场景
- 两个接口
- Collection
- Arraylist / linkedlist
- collections
- Map
HashMap
ConcurrentHashMap
TreeMap
- Collection
- 自动扩容
- ArrayList:满 1.5 拷贝新数组
- HashMap:负载因子0.75 -> rehash
哈希冲突:开放寻址法、链式寻址法
转化:6链表 8红黑树
数据结构
- 排序算法及其复杂度
Java 单边快排 与 双边快排、快速排序 非递归实现 - 栈和队列:
数组实现堆、时间复杂度、数组从0开始和从1开始;堆排序
JVM入门:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xxxxic's Blog!