- 博客(23)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 java 8 新特性(5.Date-Time API)
Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理。对日期与时间的操作一直是Java程序员最痛苦的地方之一。标准的 java.util.Date以及后来的java.util.Calendar一点没有改善这种情况(可以这么说,它们一定程度上更加复杂)。这种情况直接导致了Joda-Time——一个可替换标准日期/时间处理且功能非常强大的Java
2016-09-28 12:28:49 591
原创 代理模式(静态代理、jdk动态代理)
1.代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。2.组成的角色:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色
2016-09-27 17:56:12 378
转载 java 8 新特性(4.Stream API)
为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对
2016-09-27 11:05:57 633
原创 java 8 新特性(3.接口的默认方法和静态方法)
java8中允许使用default关键字定义接口的默认方法,默认方法与抽象方法不同,不需要被实现类来具体实现,但是可以被实现类继承或重写。默认方法的出现提供了在不破坏接口的兼容性的前提下对接口进行扩展。java8中使用static关键字定义接口的静态方法,与一般java类中的静态方法一样。public interface AA { static void helloWorld
2016-09-27 10:06:25 1140
原创 深入浅出MyBatis
1.深入浅出MyBatis-快速入门2.深入浅出MyBatis-Configuration3.深入浅出MyBatis-MapperBuilder4.深入浅出MyBatis-Sqlsession5.深入浅出Mybatis-插件原理6.深入浅出Mybatis-分页7.深入浅出Mybatis-sql自动生成8.深入浅出Mybatis-改造Cache
2016-09-26 17:26:10 357
转载 Hibernate与MyBatis比较
第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html
2016-09-26 16:57:52 299
原创 MyBatis 分页插件详解(带源码)
Mybatis的分页功能很弱,它是基于内存的分页(查出所有记录再按偏移量和limit取结果),在大数据量的情况下这样的分页基本上是没有用的。本文基于插件,通过拦截StatementHandler重写sql语句,实现数据库的物理分页。1.分页参数既然要分页,肯定得有分页参数吧,下面提供了一个排序、分页的参数类。package yjc.framework.orm.db;impo
2016-09-23 17:02:16 4375 1
转载 java 8 新特性(2.Lambda表达式)
1. lambda表达式(lambda expressions)匿名类型最大的问题就在于其冗余的语法。有人戏称匿名类型导致了“高度问题”(height problem):比如前面ActionListener的例子里的五行代码中仅有一行在做实际工作。lambda表达式是匿名方法,它提供了轻量级的语法,从而解决了匿名内部类带来的“高度问题”。下面是一些lambda表达式:(
2016-09-22 17:44:16 730
原创 java 8中forEach遍历
public class ForEachTest { public static void main(String[] args) { /** list */ //ArrayList in Arrays.forEach(Consumer action) Arrays.asList("a", "b", "d").forEach(e -> Sys
2016-09-22 11:31:36 11809
原创 java 8 新特性(1.函数式接口 - Functional Interface)
1.函数式接口(Functional Interface):所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。1.1 函数式接口里允许定义默认方法:函数式接口里是可以包含默认方法,因为默认方法不是抽象方法,其有一个默认实现,所以是符合函数式接口的
2016-09-22 11:18:49 11327 5
原创 责任链模式(Chain of Responsibility)
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。涉及角色:1.抽象处理者(Handler)角色:定义出一个处理请求的接口。如果需要,接口可以定义出一
2016-09-19 11:30:34 415
原创 组合模式(Composite Pattern)
组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。组合模式让你可以优化处理递归或分级数据结构。有许多关于分级数据结构的例子,使得组合模式非常有用武之地。
2016-09-18 15:49:00 372
原创 map的遍历性能测试
java中遍历通过不同的元素遍历map的方式有3种:1.通过keySet遍历;2.通过entrySet遍历;3.获取values遍历value。通过不同的方式遍历又分为foreach和iterator。因为本文按照这几个维度,以不同数据量来分别测试所需时间。主要测试方法如下:private static void valuesIterator(Map, String> map)
2016-09-18 13:38:01 1406
原创 迭代器模式(Iterator)
迭代器模式,提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。JDK中已经为我们设计好了一套完善的迭代器------java.util.Iterator。通过这个包名可以发现所谓的迭代器之前是一种工具,这个工作提供的功能就是用来顺序访问一个聚合对象中的各种元素。/** * 迭代器模式,使用JDK中的Iterator * 这里的聚合元素指的就是List,Set
2016-09-18 10:42:07 314
原创 策略模式(Strategy Pattern)
概述:在应用程序开发过程中,实现一种功能存在多种不同的方法或者说是策略,如排序,计算等等。如何选择策略就成了编写代码是否优雅的关键。硬编码并不可取,写多种方法分别实现策略然后公开给客户端调用,或者通过if...else分支语句来选择,都不够优雅,加大了代码维护的难度。这个时候我们就可以考虑使用策略模式。策略模式:策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共
2016-09-13 14:13:53 386
原创 状态模式(Stats Pattern)
在实际项目中,应用程序往往需要根据不同的情况做出不同的处理。在开发工程中,需要考虑到各种场景、分支,常常会使用到if..else或者switch case等分支,通过判断条件处理不同的情况。当这种判断变得复杂的时候,分支增多,代码量增多,对代码的维护和可读性、扩展性带来了不好的影响。这种时候就可以考虑使用状态模式。状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改
2016-09-13 10:32:22 410
原创 模板方法模式(Template Pattern)
1. 概述 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。2. 模式中的角色 2.1 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。 2.2 具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。模板方法模式是结构最简单的行为型设计模式
2016-09-12 13:57:47 515
原创 slf4j优于log4j
之前已经写过以前简要的《log4j》,讲述了log4j的配置及使用。现在来说说slf4j优于log4j的几个点。先说结论吧:请尽量使用slf4j。1.依赖抽象而不是依赖具体实现slf4j对比Log4J,logback和java.util.Logging,slf4j是接口,其他都是具体的实现类。当客户端调用slf4j打印日志的时候,将通过Log4jLoggerAdapter这样一个log4j
2016-09-12 10:01:39 602
原创 命令模式(Command Pattern)
1命令模式是一个高内聚的模式。定义如下:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 2.角色说明:● Receive接收者角色该角色就是干活的角色,命令传递到这里是应该被执行的。● Command命令角色需要执行的所有命令都在这里声明。● Invoker调用者角色
2016-09-11 15:04:28 435
原创 AES对称加密
public class AES { private static final String KEY = "99ssavv"; /** * base 64 encode * @param bytes 待编码的byte[] * @return 编码后的base 64 code */
2016-09-10 15:00:27 508
原创 ArrayStoreException
最近看到一段JDK中ArrayList类中的源码,其中一段注释吸引了我的眼球,为了弄清其含义,特意找了一些资料,写了一点测试代码。源代码如下:/** * Constructs a list containing the elements of the specified * collection, in the order they are returned by the collec
2016-09-09 17:21:46 15233
原创 外观模式(Facade Pattern)
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。有什么用处:(1)实现了子系统与客户端之间的松耦合关系。(2)客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。用代码说话:完成一件事,需要3个步骤:步骤A,步骤B,步骤Cpublic class S
2016-09-09 13:37:50 417
原创 两种适配器模式(Adapter Pattern)
1. 概述 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。2. 解决的问题 举个例子:有一个三相插座,可是此时使用的小台灯的插头是一个两相插头,插不进去呀。这个时候就会想到使用插线板,插线板的插头可以插入家里的三相插座,同时插线板提供了两相插孔给小台灯使用。这里的插线板就是我们所说的适配器。
2016-09-09 10:28:15 5271
mysql性能优化_数据库_onlyyjco的专栏-CSDN博客.7z
2020-05-26
服务器推送功能详细设计.docx
2020-05-26
activiti工作流在风控业务中的应用.docx
2020-05-26
CAT监控中心技术总结.doc
2020-05-26
Spring Boot 中文文档 参考手册 中文版.pdf
2020-05-26
互联网金融微服务架构设计.pptx
2020-05-26
即时通讯协议:xmpp
2020-05-26
mysql按周一到周日分段统计
2015-06-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人