自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

转载 红黑树

红黑树红黑树,本质上来说就是一棵二叉查找树,但它在二叉查找树的基础上增加了着色和相关的性质使得红黑树相对平衡,从而保证了红黑树的查找、插入、删除的时间复杂度最坏为O(log n)。但它是如何保证一棵n个结点的红黑树的高度始终保持在h = logn的呢?这就引出了红黑树的5条性质:1)每个结点要么是红的,要么是黑的。 2)根结点是黑的。 3)每个叶结点(叶结点即指树尾端NIL...

2018-08-13 21:53:04 148

原创 平衡二叉排序树的插入

1、LL型 2、LR型 3、RL型 4、RR型

2018-08-11 19:32:52 407

原创 二叉排序树的删除

删除操作首先查找要删除的结点,看是否在二叉排序树中,若不在则不做任何操作;否则,假设要删除的结点为p,结点p的双亲结点为f,并假设结点p是结点f的左孩子(右孩子的情况类似)。下面分三种情况讨论: 1、若p为叶子结点,则可直接将其删除; 2、若p结点只有左子树或只有右子树,直接改为其双亲结点f的左子树; 3、若p既有左子树,又有右子树,此时有以下两种处理方法: 方法一:首先找到p结点在中序序...

2018-08-11 10:31:08 1822

原创 Netty入门

**一、Java IO通信** BIO的特点:一个线程负责连接;一请求一应答;缺乏弹性伸缩能力;BIO通信模型如下: 伪异步IO通信:线程池负责连接;M请求N应答;线程池阻塞;伪异步IO通信模型如下: NIO通信缓冲区buffer;通道Channel;多路复用器Selector;AIO通信连接注册读写事件和回调函数;...

2018-06-22 10:40:46 136

原创 HTTP基础知识

1、响应类别 2、常用的状态码200:请求已正常处理;204:请求处理成功,但没有资源可返回;206:对资源某一部分的请求;301:资源的URI已更新;302:资源的URI已临时定位到其他位置了;303:由于请求的资源存在另一个URI,应使用GET方法定向获取请求的资源;304:客户端发送附带条件的请求,服务器端允许请求访问资源,但未满足条件的情况;307:临时重定向,该...

2018-06-05 20:58:11 115

原创 状态模式

状态模式类图如下: 实现我们的状态类public class NoQuarterState implements State{ GumballMachine gumballMachine; public NoQuarterState(GumballMachine gumballMachine) { this.gumballMachine=gumballM...

2018-04-27 21:51:05 99

原创 模板模式

模板模式类图如下: CaffeineBeverageWithHook的实现如下:public abstract class CaffeineBeverageWithHook{ void prepareRecipe() { boilWater(); brew(); pourInCup(); if(customerW...

2018-04-27 16:53:50 131

原创 组合模式

组合模式类图如下: 实现菜单组件public abstract class MenuComponent{ public void add(MenuComponent menuComponent) { throw new UnsupportedOperationException(); } public void remove(MenuCompon...

2018-04-27 16:25:06 127

原创 命令模式

实现命令接口public interface Command() { public void execute(); public void undo();}实现一个打开点灯的命令public class LightOnCommand implements Command{ Light light; public LightOnCommand(...

2018-04-27 11:56:22 105

转载 策略模式

本文转发自技术世界,原文链接  http://www.jasongj.com/design_pattern/strategy/策略模式定义策略模式(Strategy Pattern),将各种算法封装到具体的类中,作为一个抽象策略类的子类,使得它们可以互换。客户端可以自行决定使用哪种算法。策略模式类图 典型策略模式实现策略接口,定义策略执行接口public inter...

2018-04-27 10:06:00 116

转载 适配器模式

本文转发自技术世界,原文链接 http://www.jasongj.com/design_pattern/adapter/适配器模式介绍适配器模式定义适配器模式(Adapter Pattern),将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式类图适配器模式类图如下: 目标接口publ...

2018-04-27 08:36:44 90

转载 代理模式VS装饰模式

本文转发自技术世界,原文链接 http://www.jasongj.com/design_pattern/proxy_decorator/ 模式介绍代理模式(Proxy Pattern),为其它对象提供一种代理以控制对这个对象的访问。装饰模式(Decorator Pattern),动态地给一个对象添加一些额外的职责。从语意上讲,代理模式的目标是控制对被代理对象的访问,而装饰模式是...

2018-04-26 19:44:50 144

原创 观察者模式

观察者模式介绍观察者模式定义观察者模式又叫发布-订阅模式,它定义了一种一对多的依赖关系,多个观察者对象可同时监听某一主题对象,当该主题对象状态发生变化时,相应的所有观察者对象都可收到通知。设计气象站 实现气象站public interface Subject{ public void registerObserver(Observer o); public v...

2018-04-26 11:35:24 120

转载 工厂模式

本文转发自技术世界,原文链接  http://www.jasongj.com/design_pattern/factory_method/1、简单工厂简单工厂模式(Simple Factory Pattern)又叫静态工厂方法模式(Static FactoryMethod Pattern)。建立一个简单披萨工厂public class SimplePizzaFactory{...

2018-04-25 08:51:50 126

原创 单件模式

单件模式public class Singleton {private static Singleton uniqueInstance;private Singleton() {}public static synchronized Singleton getInstance(){ if(uniqueInstance==null) { unique...

2018-04-24 15:51:07 337

原创 几种特殊的二叉树

1、二叉排序树二叉排序树或者是一棵空树,或者是具有如下性质的二叉树。 ①若它的左子树非空,则左子树上所有结点的值均小于根结点的值; ②若它的右子树非空,则右子树上所有结点的值均大于(或大于等于)根结点的值。 ③它的左右子树也分别是二叉排序树。2、平衡二叉排序树(AVL树)一棵平衡二叉排序树或者是具有下列性质的二叉排序树: ①左子树与右子树的高度之差的绝对值小于等于1; ②...

2018-03-19 17:25:42 1668

原创 图中涉及到的一些基本算法

1、最小生成树在一个连通网的所有生成树中,各边的代价之和最小的那颗生成树称为该连通网的最小代价生成树,简称为最小生成树。1.1 普里姆算法(加点法) 假设N=(V,{E})是连通网,TE为最小生成树中边的集合。 ①初始U={u0}(u0∈V),TE=∅; ②在所有u∈U,v∈V-U的边中选一条代价最小的边(u0,v0)并入集合TE,同时将v0并入U; ③重复②,直到U=V为止。 ...

2018-03-18 11:39:18 453

原创 网络面试题总结(一)

1、OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层(4层):网络接口层、 网络层、传输层、 应用层。 五层协议 (5层):物理层、数据链路层、网络层、传输层、 应用层。每一层的协议如下: 物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器) 数据链路:PPP、...

2018-03-18 09:54:10 199

原创 图的存储结构

1、邻接矩阵表示法若G是一个具有n个顶点的无权图,G的邻接矩阵是具有如下性质的n×n矩阵A: 示例如下: 2、邻接表表示法示例如下: 对于带权值的网图,可以在边表结点定义中再增加一个weight的数据域,存储权值信息即可。如下图所示: ...

2018-03-17 17:45:03 132

原创 二叉树的非递归遍历实现

1. 二叉树的先序遍历代码如下: public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list=new ArrayList<>(); if (root==null) return list; Stack<TreeN...

2018-03-16 11:01:16 138

转载 方法区与常量池

一.相关概念 1. 什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。Class文件中的常量池 在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版本号,...

2018-03-16 08:12:18 1490

转载 Java中==和equals的区别

Java中==和equals的区别==号在比较基本数据类型时比较的是值,而用==号比较两个对象时比较的是两个对象的地址值。那equals()方法呢?我们可以通过查看源码知道,equals()方法存在于Object类中,因为Object类是所有类的直接或间接父类,也就是说所有的类中的equals()方法都继承自Object类,而通过源码我们发现,Object类中equals()方法底层依赖的...

2018-03-15 20:45:19 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除