自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

heidou_2016的博客

永无止境

  • 博客(39)
  • 资源 (7)
  • 收藏
  • 关注

原创 mysql : 使用不等于过滤null的问题

在写sql时遇到查询结果不对的情况,经查阅,发现是因为查询条件过滤null的问题;在写SQL 条件语句是经常用到 不等于‘!=’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉。例:表A用 select * from A where B1 != 1查询时得到的结果为:第三列 B1为空的也是会筛选掉的。因为 NULL 不是一个「值」...

2019-11-29 16:48:22 807

转载 Hashmap实现原理及扩容机制详解

目录HashMap基础HashMap实现原理Node和Node链拉链法关于Node数组 table散列算法HashMap和红黑树关于TreeNode红黑树基础HashMap扩容机制JDK1.7下的扩容机制JDK1.8下的扩容机制HashMap基础HashMap继承了Abstract...

2019-11-28 17:45:41 978 1

原创 ArrayList 与 LinkedList 异同

1.ArrayList 与 LinkedList 的继承与实现public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializablepublic class LinkedList...

2019-11-27 15:42:36 193

原创 ArrayList 与 LinkedList 的效率问题

最近查看ArrayList 与 LinkedList 的效率问题,网上答复基本都是ArrayList底层是用数组来保存对象的,这种方式将对象放在连续的位置中。优点:可以通过数组下标快速的拿到值,查询时高效。缺点:每一次添加和删除都需要将操作的元素后面的元素们全部移动,非常麻烦。LinkedList则是将对象放在独立的空间中,而且在每一个空间中存放下一个链接的索引。优点:...

2019-11-27 15:40:05 179

原创 java种数组长度问题

java种数组的长度是用 int类型标识的,也就是说 数组的理论最大长度是Integer.MAX_VALUE2147483647,其中 像String ArrayList 底层都是数组,所以理论最大长度都是2147483647不过这些都是理论值,具体能放多少与JVM内存有关,可以在执行java命令时加上-Xmx1024m就将JVM内存最大置为了1G,默认情况下是6...

2019-11-26 17:07:24 852

原创 StringBuffer与StringBuilder

StringBuffer与StringBuilder的异同看代码public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence public final class StringBuffer extends ...

2019-11-26 16:06:52 141

原创 java字符串的5种拼接方式

