Readme
# Java
- 面向对象编程
- 容器
- Map
- List
- Set
- JVM内存模型
- 垃圾回收算法
- 类加载过程
- 反射
- 多线程、线程池
- 进程、线程与进程关系区别
# Java
面向对象编程
- 封装
把客观事物封装成抽象的类,
并且类可以把自己的数据和方法给可信的类或者对象操作使用,
对不可信的进行信息隐藏
1
2
3
2
3
- 继承
指可以让某个类的对象获得另一个类型的对象的属性的方法
实现方式一: 实现继承,直接使用父类的属性和方法而无需额外编码的能力
实现方式二:接口继承,仅使用属性和方法的名称,但子类必须提供实现的能力
1
2
3
2
3
- 多态
指一个类实例的相同方法在不同情形有不同表现形式
多态机制使具有不同内部结构的对象可以共享相同的外部接口
1
2
2
设计原则(SPR、OCP、LSP、DIP、ISP)
- 单一职责原则(SPR)
一个类功能要单一,不能包罗万象
1
- 开放封闭原则(OCP)
一个模块在扩展性方面应该是开放的
而在更改性方面是封闭的
1
2
2
- 里氏替换原则(LSP)
子类应当可以替换父类
并出现在父类能够出现的任何地方
1
2
2
- 依赖倒置原则(DIP)
具体依赖抽象
上次依赖下层
1
2
2
- 接口分离原则(ISP)
模块间要通过抽象接口隔离开
而不是通过具体的类强耦合起来
1
2
2
容器:Map、List、Set
Map(键值对存储方式)
- HashMap
- key可以为Null,把Null当作key存储
- HashTable
- TreeMap
- ConcurrentHashMap
- LinkedHashMap
- WeakHashMap
- HashMap
List(侧重于顺序)
- LinkedList
- 底层是由双向链表结构实现的,通过节点来存储下一个元素的位置
- 对集合中元素可以方便的增删,更适合用于大量修改
- ArrayList
- 底层由数组实现,数组在内存中的存储顺序是连续的
- 对集合中的元素可以进行快速访问,更适合随即查询数据
- Vector
- Vector与ArrayList区别就是Vector是线程安全的集合
- 在需要线程安全而且对效率要求比较低的情况下使用
- LinkedList
Set(侧重于独一无二,不包含重复元素)
- HashSet
- 侧重于快速访问
- TreeSet
- 侧重于排序
- LinkedHashSet
- 侧重于插入顺序
- HashSet
JVM内存模型
垃圾回收算法
类加载过程
反射
多线程、线程池,进程、线程与进程关系区别
Java重要的基础类
- Collections
- CharSequence
- Iterator集合的迭代器
编辑此页 (opens new window)
上次更新: 2022-05-07, 10:54:46