![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 57
qq_42544450
这个作者很懒,什么都没留下…
展开
-
快速排序 ,归并排序,堆排序,java实现,空间复杂度分析
三种排序算法时间复杂度均为nlgn,空间复杂度不同 快速排序 不需要额外内存 消耗lgn到n的栈空间 public class QuickSort { static void quickSort(int[] array){ quickSortofRange(array, 0, array.length-1); } // l r 为数组下标 static void quickSortofRange(int[] array,int l,int r) {原创 2020-09-30 04:18:34 · 541 阅读 · 0 评论 -
静态代理 设计模式系列4
概述 真实角色,代理角色;真实角色和代理角色要实现同一个接口,代理角色要持有真实角色的引用。创建真实角色的对象和代理角色的对象,并将真实角色对象的引用传给代理角色,让代理角色去执行功能。 代理者替真实角色做不常做的事或不会做的,真实角色更专注做核心事; 示例 //接口 interface Proxy { void todo() ; } // 真实角色 class RealityRole implements Proxy { @Override public void todo() { 原创 2020-10-15 02:11:45 · 89 阅读 · 0 评论 -
抽象工厂 设计模式系列3
概述 创建一系列相关或相互依赖对象(一个产品族)。 围绕一个超级工厂创建其他工厂,每个生成的工厂都能按照工厂模式提供全部对象(每个工厂都有一个产品族)。 产品族扩展非常困难,既要在抽象的 Creator 里加代码,又要在具体的里面加代码 比如人穿衣,你需要1套衣服,包括 上衣 裤子 鞋子,通常来说你不会西装配大裤衩和球鞋,你需要成套的,运动套,或者时尚套,或正装。 那么 这个超级工厂 (interface (我习惯用接口,你也可以写成个抽象类))就是穿衣原则,规定了要 上衣 裤子 鞋子 根据超级工厂设计原创 2020-10-15 01:57:47 · 89 阅读 · 0 评论 -
工厂模式 设计模式系列2
概述 打个比方,你现在要得到两辆车BMW和Tesla, 你可以 new BMW() new Tesla() 然而造车可能没有这么简单,你可能new了两个车壳子,可能还需要各种零件, 除非你愿意也不怕麻烦,可以自己实现。 (静态/简单)工厂模式,就是工厂内预设了车型的生产线,你可以 factory.get(“BMW”) factory.get(“Tesla”) 也可以 factory.getBMW() factory.getTesla() 你只管提车,不需要管创建过程。 但是有个问题,如果你要一台Au原创 2020-10-14 17:36:33 · 90 阅读 · 0 评论 -
单例模式 设计模式系列1
概述 这种模式涉及到一个单一的类,只能有一个实例,由自己创建。这个类向外提供访问其唯一的对象的方法,可以直接访问,不能也不需要实例化该类的对象。 意图 : 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 **主要解决:**一个全局使用的类频繁地创建与销毁。 **何时使用:**当您想控制实例数目,节省系统资源的时候。 **如何解决:**判断系统是否已经有这个单例,如果有则返回,如果没有则创建。 **关键代码:**构造函数是私有的。 使用场 1、要求生产唯一序列号。 2、WEB 中的计数原创 2020-10-14 15:56:23 · 82 阅读 · 0 评论 -
java设计模式 架构 gof23
概述 设计模式本质是面向对象设计原则是实际应用 是对 类封装/内聚,继承,多态 以及 类的关联关系和组合关系的充分理解 设计原则 1**、开闭原则(Open Close Principle)** 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类, 2**、里氏代换原则(Liskov Substitution Principle)** is-a 里氏原创 2020-10-14 15:54:03 · 82 阅读 · 0 评论 -
java函数式编程 (原书 richard warburton 简要提取笔记)
一、概述 随着CPU频率遇到瓶颈,多核CPU 兴起,旧的Java 还欠缺高效的并行操作。java8强化函数式编程是java发展的必然结果。在java8之前,java通过内部匿名类来实现函数式的操作,但受限于代码模板,操作冗余,可读性差。在 回调函数,事假处理程序上尤为明显。 函数式编程,即函数至上的编程方法,是对行为进行抽象的一种方法,它使用不可变值和函数,函数对一个值进行处理,映射成另一个...原创 2020-05-05 12:01:11 · 198 阅读 · 0 评论