一、java字符串拼接方式都有那些?1.+号拼接2.concat拼接耗时3.join拼接4.StringBuffer拼接5.StringBuilder拼接二、拼接的耗时如何?那种拼接效率高?测试代码如下:public class test4 { public static void main(String[] args) { String ...

2019-11-26 15:27:36 9415

原创 为什么重写EQUALS时必须重写HASHCODE方法

一 :string类型的==和equals的区别:结论:"=="是判断两个字符串的内存地址是否相等,equals是比较两个字符串的值是否相等。 String s1 = new String("java");String s2 = new String("java");System.out.println(s1==s2); //falseSystem.out.print...

2019-11-26 14:01:50 1155

原创 String源码详解

1.String的继承实现关系因为被final修饰,因此是不可继承的String类,避免被他人继承后修改。实现了三个接口。可序列、可比较,有序。public final class String implements java.io.Serializable, Comparable<String>, CharSequence2.String的本质是什么Stri...

2019-11-26 13:42:09 427

转载 分布式事务详解

不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。事务的具体定义事务提供一种机制将一个活动涉及的...

2019-11-26 10:23:15 178

原创 windows电脑端同时打开多个微信的方法

新建已TXT文件,输入如下代码start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exestart C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe每添加一行命令多开一个微信,保存后修改文件后缀为bat,双击启动即可。...

2019-11-25 14:48:53 1015

原创 java几种设计模式区分

1.代理模式和装饰模式有什么区别不同之处在于模式的意图。 代理模式控制对象访问权限,装饰模式用于向对象添加职责2.状态模式和策略模式之间有什么区别虽然这两种设计模式实现非常类似,但是他们解决了不同的问题,状态模式处理对象所处的状态,封装了依赖于状态的行为,策略模式处理对象如何执行特定的任务,它封装的是算法...

2019-11-22 11:30:26 208

转载 java设计模式之解释器模式(Interpreter)

在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的语言,那么这些问题实例将是该语言的一些句子,这样就可以用“编译原理”中的解释器模式来实现了。虽然使用解释器模式的实例不是很多,但对于满足以上特点,且对运行效率要求不是很高的应用实例,如果用解释器模式来实现,其效果是非常好的,本文将介绍其工作原理与使用方法。模式的定义与特点解释器(Interpr...

2019-11-22 10:33:37 305

转载 java设计模式之中介者模式(Mediator)

在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是“网状结构”,它要求每个对象都必须知道它需要交互的对象。例如,每个人必须记住他(她)所有朋友的电话;而且,朋友中如果有人的电话修改了,他(她)必须告诉其他所有的朋友修改,这叫作“牵一发而动全身”,非常复杂。如果把这种“网状结构”改为“星形结构”的话,将大大降低它们之间的“耦合性”,这时只要找一个“中介者”就可以了。如前面所...

2019-11-22 10:14:38 137

转载 java设计模式之访问者模式(Visitor)

在现实生活中,有些集合对象中存在多种不同的元素,且每种元素也存在多种不同的访问者和处理方式。例如,公园中存在多个景点,也存在多个游客,不同的游客对同一个景点的评价可能不同;医院医生开的处方单中包含多种药元素,査看它的划价员和药房工作人员对它的处理方式也不同,划价员根据处方单上面的药品名和数量进行划价,药房工作人员根据处方单的内容进行抓药。这样的例子还有很多,例如,电影或电视剧中的人物角色,不同的...

2019-11-22 10:06:26 193

转载 java设计模式之状态模式(State)

在软件开发过程中,应用程序中的有些对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态会发生改变,从而使得其行为也随之发生改变。如人的情绪有高兴的时候和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。对这种有状态的对象编程,传统的解决方案是:将这些所有可能发生的情...

2019-11-22 09:50:11 282

转载 java设计模式之备忘录模式(Memento)

每个人都有犯错误的时候,都希望有种“后悔药”能弥补自己的过失,让自己重新开始,但现实是残酷的。在计算机应用中,客户同样会常常犯错误,能否提供“后悔药”给他们呢?当然是可以的,而且是有必要的。这个功能由“备忘录模式”来实现。其实很多应用软件都提供了这项功能,如 Word、记事本、Photoshop、Eclipse 等软件在编辑时按 Ctrl+Z 组合键时能撤销当前操作,使文档恢复到之前的状态;还有...

2019-11-22 09:31:48 143

转载 java设计模式之命令模式(Command)

在软件开发系统中,常常出现“方法的请求者”与“方法的实现者”之间存在紧密的耦合关系。这不利于软件功能的扩展与维护。例如,想对行为进行“撤销、重做、记录”等处理都很不方便,因此“如何将方法的请求者与方法的实现者解耦?”变得很重要,命令模式能很好地解决这个问题。在现实生活中,这样的例子也很多,例如,电视机遥控器(命令发送者)通过按钮(具体命令)来遥控电视机(命令接收者),还有计算机键盘上的“功能键”...

2019-11-21 16:23:09 432

转载 java设计模式之责任链模式(Chain of Responsibility)

在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这增加了难度。这样的例子还有很多,如找领导出差报销、生活中的“击鼓传花”游戏等。在计算机软硬件中也有相关例...

2019-11-21 13:45:27 243

转载 java设计模式之迭代子模式(Iterator)

在现实生活以及程序设计中,经常要访问一个聚合对象中的各个元素,如“数据结构”中的链表遍历,通常的做法是将链表的创建和遍历都放在同一个类中,但这种方式不利于程序的扩展,如果要更换遍历方法就必须修改程序源代码,这违背了 “开闭原则”。既然将遍历方法封装在聚合类中不可取,那么聚合类中不提供遍历方法,将遍历方法由用户自己实现是否可行呢?答案是同样不可取,因为这种方式会存在两个缺点:暴露了聚合类的内部...

2019-11-21 13:35:53 443

转载 java设计模式之观察者模式(Observer)

在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、...

2019-11-21 11:53:36 250

转载 java设计模式之模板方法模式(Template Method)

在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可...

2019-11-21 11:39:15 395

转载 java设计模式之策略模式(Strategy)

在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(...

2019-11-21 11:30:27 420

转载 java设计模式之享元模式(Flyweight)

在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题。创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈。例如,围棋和五子棋中的黑白棋子,图像中的坐标点或颜色,局域网中的路由器、交换机和集线器,教室里的桌子和凳子等。这些对象有很多相似的地方,如果能把它们相同的部分提取出来共享,则能节省大量的系统资源,这就是享元模式的产生背景。享元模式的定义与特点享元(Fl...

2019-11-21 11:19:52 120

转载 java设计模式之组合模式(Composite)

在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣月艮与衣柜以及厨房中的锅碗瓢盆等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。组合模式的定义与特点组合(Composite)模式的定义:有时又叫作部分-整体...

2019-11-21 10:38:51 383

转载 java设计模式之桥接模式(bridge pattern)

在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。当然,这样的例子还有很多,如不同颜色和字体的文字、不同品牌和功率的汽车、不同性别和职业的男女、支持不同平台和不同文件格式的媒体播放器等。如果...

2019-11-21 10:17:37 215

转载 java设计模式之外观模式(facade pattern)

在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观...

2019-11-21 09:54:54 131

转载 java设计模式之代理模式(proxy pattern)

代理模式在Java中十分常见,有如Spring实现AOP而使用动态代理,更有RPC实现中使用的调用端调用的代理服务。代理模型除了是一种设计模式之外,它更是一种思维,所以探讨并深入理解这种模型是非常有必要的。1.简介定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式包含如下角色:ISubject:抽象主题角色,是一个接口。该接口是对象和它的代理共用的接口。...

2019-11-20 17:14:40 96

转载 java设计模式之装饰器模式(Decorator Pattern)

一、什么是装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。在不想增加更多子类的情况下扩展类,动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类...

2019-11-20 16:48:03 129

转载 java设计模式之抽象工厂模式(Abstract Factory)

工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。请看例子:publicinterface...

2019-11-20 16:25:14 84

转载 java设计模式之适配器模式(Adapter)

1.适配器模式的概念  适配器模式,将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。  适配器模式主要用于解决的问题是需要的东西就在面前,但却不能使用,而短时间无法改造它,于是就想办法去适配的,具体的在使用场景例子在后面给出。2.适配器模式的分类及其结构图适配器模式其实也分为两种,一种是对象适配器,而另一种是类...

2019-11-20 14:50:25 1082 1

转载 从单例模式到Happens-Before

本文主要从简单的单例模式为切入点,分析单例模式可能存在的一些问题,以及如何借助Happens-Before分析、检验代码在多线程环境下的安全性。知识准备为了后面叙述方便,也为了读者理解文章的需要,先在这里解释一下牵涉到的知识点以及相关概念。线程内表现为串行的语义Within Thread As-If-Serial Semantics定义普通的变量仅仅会保证在该方法...

2019-11-20 14:05:03 134

转载 Java设计模式之原型模式(Prototype)

什么是原型模式呢?其实就是使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。1.浅克隆大家可能对 PPT中的模版都不陌生,是的,有的时候套用别人已经做好的模版可以很显著的提高工作效率。当提供者做好一个模版后,发布到网上,我们只需要轻轻的点击一下使用此模版,就可以在这个模版的基础上开始自己的工作,是不是感觉很像 Ctrl + C 的功能?其实原型模式提供的正是克隆功能。下面就...

2019-11-20 13:53:56 121

转载 Java设计模式之设计模式的分类

总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池...

2019-11-20 11:53:00 123

转载 Java设计模式之建造者模式(Builder)

建造者模式,顾名思义的就是类似建房子,有一个固定的流程。在大话设计模式中,作者举了一个例子大概意思是同一道菜在中国的每一个地方都有不同的味道(LZ印象最深的是鱼香肉丝,来北方最之后印象最深的是宫保鸡丁。哈哈),而肯德基的鸡腿、汉堡在每一个城市都是一样的味道。我觉的这一个例子可以清楚的认识到建造者模式有一个固定的建造过程。建造者模式实现了依赖倒转原则,抽象不应该依赖细节,细节应该依赖与抽象。建造者模...

2019-11-20 11:29:11 120

转载 Java设计模式之单例模式(Singleton)

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1)、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2)、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3)、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队...

2019-11-20 11:14:03 399

转载 Java设计模式之工厂方法模式(Factory Method)

工厂方法模式分为三种:1、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:举例如下:(我们举一个发送邮件和短信的例子)首先,创建二者的共同接口:publicinterfaceSender{publicvoidSend();}其次,创建实现类:publicclassMailSenderi...

2019-11-20 11:05:22 119

转载 java设计模式之七大开发设计原则

开闭原则(Open Closed Principle,OCP)含义开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。作用开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性。具体来说,其作用如下:◆ 对软件测试的影响:软件遵守开闭原则的话,软件测试时只需要对扩...

2019-11-19 15:03:42 152

转载 java的特性和优势

java三大特性1.封装封装的定义:首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系为什么需要封装:封装符合面向对象设计原则的第一条:单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,他们只调用开放的接口,而不用去关心内部的实现2.继承Java的类可以...

2019-11-19 14:16:02 241

MySQL5.7从入门到精通.zip

本书为高清版,带目录,本书对mysql进行了详尽的讲解,真正的做到了深入浅出,通过阅读本书可以快速的加深对mysql的认知及了解

2020-08-26

Win32OpenSSL-1_1_0i安装包

Win32OpenSSL-1_1_0i未 openssl 安装包,该文件下载后可以直接安装使用,内含使用方法

2018-10-19

threejs加载obj文件

threejs加载obj文件,附件主要实现了threejs对obj文件的加载,及使用相机及光的一些调节,希望能给大家带来帮助,下载后直接运行即可看到效果。

2018-09-25

freemark模板导出PDF

使用freemark模板导出pdf

2017-06-08

日历形式的行程提醒

做日期型行程管理

2016-08-12

sersync实时同步软件

sersync实现服务器之间文件的触发试实时物理同步

2016-07-18

rsync同步工具

实现服务器之间文件物理同步

2016-07-18

空空如也

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

TA关注的人

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