Java

设计模式:Singleton模式

单例模式,比较简单,主要是为了提供一种创建对象的方式,涉及到一个单例模式的类,负责创建自身类型的对象,同时确保只有单个对象被创建,那么对于该唯一的对象的访问方式,可以直接访问,而不需要实例化对象来...

设计模式:Factory Method模式

工厂方法,通过Template Method模式来生成实例的工厂,就是Factory Method模式,和Template Method一样,Factory Method模式超类决定实例的生成方式,但是不决定所要生成的具体的类,具体的处理都还是由子类来负...

设计模式:Template Method模式

超类中定义处理流程的框架,在子类中实现具体的处理逻辑,这种就是Template Method模式 这种模式带有模板功能,组成模板的方法定义在超类中,但是都是抽象方法,具体都是在子类中实现的,但是具体处理流程是在超...

 设计模式:Adapter模式

Adapter适配器,一般喜欢拿交流电转换成直流电的适配器来举例,可以简单理解成一个转接头的功能,使得能够相互满足需求 Adapter模式有两种方式: 类适配器模式:使用继承 对象适配器模式:使用委托 将原本不匹...

设计模式:Iterator模式

正常通过for循环遍历一个数组的时候,循环变量那个index,如果将它抽象化形成一种模式就是Iterator模式,也就是迭代器模式 比如要创建一个书架,上架几本新书,Java,Python,Perl和Shell,结束之后还要遍历这个...

MergeSort

大脑不够用了,补一个好玩的视频 http://v.youku.com/v_show/id_XMzMyODk5Njg4.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2 基本思路首先是分,将数组平分两边,然后每边进行排序,排序后再将两边归并成一整...

设计模式:简单工厂

工厂方法应该是用得非常多的设计模式,随处可见Factory,简单工厂其实不算一个真正的设计模式 Head First里以Java多态引出问题 Duck duck;if (picnic) { duck = new MallardDuck();} else if (hunting) { d...

JUnit单元测试

JUnit单元测试,既然叫单元,那就是针对最小功能单元来说,也就是针对单个方法的测试,像Python里的unittest,比如OpenStack对应的Tempest都是由一个一个单元测试构成的,Java的JUnit也基本类似 常规也是通过Asse...

设计模式笔记:策略模式

现在开发了一个模拟鸭子的游戏,里面有各种鸭子出现,它们会一边游泳,一边嘎嘎叫,但是每种鸭子外观是不同的 继承方式 这里定义一个超类Duck,共同的行为swim和quack可以放在超类方法里,而不同的鸭子的颜色外表...

阿里巴巴Java规约插件试水

阿里去年出了一个有关IDE的插件,应该对我这种层次的比较有用,养成一个好习惯,试试水 云栖社区链接:https://yq.aliyun.com/articles/224817?spm=a2c4e.11153959.blogcont224345.14.12a81178NBwput 按这...

Java简易二叉树排序

通过一个简单的二叉树例子,捋一捋思考的思路 比如需要对下列数组进行排序 int[] arr = {17, 12, 19, 10, 15, 18, 25, 8, 11, 13, 16, 22}; 这里可以根据数组里的元素创建一个二叉树,要求就是父节点的值大于左...

InsertionSort

插入排序,感觉挺有意思,可以理解成扑克牌,先取了张12,新取了张15,比12大,放右边;新取了张9,比15小,左移,和15换个位置,比12也小,继续左移 源码 package Love;/** * Hello world! */public class App ...

SelectionSort

选择排序,同样先来一个图 源码如下 package Love;/** * Hello world! */public class App { public static void selectionSort(int[] arr) { int len = arr.length; int temp = 0; for...

QuickSort

快速排序算法流程以网上的一图解千愁 具体实现 package Love;/** * Hello world! */public class App { public static void quickSort(int[] arr, int start, int end) { int left = start; ...

BubbleSort

打下基础,冒泡排序 6 3 5 2 4 1 Round 1 3 6 5 2 4 1 3 5 6 2 4 1 3 5 2 6 4 1 3 5 2 4 6 1 3 5 2 4 1 6 Round 2 3 5 2 4 1 6 3 2 5 4 1 6 3 2 4 5 1 6 3 2 4 1 5 6 Round 3 2 3 4 1 5 6 2 3 4 1 5 6 2 3 1 ...

在线笔试题二

三个线程交替打印antantant…,一个打印a,一个打印n,一个打印t(编程语言自选) Java实现,方法一,通过两把锁来控制打印,思路如下: ThreadA,ThreadN,ThreadT分别会打印a,n,t,定义三把锁LockA,LockN,Lo...

在线笔试题三

石英时钟,假如时分秒针都是每次走1/60表盘,统计从12月15日13:21开始到12月17日9:28,有多少次时针,秒针,分钟+在同一条直线上(编程语言自选) 那天在线笔试,第二道多线程写得有问题一直在弄,最后提交的时...

浙ICP备16024533号

浙公网安备 33010802007459号