---- JAVA ------
文章平均质量分 89
叶孤心丶
这个作者很懒,什么都没留下…
展开
-
jenkins持续集成软件版本发布
1.jenkins是什么?Jenkins是一个用Java编写的开源的持续集成工具。在与Oracle发生争执后,项目从Hudson项目复刻。Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和原创 2018-01-25 17:33:14 · 2462 阅读 · 1 评论 -
JAVA开发的23种设计模式之 --- 建造者模式
建造者模式定义 : 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.也就是说用户不需要知道一个复杂的对象时如何创建的.用户只需要知道使用构造不同对象的方法(Director)就能得到一个完整的复杂对象的实例建造者模式通常包含的几个角色Builder : 给出的一个抽象接口,规范产品对象的各个组成部分的建造.这个接口先声明必须要实现的复杂对原创 2017-08-15 19:05:22 · 400 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 原型模式
原型模式:定义 : 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.(主要用于对象的复制).要被复制的原型类(Prototype)需要具备的条件实现Cloneable接口.在JAVA中有一个Cloneable接口,他唯一的作用就是在运行时通知虚拟机可以安全的在实现了此接口的类上使用clone方法.在JAVA虚拟机中,只有实现了Cloneable接口的类才可以被拷贝,否原创 2017-08-15 19:08:15 · 297 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 适配器模式
适配器模式概述 : 将一个类的接口转换成另一个客户希望的接口.适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作.适配器模式的种类类的适配器模式对象的适配器模式接口的适配器模式涉及角色目标(Target)角色 : 所期待得到的接口源(Adapee)角色 : 现在需要适配的接口适配器(Adaper)角色 : 适配原创 2017-08-15 19:23:01 · 348 阅读 · 0 评论 -
JAVA开发的23种设计模式之 — 装饰器模式 && 代理器模式
装饰器模式概述 : 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器模式相比生成子类更加灵活维基百科解释 : 通过使用修饰模式,可以在运行时扩充一个类的功能.原理是 :增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数.装饰类实现新的功能,但是,在不需要用到新功能的地方,他可以直接调用原来的类中的方法.修饰类必须和原来的类有相同的接口.使原创 2017-08-17 18:20:11 · 2715 阅读 · 1 评论 -
JAVA开发的23种设计模式之 --- 外观模式
外观模式概述:为子系统中的一组接口提供一个一致的界面,外观(Facade)模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.使用场景当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可原创 2017-08-17 18:26:17 · 313 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 桥接模式
桥接模式概述:将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化.如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构.应用场景实现系统可能有多个角度分类,每一种角度都可能变化.解释:桥接模式将继承模式转化成关联关系,他降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量.理解抽象化,实现化,解耦抽象化:将复杂物体的一个或几个共同原创 2017-08-17 18:31:29 · 4752 阅读 · 1 评论 -
JAVA开发的23种设计模式之 --- 组合模式
组合模式概述:将对象组合成树形结构以表示”部分-整体”的层次结构.使得用户对单个对象和组合对象的使用具有一致性.应用场景:希望忽略单个对象和组合对象的区别,统一使用组合结构中的所有对象.也就是将单个对象和组合对象中的统一的地方封装起来.供外部调用.组合模式中的角色组合部件:它是一个抽象类,为要组合的对象提供统一的接口.叶子:在组合中表示子节点对象,叶子节点已经是最底层不能再有子节点原创 2017-08-17 18:43:19 · 450 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 享元模式
享元模式概述:当会创建大量对象时,可能会占用很多的内存,这个时候我们选择把其中重复创建的那部分对象抽取出来,如果有使用到该对象并且已经创建过了.就直接返回内存中已有的对象,避免重新创建.使用场景系统中有大量相似对象,并消耗大量的内存这些对象可以按内蕴状态分为很多组,当把外蕴状态从对象中剔除出来时,每一组这样的对象都可以用一个对象来代替系统不依赖与这些对象身份,这些对象是不可分辨的.原创 2017-08-17 18:46:36 · 273 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 单例模式
单例模式概述 : 是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类中只有一个实例.要点单例类只能有一个实例,它必须自行创建这个实例他必须自行向整个系统提供这个实例.实现单例模式的类只提供私有的构造函数类定义中含有一个该类的静态私有对象该类提供了一个静态的公有的函数用于创建或获取他本身的静态私有对象原创 2017-08-14 18:54:56 · 371 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 工厂模式 && 抽象工厂模式
设计模式概述 : 是一套被反复使用,多数人知晓的,经过分类的,代码设计经验的总结.目的 : 提高代码的可重用性,让代码更容易被他人理解,保证代码的可靠性.设计模式使代码编写真正工程化;设计原则 单一职责原则 (设计模式五大原则):一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会原创 2017-08-14 18:44:54 · 323 阅读 · 0 评论 -
pring Boot 在注入第三方的Service或Repository时出现错误的解决办法
先说一下错误出现的场景: 前几天在写一个项目的时候,需要使用到第三方的底层Repository和Service.所以就将将要引入的代码使用idea打包成jar.通过pom依赖进来.代码编写时没有出现任何问题,jar正常引入.但是代码写完之后编译时,出现错误.org.springframework.beans.factory.NoSuchBeanDefinitionException: No...原创 2017-08-30 13:47:00 · 2186 阅读 · 0 评论 -
Spring不希望返回的Json为null的字段出现的方法
有时候后端输出一些字段的时候,会将一些为null的字段带上,过滤这些为null的字段的做法为:添加 @JsonInclude(JsonInclude.Include.NON_NULL) 注解package com.newtank.insurance.web.controller.response;import com.fasterxml.jackson.annotation.J原创 2017-11-29 16:29:55 · 13746 阅读 · 0 评论 -
Spring Boot 中使用QueryDSL
1.Query DSL介绍 Querydsl定义了一个通用的静态类型语法,用于查询持久化域模型数据。JDO和JPA是Querydsl的主要集成技术。本指南介绍如何结合使用Querydsl和JPA。 针对JPA的Querydsl是JPQL和Criteria查询的替代方案。它将Criteria查询的动态特性与JPQL的表现力以及完全类型安全的方式相结合。2.mav原创 2017-11-14 18:30:24 · 7066 阅读 · 1 评论 -
JAVA编程思想学习 — 第九章 (违例差错控制)
1.违例自变量 和 Java 的其他任何对象一样,需要用 new 在内存堆里创建违例,并需调用一个构建器。在所有标准违例中,存在着两个构建器:第一个是默认构建器,第二个则需使用一个字串自变量,使我们能在违例里置入相关信息: if(t == null) throw new NullPointerException("t = null”); 在这儿,关键字 th原创 2017-09-22 16:44:40 · 450 阅读 · 0 评论 -
Lombok安装与使用
最近发现了一个能够节省代码的小工具,用了一段时间感觉还不错,特此推荐一下.lombok介绍: lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具.例如,我们在项目中可能不可避免的使用到一些POJO类,这时候我们需要填充应有的字段,并手动建立构造函数,Getter,Setter等方法.而lombok就可以通过@Data注原创 2017-09-11 10:39:56 · 653 阅读 · 0 评论 -
Mac下端口被占用的解决方式
打开终端:查看端口号的进城情况: sudo lsof -i tcp:port port : 你所被占用的端口号 例如8080kill掉被占用的端口的进程: kill PID 每一个进程都会有一个PID原创 2017-08-30 16:29:44 · 12606 阅读 · 1 评论 -
JAVA开发的23种设计模式之 --- 策略模式
策略模式概述:定义一系列的算法,把它们一个个封装起来,并且使他们可以相互替换.这样策略模式使得算法的变化独立于使用算法的客户使用场景在有多种算法相似的情况下,使用if...else所带来的复杂和难以维护一个系统中有很多类,而区分他们的只是他们直接的行为帮助理解:策略模式的核心是对算法的封装该模式重点在于实现对算法(策略)的选择做法就是把需要变化的部分独立出来,这个部分就原创 2017-08-17 18:49:15 · 300 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 模板模式
模板模式概述:定义一个操作中的算法的框架,而将一些步骤延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.模板模式是一种基于继承的代码复用技术.帮助理解:模板模式可以理解为,有一个流程性的算法框架,现在将这个流程分解成一个个的步骤,其中有一些步骤是稳定不变的,有些是可能变化得,通过一个抽象类将所有的步骤抽象成一个个的方法.抽象类中有一个称之为”模板方法原创 2017-08-18 18:32:24 · 423 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 观察者模式
观察者模式概述:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于他的对象都能得到通知并自动刷新.帮助理解:观察者模式可以理解为,在一个一对多的关系模式中,例如一个微信公众号有多个关注用户,那么关注该微信公众号的微信用户就是观察者,微信公众号就是被观察者.一个微信公众号会有多个关注用户,这就是其中的一对多的关系.然后当一个对象的状态发生改变就是说当被观察者(微信公原创 2017-08-19 23:29:57 · 348 阅读 · 0 评论 -
JAVA编程思想学习 --- 第五章 (隐藏实施过程)
进行面向对象的设计时,一项基本的考虑是:如何将发生变化的东西与保持不变的东西分隔开。”1.包:库单元 我们用 import 关键字导入一个完整的库时,就会获得“包”( Package)。例如: import java.util.*; 它的作用是导入完整的实用工具( Utility)库,若想导入单独一个类,可在 import 语句里指定那个类的原创 2017-09-06 18:05:30 · 406 阅读 · 0 评论 -
JAVA编程思想学习 --- 第三章(控制程序流程)
1.赋值 赋值是用等号运算符( =)进行的。它的意思是“取得右边的值,把它复制到左边”。右边的值可以是任何常 数、变量或者表达式,只要能产生一个值就行。但左边的值必须是一个明确的、已命名的变量。也就是说,它必须有一个物理性的空间来保存右边的值。举个例子来说,可将一个常数赋给一个变量( A=4;),但不可 将任何东西赋给一个常数(比如不能 4=A)。 对主数据类型的赋值是原创 2017-09-06 18:03:53 · 343 阅读 · 0 评论 -
微信支付JAVA代码
前段时间在搞微信支付,感觉对于刚刚了解微信支付的人来说只是单纯的看微信开发文档有点难受.所以把自己在写微信支付的时候理解的流程写下来,一方面对自己学过的东西做一个记录,另一方面避免后来的人浪费过多的时间.话不多说,现在开始.业务流程时序图这个支付流程是:这前台调用后台的预支付接口预支付接口调用统一下单API(填写统一下单接口的必须参数),原创 2017-08-08 18:42:48 · 903 阅读 · 0 评论 -
支付宝支付Java代码
最近研究了一下支付宝的支付流程,其它的倒没感觉出来,唯一的感受就是这两个官方文档写的真是无法描述,不好好研究还真看不明白.所以将自己理解的支付宝支付流程描述出来.一来将自己学的东西记录下来,另一方面避免做这方面的朋友们浪费过多的时间.支付宝调用流程开发前的准备工作配置应用网关应用网关里面填写的值就是商户后台的异步回调地址.也就是在支付宝付完款之后,由支付宝调用商原创 2017-08-09 17:36:41 · 19023 阅读 · 6 评论 -
获取真实的客户端IP地址
1.获取真实的客户端IP地址 request.getRemoteAddr() ,这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。/** * 获取客户端的Ip地址 * * @return IP地址 */public static String getIpAddress() { HttpS原创 2017-08-09 17:55:18 · 341 阅读 · 0 评论 -
clipboard.js实现无flash复制内容到剪贴板
由于最近在写一个项目其中有一个功能是要实现将页面上的某一段内容复制到剪贴板上,当时想用ZeroClipboard.js+ZeroClipboard.swf的,奈何项目中有移动端部分,考虑到flash已经风采不复当年,ios已经抛弃了flash。这个方法就只好作罢.所以用clipboard.js.可以实现纯JavaScript(无 Flash)的浏览器内容复制到系统剪贴板的功能。这是在githu原创 2016-08-17 11:45:37 · 884 阅读 · 0 评论 -
JAVA编程思想学习 --- 第八章 (对象的容纳)
1.数组 有两方面的问题将数组与其他集合类型区分开来:效率和类型。对于 Java 来说,为保存和访问一系列对象 (实际是对象的句柄)数组,最有效的方法莫过于数组。数组实际代表一个简单的线性序列,它使得元素的 访问速度非常快,但我们却要为这种速度付出代价:创建一个数组对象时,它的大小是固定的,而且不可在 那个数组对象的“存在时间”内发生改变。 无论使用的数组属于什么类型原创 2017-09-12 17:17:33 · 455 阅读 · 0 评论 -
JAVA编程思想学习 — JAVA中通用排序的具体做法
编写通用的排序代码时,面临的一个问题是必须根据对象的实际类型来执行比较运算,从而实现正确的排 序。当然,一个办法是为每种不同的类型都写一个不同的排序方法。然而,应认识到假若这样做,以后增加 新类型时便不易实现代码的重复利用。 程序设计一个主要的目标就是“将发生变化的东西同保持不变的东西分隔开”。在这里,保持不变的代码是 通用的排序算法,而每次使用时都要变化的是对象的实际比较方法。因此,原创 2017-09-12 14:47:30 · 320 阅读 · 0 评论 -
JAVA开发的23种设计模式之 — 迭代器模式
迭代器模式概述:提供一种方法顺序访问一个聚合对象中各个元素,而无须暴露该对象的内部表示.帮助理解:迭代器模式就是分离了集合对象的遍历行为.抽象出一个迭代器来负责,这样即可以做到不暴露集合的内部结构,又可以让外部代码透明的访问集合内部的数据.迭代器模式包含的角色迭代器角色:定义遍历元素所需要的方法,一般来说肯定会有这三个方法.取得下一个元素的方法next(),判断是否遍历结束的方法h原创 2017-08-21 17:10:15 · 303 阅读 · 0 评论 -
JAVA开发的23种设计模式之 — 责任链模式
责任链模式概述:责任链模式是一种对象的行为模式,在责任链模式中,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道这个链上的哪一个对象最终处理了这个请求,这使得系统可以在不影响客户端的情况下动态的重新组织和分配责任.帮助理解:可以将责任链模式理解为链表的那种思想,多个处理方法在一条链上,每一个接收者(原创 2017-08-21 17:13:10 · 325 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 命令模式
命令模式概述:将请求封装成一个对象,从而使我们可用不同的请求对客户进行参数化解决的问题:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系.但是在某些场合.需要对行为进行记录,撤销/重做,事务等处理.这种无法抵御变化的紧耦合是不合适的.在这种情况下就需要将"行为请求者”与”行为实现者”解耦,将一组行为抽象成对象.可以实现二者之间的松耦合.命令模式所包含的角色命令角色(Com原创 2017-08-21 18:11:28 · 324 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 备忘录模式
备忘录模式概述:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样可以将对象恢复到原先保存的状态.帮助理解:备忘录模式就是为对象提供一个备份的地方,当对象想要回滚到前一个状态时,调用备忘录对象直接就可以恢复.备忘录模式说包含的角色Originator : 原发器,也就是发起者.记录有当前时刻自身的内部状态,负责创建一个备忘录Memento,用于记录原创 2017-08-24 18:19:18 · 373 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 状态模式
状态模式概述:允许一个对象在其内部状态改变时改变他的行为.对象看起来似乎修改了它的类帮助理解:可以将状态模式的场景理解为QQ的状态,不同的状态对于他的QQ好友来说,行为是不一样的.例如:隐身状态对于好友来说不可见.总结下来状态模式就有两个要点:1.可以通过改变状态来获得不同的行为.2.对象看起来有所变化(在例子中可以理解为,你的好友可以看到你的变化)使用场景:对象的行为依赖于他的状态.并且原创 2017-08-24 18:23:51 · 296 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 访问者模式
访问者模式概述:表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作.访问者模式所包含的角色Visitor : 抽象访问者角色.为该对象结构中具体元素角色声明一个访问操作接口.该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色.这样访问者就可以通过该元素角色的特定接口直接访问它.ConcreteVisit :原创 2017-08-27 11:35:50 · 296 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 中介者模式
中介者模式概述 : 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互中介者模式所包含的角色Mediator : 中介者角色.在里面定义各个部门之间的交互对象,ConcreteMediator : 具体中介者实现角色.维护各个部门之间的交互关系Deparement : 部门角色.所有具体部门类的父原创 2017-08-30 13:43:55 · 305 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 解释器模式
解释器模式概述 : 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子.使用场景 : 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子.这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题.解释器模式的结构 :抽象解释器 : 声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口原创 2017-09-07 15:06:24 · 386 阅读 · 0 评论 -
HDU 5351 MZL's Border(规律)
MZL's BorderTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 835 Accepted Submission(s): 268Problem DescriptionAs is known to原创 2015-08-05 15:15:15 · 700 阅读 · 0 评论