自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 一些可以参考的常用工具库类整理

强大的common包们:Trinea:https://github.com/Trinea/android-common(包含强大的listview、bitmap cache)litesuits:https://github.com/litesuits/android-common下面为零散的common包集合:注意查看每个库的说明文档辅助快速上手...

2016-08-15 14:08:00 142

转载 Java(Android)线程池 总结

JAVA的Executors源码:(可以看出底层都是通过ThreadPoolExecutor来具体设置的~)public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, ...

2016-07-13 20:12:00 95

转载 JAVA泛型

泛型类publicclassContainer<K, V>{ private K key; private V value; publicContainer(K k, V v){ key = k; value = v; } public K getKey(){...

2016-07-12 18:17:00 101

转载 设计模式总结

设计模式的六大原则开闭原则:模块应尽量在不修改原代码(闭)的情况下进行扩展(开)。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。里氏代换原则:如果调用的是父类的话,那么换成子类也完全可以运行。 派生类能够在基类的基础上增加新的行为。只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用。实现开闭原则的关键步骤就是抽...

2016-06-27 18:29:00 79

转载 工厂模式与抽象工厂模式

工厂模式何时使用:我们明确地计划不同条件下创建不同实例时。主要解决接口选择的问题。如何解决:定义一个工厂接口,让工厂类实现工厂接口。让调用者自己通过参数传递决定实例化创建哪一个工厂类,返回的是一个抽象的工厂产品实例。使用场景: 1、日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。 2、数据库访问,当用户不知道最后系...

2016-06-27 18:28:00 63

转载 原型模式

原型模式何时使用:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。在运行期建立和删除原型。用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。如何解决:利用已有的一个原型对象...

2016-06-27 18:28:00 65

转载 组合模式

组合模式(Composite Pattern)何时使用:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。1、您想表示对象的部分-整体层次结构(树形结构)。 2、您希望用户忽略组合对象与单个对象的不同,用户将统一地使...

2016-06-27 18:27:00 83

转载 建造者模式

建造者模式何时使用:对每个对象:将一个复杂的构建过程与其具表示细节相分离,使得同样的构建过程可以创建不同的表示。主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。如何解决:对每个Builder:将变(Builde...

2016-06-27 18:27:00 58

转载 适配器模式

何时使用: 1、系统需要使用现有的类,而此类的接口不符合系统的需要。 2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。 3、通过接口转换,将一个类插入另一个类系中。主要解决:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工...

2016-06-27 18:27:00 53

转载 外观模式

外观模式何时使用:隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的高层接口,使得这一子系统更加容易使用。为子系统中的一组接口提供一个一致的界面。可以向现有的系统添加一个接口,来隐藏系统的复杂性。1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。 2、定义系统的入口。如何解决:客户端不与系统耦合,外观类与系统耦合。在客户端和复杂...

2016-06-27 18:26:00 56

转载 过滤器模式

过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。可以组合多个标准来获得单一的标准。例子:一组对象List实例 -> 一个标准模式Criteria -> 过滤对象:XXXCriteria.meetCrieria(原始List) -&g...

2016-06-27 18:26:00 91

转载 装饰器模式

装饰器模式何时使用:保持接口,增强性能。为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀,在不想增加很多子类的情况下扩展类,动态地给一个对象添加一些额外的职责,可以使用装饰器模式。特点:不改变原类文件、不使用继承、动态扩展。如何解决:将具体功能职责划分,同时地继承装饰者模式。1、Component 类充当抽象角...

2016-06-27 18:25:00 54

转载 桥接模式

何时使用:系统可能有多个角度分类,每一种角度都可能变化。在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。如何解决:需要一个作为桥接的接口/抽象类,多个角度的实现类依赖注入到抽象类,使它们在抽象层建立一个关联关系,能把这种多角度分类的实现类分离出来,让它们独立变化,减少它们之间耦合;同时,抽象和实现之间可以独立扩展,不会影响到彼此,也将实现部分与抽...

2016-06-27 18:24:00 69

转载 解释器模式

解释器模式何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。这种模式被用在 SQL 解析、符号处理引擎等。主要用于一些固定文法构建一个解释句子的解释器。...

2016-06-27 18:23:00 51

转载 责任链模式

责任链模式何时使用:在处理消息的时候以过滤很多道。避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。如何解决:拦截的类都实现统一接口。通常每个接收者都...

2016-06-27 18:23:00 57

转载 代理模式

代理模式何时使用:想在访问一个类时做一些控制。为其他对象提供一种代理以控制对这个对象的访问。关键代码:增加中间层(代理层),代理类与底层实现类实现共同接口,并创建底层实现类对象(底层实现类对象依赖注入代理类),以便向外界提供功能接口。优点: 1、职责清晰。 2、高扩展性。 3、智能化。缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代...

2016-06-27 18:23:00 151

转载 中介者模式

中介者模式何时使用:多个类相互耦合,形成了网状结构。对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。中介者模式可以处理不同类之间的通信,支持松耦合,用来降低多个对象和类之间的通信复杂性使代码易于维护:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地...

2016-06-27 18:22:00 70

转载 迭代器模式

迭代器模式Java 和 .Net 编程环境中非常常用的设计模式。用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。何时使用:用于遍历一个聚合对象,提供一种方法顺序遍历访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。:1、访问一个聚合对象的内容而无须暴露它的内部表示。 2、需要为聚合对象提供多种遍历方式。 3、为遍历不同的聚合结构提供一...

2016-06-27 18:22:00 78

转载 命令模式

命令模式何时使用:在某些场合,比如要对行为进行"记录、撤销/重做、事务"等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,应将"行为请求者"与"行为实现者"解耦。如何解决:调用者依赖命令,命令依赖接收者(即:接收者依赖注入到命令,特定的接收处理者与相对应的命令绑定;命令依赖注入到接收者)。通过调用者发布命令,命令中的接收者执行这个命令,顺序:调用者Inv...

2016-06-27 18:22:00 93

转载 备忘录模式

备忘录模式何时使用:很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有"后悔药"可吃。在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。如何解决:通过一个备忘录类专门存储对象状态。客户不与备忘录类耦合,与备忘录管理类耦...

2016-06-27 18:21:00 83

转载 状态模式

状态模式何时使用:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。如何解决:创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象,对象的行为依赖于它的状态,并且可以根据它的状态改变而改变它的相关行为(可通过调用内部的状态对象实现相应的具体行为)。(即状态对象依赖注入到context对象,状态对象中具体实现不同行为)优点...

2016-06-27 18:21:00 58

转载 观察者模式

观察者模式何时使用:对象间的一种一对多的依赖关系,当一个对象(观察目标对象)的状态发生改变,所有依赖于它的对象(观察者对象)都将得到通知,使这些观察者对象能够自动更新(即使用推送方式)。如何解决:在观察目标类里有一个 ArrayList 存放观察者们。优点: 1、观察者和被观察者是抽象耦合的。 2、建立一套触发机制。缺点: 1、如果一个被观察者对象有很多的直接和...

2016-06-27 18:20:00 51

转载 空对象模式

空对象模式 在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。使用一个空对象取代 NULL 对象实例的检查,空对象不是检查空值,而是反应一个不做任何动作的关系。这样的空对象也可以在数据不可用的时候提供默认的行为。来源:http://www.r...

2016-06-27 18:20:00 66

转载 策略模式

策略模式何时使用:一个类的行为或其算法可以在运行时更改。在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。如何解决:创建表示各种策略的对象(它们实现同一个接口,可相互替换)和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。(策略对象依赖注入到Context对象)优点: 1、...

2016-06-27 18:19:00 48

转载 缓冲区溢出攻击

APT攻击:长时间窃取数据。目的通常包括对目标企业的信息技术架构进行篡改从而盗取数据(如将数据从内网输送到外网),执行或阻止一项任务、程序;又或是潜入对方架构中伺机进行偷取数据情报收集:公开数据源(LinkedIn、Facebook等) 搜寻和锁定特定人员并加以研究,然后开发出定制化攻击首次突破防线:通过电子邮件、实时通讯或网站顺道下载等社交工程技巧植入0-d...

2016-06-24 16:03:00 100

转载 软件开发生命周期

软件开发生命周期软件需求分析:确定软件的功能、性能、数据、界面等要求,生成软件需求规约软件设计:软件设计通常可分为系统设计(也称概要设计或总体设计)和详细设计:1、系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构 2、详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等编...

2016-06-24 16:00:00 94

转载 Cookie与Session

cookie机制采用的是在客户端保持状态的方案,session机制采用的是在服务器端保持状态的方案。由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。cookie机制实现原理: 服务器端发送的响应报文内有一个叫做Se...

2016-05-27 16:41:00 46

转载 HTTPS

参考文献:图解HTTPS:http://kb.cnblogs.com/page/112881/HTTP协议小结:http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/xsf50717/article/details/47277347相关阅读:聊聊HTTPS与Android安全:http://m.blo...

2016-05-27 16:40:00 541

转载 TCP总结

TCP协议《计算机网络》谢希仁 及笔记TCP 的那些事儿(上):http://coolshell.cn/articles/11564.htmlTCP 的那些事儿(下):http://coolshell.cn/articles/11609.htmlTCP报文结构一、TCP报文结构如下:固定首部长度为20字节,可变部分0~40字节,各字...

2016-05-27 16:38:00 62

转载 七层网络协议

协议栈OSI层功能TCP/IP协议族应用层为操作系统或网络应用程序提供访问网络服务的接口:文件传输,电子邮件,文件服务,虚拟终端等TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层数据格式化,代码转换,数据加密等会话层解除或建立与别的接点的联系:访问验证和会话管理等(如...

2016-05-27 16:37:00 88

转载 编译原理概括总结

C语言编译系统:来自为知笔记(Wiz)转载于:https://www.cnblogs.com/Doing-what-I-love/p/5535134.html

2016-05-27 16:35:00 97

转载

存储结构一般采用顺序存储字符串比较按字符编码的大小比较,对英文和其他符号,一般用ASCII编码模式匹配朴素的模式匹配回溯法最好:O(n+m) 最差:O(n*m)KMP算法计算“部分匹配表”回溯长度 = 已匹配字符串长度 - 该子串最后一位的部分匹配值"部分匹配"的实质是,有时候...

2016-05-27 16:32:00 77

转载 广义表

概念 广义表(Generalized Lists)是n(n≥0)个数据元素a1,a2,…,ai,…,an 的有序序列,一般记作: ls=(a1,a2,…,ai,…,an) 其中:ls 是广义表的名称,n 是它的长度每个ai(1≤i≤n)是...

2016-05-27 16:31:00 178

转载 桶排序与基数排序代码(JAVA)

桶排序publicstaticvoid bucketSort(int[] a,int max){ int[] buckets; if(a==null || max<1) return; buckets =newint[max]; // 创建一个容...

2016-05-27 16:30:00 99

转载 排序算法源码(JAVA)

public class Test { public static void main(String[] args){ Sort sort = new Sort(); sort.sortTest(); }}public class Sort { public void sortTest() { int[] r...

2016-05-27 16:29:00 52

转载 九大排序算法

排序方法平均情况最好情况最坏情况辅助空间稳定性插入排序直接插入✔希尔排序✘交换排序冒泡排序✔快速排序✘选择排序简单选择✘堆排序...

2016-05-27 16:27:00 62

转载 (二叉)堆

基本概念堆(也叫优先队列),特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。介绍In a heap, the highest (or lowest) priority element is always stored at the root. A heap is not a sorted structure and can be regard...

2016-05-27 16:25:00 48

转载 二叉排序树BST代码(JAVA)

publicclassTest{ publicstaticvoid main(String[] args){ int[] r =newint[]{5,1,3,4,6,7,2,8,9,0}; BST binarySearchTree =new BST(r); binarySearchTree.inOrd...

2016-05-27 16:24:00 85

转载 查找技术

查找分类:静态查找:查找不成功,只返回一个不成功标志(不涉及插入删除)动态查找:查找不成功,将被查找的记录插入到查找集合中查找结构:线性表:适用于静态查找,主要采用技术:顺序查找、折半查找树表:适用于动态查找,主要采用技术:二叉排序树散列表:适用于静态查找和动态查找,主要采用技术:散列查找算法性能:平...

2016-05-27 16:21:00 82

转载 二叉树(二叉链表实现)JAVA代码

publicclassTest{ publicstaticvoid main(String[] args){ char[] ch =newchar[]{'A','B','D','#','#','G','#','#','C','J','#','#','M','#','#'}; BinaryTree binaryTr...

2016-05-27 16:17:00 365

空空如也

空空如也

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

TA关注的人

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