> Yuyy
Yuyy
Yuyy

保持一颗探索的心

接口隔离原则

接口隔离原则 定义 Interface Segregation Principle:客户端不应该被强迫依赖它不需要的接口。 个人理解 两个类之间的依赖应当建立在最小的接口上。接口颗粒度把握好,太小了调用麻烦,太大了就会提供一些客户端不需要的内容,服务端改动时影响范围增大,影响扩展性。…

   37   2021-11-13   去看看

依赖倒置原则

依赖倒置原则 定义 高层模块不要依赖低层模块,应该通过抽象来互相依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。 个人理解 避免对具体实现类的直接引用,使其付出更小的代价达到扩展的目的,与开闭原则照应。 缺点也是老生常谈的类文件数量增加,…

   22   2021-11-13   去看看

里式替换原则

里式替换原则 定义 Liskov Substitution Principle:子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。 个人理解 能够替换不只是从语法(多态)角度考虑,还需要保证替换后,原有业务逻辑正确。 LSP的意义 改进已有…

   17   2021-11-13   去看看

开闭原则

开闭原则 定义 英文全称是Open Closed Principle,软件实体(模块、类、方法等)应该“对扩展 开放、对修改关闭”。 个人理解 在设计阶段,需要识别出哪些是不变的,哪些将来有可能改变的,留好扩展点。 寻找共性,进行抽象。通用的抽取封装到基类,同类型的、需要扩展…

   19   2021-11-12   去看看

单一职责原则

单一职责原则 定义 单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP。一个类或者模块只负责完成一个职责(或者功能)。 如何理解单一职责原则(SRP)? 一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的 类。单一…

   22   2021-11-12   去看看

第一章、JVM和Java体系架构

第一章、JVM和Java体系架构 JVM整体结构 方法区和堆是线程共享的 Java栈、本地方法栈、程序计数器是线程独享的 执行引擎包含解释器、即时编译器、垃圾回收器 Java代码执行流程 JVM架构模型 Java编译器输入的指令流是基于栈的指令集架构 基于栈的指令集架构 实现…

   26   2021-11-06   去看看

十九、迭代器模式

Iterator Design Partern 作用 遍历容器实现复杂,并且方式有多种,例如遍历二叉树时,有前序、后序、中序遍历。将遍历容器从容器中独立出来,让两者的职责更单一。 容器使用的是迭代器接口,基于接口而非实现编程,替换迭代器更加容易。 示例 public class MyArrayLis…

   22   2021-11-05   去看看

LeetCode:把二叉搜索树转换为累加树_538

思路 首先二叉搜索树需要中序遍历,但如果是中序遍历,计算前面节点依赖于后面节点的结果。所以将中序遍历倒过来即可。 二叉树的遍历不止3种,可以自行调整。 题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个…

   30   2021-11-01   去看看

LeetCode:二叉搜索树中第K小的元素_230

思路 利用二叉搜索树的特征:中序遍历后是个递增的序列,很容易就AC了。 这样的时间复杂度是O(n),如果节点已经存储了序号,就可以像查找值一样O(logN)。 叶节点也满足二叉搜索树 题目 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第…

   31   2021-11-01   去看看

LeetCode:二叉树的序列化与反序列化_297

思路 使用前序遍历序列化,遍历的元素往链表末尾添加,根节点先添加,再左子节点,右子节点。所以根节点在链表头部,有了这个信息就好做了,毕竟二叉树的遍历就是找到根节点+做点啥+递归。 使用前序遍历反序列化,需要先得出根节点,在链表的头部,将其抛出。再找…

   40   2021-10-29   去看看
加载更多
友情链接
标签
归档
近期文章
分类
近期文章