Java
文章平均质量分 76
长乐子
这个作者很懒,什么都没留下…
展开
-
Java8: Lambda表达式语法
原文:Syntax of Lambda Expressions一个Lambda表达式由下列结构组成:参数列表,像Java的方法中的参数列表,只不过没有类型,被圆括号括起来;一个箭头符号:->表达式的方法体,可以是一句话,也可以是多句话。p -> p.getGender() == Person.Sex.MALE && p.getAge() >= 18 && p.getAge()原创 2014-03-27 14:49:10 · 578 阅读 · 0 评论 -
Java设计模式泛型化之装饰模式
装饰模式是Java开发中常见的设计模式之一。我们在Service层的设计实现中就用到了装饰模式。对于它的理解是这样的:在原有已经实现的功能上添加新的功能实现。其结构是这样的:一个原有的抽象层(接口或者抽象类)对应既有抽象层的实现层一个Decorator类来实现原有抽象层一个或多个具体的Decorator类扩展这个Decorator实现一个调用者来看看代码:原有的抽象原创 2014-01-13 16:46:47 · 1499 阅读 · 0 评论 -
Java设计模式泛型化之建造者模式
建造者模式的理解是这样的:一件事情可以分为有限的几个步骤,或者几个部分。规定了各个步骤或部分的建造方法。然后得到一个具体的事物或者完成该事件。其结构是这样的:一个抽象的建造者接口几个具体的建造者实现类一个指挥者一个调用者具体先看看代码:抽象建造者接口public interface Builder { public void buildPartA(); pu原创 2014-01-13 11:05:13 · 2203 阅读 · 0 评论 -
Java设计模式泛型化之单例模式
单例模式有多个形式。这里就拣其中一种来说说吧。未泛型化的单例模式:public class Singleton { private static final Singleton instance = new Singleton(); private Singleton() {} public synchronized static Singleton getInstanc原创 2014-01-10 18:24:33 · 4777 阅读 · 1 评论 -
Java设计模式泛型化之代理模式
这个模式的理解是:让代理类做委托类做的事情。实际上不是代理类做,只是代理类赋值初始化一个委托类来做。下面是代码结构:委托类接口public interface Principal { public void doSomething();}具体的委托实现类public class PrincipalA implements Principal { @Overri原创 2014-01-10 17:02:28 · 1534 阅读 · 0 评论 -
Java设计模式泛型化之策略模式
对于策略模式的理解是这样的:做同一类型的事情,有不同的做法,这依赖于不同的上下文环境。但是有一个统一的模式。就好像某网站对不同等级的用户有不同的折扣一样。下面是代码结构:策略接口public interface Strategy { public void doSomething();}不同策略的不同实现public class StrategyA imple原创 2014-01-10 16:25:49 · 2901 阅读 · 1 评论 -
Java设计模式泛型化之适配器模式
对于这个模式一个简单的理解就是:我要用自己的方式来做你会而我不会的事情。先看代码结构:需要被适配的目标(我会的)public interface Target { public void doSomething();}public class TargetImpl implements Target { @Override public void doSomethi原创 2014-01-10 15:42:37 · 1451 阅读 · 0 评论 -
Java设计模式泛型化之门面模式
我们一般来说是这么理解门面模式的:将做成一件事情分为几个步骤将这些步骤用一个统一的方法概括起来由一个特定的类来负责这个事情的处理从调用者来看,这个调用的接口很简单,通常是一个具有多参数的方法。各个参数通常是各个步骤所需要处理的输入。先看一个简单的门面模式的例子。过程接口public interface Process { public void doProcessA(O原创 2014-01-10 14:28:41 · 1058 阅读 · 0 评论 -
Java设计模式泛型化之抽象工厂模式
抽象工厂模式是对工厂模式在产品扩展上的抽象化。抽象化的目的是为了对产品特性进行扩展。比如,先前,我们的产品接口是这样:public interface Product { public void doSomething();}现在要扩展产品新特性:public interface Product { public void doSomething(); public原创 2014-01-08 16:40:45 · 2093 阅读 · 0 评论 -
Java中的泛型之十诫
1. 不要用参数化的类型来强转一个对象2. 不要在异常捕获中使用参数化的类型3. 不要用具体的类型之间的关系来理解参数化类型之间的关系4. 不要用具体的参数化类型来创建一个参数化类型数组5. 不要对具体的参数化类型使用class关键字6. 不要对具体的参数化类型使用instanceof表达式7. 不要用含有通配符的参数化类型来创建对象,数组,捕获异常,instanceof表原创 2014-01-07 17:53:11 · 926 阅读 · 0 评论 -
Java设计模式泛型化之命令模式
简单理解就是:司令->传令官->士兵但是这里隐含了一些东西:命令是怎样的?它的基本结构是:一个抽象的命令接口一个抽象的命令执行者接口一个统一调用类几个具体的命令实现类几个具体的命令执行者实现类一个调用者先看看代码:抽象的命令执行者接口public interface Executor { public void doSomething();原创 2014-01-14 16:24:46 · 1056 阅读 · 0 评论 -
Java设计模式泛型化之观察者模式
在观察者模式中有两种不同类型的对象:被观察者(subject)观察者(observer)通常这个设计模式的结构是这样:被观察者决定了谁可以获得它的更新或者谁不可以,并且负责将变化通知给观察者。观察者负责来执行这些变化。一个被观察者接口一个观察者接口一个或多个被观察者实现类一个或多个观察者实现类请看如下代码结构:被观察者接口public interface My原创 2014-01-22 15:18:59 · 1682 阅读 · 0 评论 -
工欲善其事,必先利其器——HttpStatus Enumeration
关于HTTP Status大家可以参考百度百科:HTTP状态码下面是代码:package com.homeland.myapp.entity;public enum HttpStatus { CONTINUE(100, "CONTINUE", "Continue"), SWITCHING_PROTOCOLS(101, "SWITCHING_PROTOCOLS"原创 2014-02-18 12:48:20 · 873 阅读 · 0 评论 -
CXF:服务接口(RESTful风格)设计中的注解(Annotation)
在应用CXF框架的过程中有很多种注解(Annotation),它们有的放在接口的开头,有的放在方法的开头,还有的放在参数列表中。下面分别来说说怎么使用它们。1. 参数列表中的注解1.1. @PathParam这种注解是负责捕获URL路径中的参数值。例如:http://host:port/your-service/{path-param-1}/{path-param-2}同时原创 2014-02-14 11:44:23 · 2747 阅读 · 0 评论 -
Java设计模式泛型化之组合模式
组合模式通常用来描述一个类似树状的结构。一个“根”节点几个“枝”节点几个“叶”节点其代码结构如下:抽象组件层(视为任何一种类型节点的抽象)public abstract class Component { // structure maintenance operation public void add(Component component) {原创 2014-01-17 15:34:46 · 1574 阅读 · 0 评论 -
Google Java编程风格指南
原文:Google Java编程风格指南可以借鉴。转载 2014-01-27 10:16:14 · 574 阅读 · 0 评论 -
Java算法之Levenshtein Distance(编辑距离)算法
有关这个算法的介绍在这里:编辑距离算法以及 字符串相似度算法这里重点是matrix的算法,下面是它的计算过程。首先初始化matrix:要注意这三个值:matrix[i - 1][j] + 1, matrix[i][j - 1] + , matrix[i - 1][j - 1] + t。这里面的t指的是s1[i] == s2[j]两相比较的结果,如果相同就记为0,如果原创 2014-01-24 16:29:41 · 5763 阅读 · 1 评论 -
Java设计模式泛型化之迭代器模式
通常情况下,如果你要处理一组相同对象的集合,你会怎么做?把它们放进List里面,然后再用Iterator方法遍历它们。有没有想过让你自己设计的对象具有这样的iterator()方法?不用自己去一个一个的new它们。好吧,你需要一个这样的结构:一个抽象对象接口(它具有初始化具体对象的方法,迭代器方法)几个具体实现类来实现这样的接口,并具有传参构造函数一个继承了Iterator接口原创 2014-01-16 17:17:33 · 965 阅读 · 0 评论 -
Java算法之余弦相似性算法
关于余弦相似性算法,大家可以看这篇文章:TF-IDF与余弦相似性的应用(二)这篇文章是基于分词的,里面有关于分词的知识。其重点在于余弦算法:这个算法的场景是这样的:如何从一系列的字符串列表中找出一个相似度最高的结果返回出来。如果碰到这样的问题,就应该考虑余弦相似性算法。例如:在一个国家名的列表中,有china(中国)这个字符串,而输入端获得的是chino,最后一个字符不同。原创 2014-01-24 15:16:59 · 3074 阅读 · 0 评论 -
Java设计模式泛型化之桥梁模式
这个模式的理解是这样的:某天你发现有一类事情的完成具有一定的结构,并且这种结构可以套用相当一部分的事物。而且这些事物可以被分类。也可以这么理解:当你发现在同一个抽象层下面有众多的具体实现或者表现的话,而且同时这些实现具有某种共性。那么,桥梁模式可以帮助你把它们分离出来。你可想而知,它们中的某一个肯定保持着对另一个的引用。下面是代码结构:一个针对行为以及表现的抽象层几个行为原创 2014-01-15 15:25:11 · 811 阅读 · 0 评论 -
Java设计模式泛型化之状态模式
通常情况下,我们这么理解它:当你有多个不同状态,且有复杂的变化的时候。这个模式可以帮助你把视线分离开。它的结构是这样的:一个抽象的状态类(通常是抽象类),这个抽象类中定义了一个统一的调用句柄(handler),而且它定义了一系列对应状态的行为;几个实现类去继承这个抽象类一个统一调用句柄(handler)一个调用者代码结构如下:状态类的抽象类public abstrac原创 2014-01-22 16:27:33 · 1157 阅读 · 0 评论 -
Java设计模式泛型化之工厂模式
关于工厂模式,本文就不详述了。大家可以百度。基本的结构是这样的:一个抽象产品(接口或者抽象类)几个具体的产品类去实现这个抽象产品一个工厂类一个调用类下面是示例代码:抽象产品(接口)public interface Product { public void doSomething();}具体产品实现类public class ProductA implem原创 2014-01-08 14:37:44 · 4226 阅读 · 0 评论 -
Java中的泛型
Java中的泛型可以帮我们解决很多抽象设计层面的问题。但是要想把它用好也不是件容易的事情。本文旨在为理解Java泛型打下基础。本文结构如下:了解泛型泛型有哪几种如何使用泛型1. 了解泛型1.1 泛型的协变问题Java泛型的协变问题是从数组赋值以及集合类中的包含对象引出的。这个问题的原委是什么呢?Java中的数组是协变的(covariant),也就是说任何一个子类的数组都是适原创 2014-01-06 12:50:17 · 3239 阅读 · 0 评论 -
Java中的泛型之泛型协变的迷惑
你觉得泛型协变很简单?很容易明白?那么我们来看看下面的代码片段。在继续本文之前,请务必读一下这篇文章:Java中的泛型首先,我们来看看这个。示例一:import java.util.ArrayList;import java.util.List;public class Demo1 { public static void doNothing(List list1, L原创 2014-01-07 11:52:19 · 2295 阅读 · 0 评论 -
Spring3:Spring3+Hibernate4+RESTful+JSON配置下产生的错误结果
我在以前的文章中配置了Employee类的映射关系:http://blog.csdn.net/ironrabbit/article/details/17137445http://blog.csdn.net/ironrabbit/article/details/17143121http://blog.csdn.net/ironrabbit/article/details/17142305原创 2013-12-10 18:03:16 · 806 阅读 · 0 评论 -
如何在Eclipse中创建Maven项目?
在Eclipse的Marketplace中搜寻maven并安装:安装完成后并重启,接着在新建向导中选择Maven项目:点击Next,在下一页中保持默认选项并点击Next:在Filter中输入web并选择org.apache.maven.archetypes:在下一步中输入group ID和artifact ID:此时,你已经有了maven项目的基本架构:原创 2013-12-03 16:05:26 · 780 阅读 · 0 评论 -
如何利用Java的反射机制获取类属性(filed)以及对应的实例的值?
首先,我们要了解到获取任意类实例的值有两种不同的方法:通过Field.get(Object instance)方法来获取值。但是这个方法会被访问修饰符限制。于是,isAccessible()和setAccessible()方法成了法宝;通过Field.getName()以及Method.getName()这两者的比较来找到对应的getter()方法,进一步调用invoke(Object i原创 2013-12-10 17:36:18 · 1511 阅读 · 0 评论 -
Tomcat:如何解决Address already in use: JVM_Bind错误?
在使用Eclipse+Maven的自动发布项目的时候偶尔会碰到这样的问题,错误信息如下:Caused by: java.net.BindException: Address already in use: JVM_Bind :9090 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406) at org.ap原创 2013-12-09 11:36:36 · 2632 阅读 · 0 评论 -
利用Java在指定的范围内生成指定数量的随机数
需求:我们需要在三个不同的数字段产生不同数量的随机数。比如:[0, 10) 6个;[10, 20) 2个;[20, 30) 2个。以下为测试代码:package com.homeland.myapp;import java.util.Random;public class RandomSequence { public static void main(String[]原创 2013-12-06 18:03:26 · 2903 阅读 · 0 评论 -
Tomcat:tomcat 7.x的maven插件mojo
以下链接是tomcat-7.x版本的maven插件:http://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/plugin-info.htmlGoalDescriptiontomcat7:deployDeploy a WAR to Tomcat.tomcat7:deplo原创 2013-12-09 11:49:03 · 1155 阅读 · 0 评论 -
如何设置Hibernate4+PostgreSQL中的自增字段?
首先,在PostgreSQL中是通过创建一个sequence来设置自增字段的,如下:-- Sequence: seq_department_id-- DROP SEQUENCE seq_department_id;CREATE SEQUENCE seq_department_id INCREMENT 1 MINVALUE 1 MAXVALUE 9999999999 ST原创 2013-12-05 10:26:25 · 2033 阅读 · 0 评论 -
Hibernate4:如何配置C3P0连接池以及二级缓存?
首先,你要有对应的JAR包,以下是maven的dependency代码: org.hibernate hibernate-c3p0 4.1.9.Final org.hibernate hibernate-ehcache 4.1.9.Final其次,是hibernate.cfg.xml配置文件:<!DOCTYPE hibernate-configuration原创 2013-12-06 15:05:55 · 1276 阅读 · 0 评论 -
JSWDK的发布目录的更改
当jswdk配置好了之后又有什么可以做的呢?在默认情况下当使用http://localhost:8080打开jsp网页时,我们看到的是jswdk指定的默认页面index.jsp,这个网页位于webpages目录下。当我们查看jsp或者是servlets打开的又是examples目录下的各个jsp页面。比较examples目录和webpages目录,看看这两个目录的目录结构有什么相同之处?是不是都有原创 2003-02-03 19:00:00 · 998 阅读 · 0 评论 -
Hibernate4: Entity的annotation配置
示例是一个简单的Employee的例子:package com.homeland.myapp.entity;import java.io.Serializable;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;impor原创 2013-12-04 16:46:55 · 795 阅读 · 0 评论 -
Spring3:如何配置ContentNegotiatingViewResolver返回JSON或者XML格式数据?
首先,我们回顾下,在基于Spring的RESTful的项目中如果你使用这种形式的URL:http://localhost:8888/myapp/service/xxx/{id}那么一般情况下,你会被导向到一个HTML页面。如果你想让它返回一个JSON格式或者XML格式的数据,那么你不得不在前台做一番格式转换的处理。现在,你只需要在你的spring-servlet.xml文件里面配置一下就可原创 2013-12-11 12:38:37 · 3508 阅读 · 2 评论 -
基于Java的轮盘赌随机数(或者说权重随机数)的实现
首先,轮盘赌这种东西,大家应该不陌生吧。实在不清楚,可以百度。简要说来,一个随机产生的数字,为我们指定了轮盘中的某一个扇区。或者说,这个随机数指示出了相应的权重范围所对应的数字。很拗口?那就来举个例子吧:假设,我们有个字符串数组:String[] a = {"A", "B", "C", "D"};同时,我们给这个数组中的每一个元素设定一个权重,也有的说出现的概率等。总之,下面这组数原创 2013-12-16 17:40:02 · 5733 阅读 · 0 评论 -
基于DAO层的泛型接口设计
首先,来看看UML图:从上图可以看到,GenericDao是整个泛型化DAO层的基础,它主要包括了与数据库相关的四个最基本的操作(CRUD),当然也可以结合Hibernate做出相适应的变化。请参看以下GenericDao代码:package com.homeland.myapp.dao;import java.io.Serializable;import java.ut原创 2013-12-06 15:40:27 · 1613 阅读 · 0 评论 -
如何利用Hibernate4的annotation配置一对一(OneToOne)关系?
首先,来看看ER关系图:这个关系很好理解:一个雇员只有一条属于他/她的详细信息。然后,来看看表结构:CREATE TABLE employee_details( employee_id integer NOT NULL, street character varying(200), city character varying(200), state char原创 2013-12-05 16:15:58 · 1167 阅读 · 0 评论 -
Spring3+Hibernate4:DAO层的非泛型化实现
Spring3中有两个Hibernate集成:一个是Hibernate3;另一个是Hibernate4以下代码是基于Hibernate4的写法,据说比Hibernate3好些。package com.homeland.myapp.dao.impl;import java.util.List;import org.hibernate.Query;import org.hiberna原创 2013-12-12 16:32:24 · 1927 阅读 · 0 评论 -
如何利用Hibernate4的annotation配置一对多(OneToMany)关系?
首先,来看看部门(department)和雇员(employee)的ER关系图:这个关系该的理解为:一个雇员拥有一个部门,一个部门对应多个雇员。从关系上理解,雇员为拥有方(the owning side),部门为被拥有方(the owned side)。当你用Hibenate4的annotation去配置映射关系的时候,有个需要注意的地方:@JoinColumn和@OneToMany中原创 2013-12-05 10:56:31 · 1842 阅读 · 0 评论