Java技术
文章平均质量分 78
挖掘时下流行的Java技术
长乐子
这个作者很懒,什么都没留下…
展开
-
工欲善其事,必先利其器——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 · 896 阅读 · 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 · 5785 阅读 · 1 评论 -
Java算法之余弦相似性算法
关于余弦相似性算法,大家可以看这篇文章:TF-IDF与余弦相似性的应用(二)这篇文章是基于分词的,里面有关于分词的知识。其重点在于余弦算法:这个算法的场景是这样的:如何从一系列的字符串列表中找出一个相似度最高的结果返回出来。如果碰到这样的问题,就应该考虑余弦相似性算法。例如:在一个国家名的列表中,有china(中国)这个字符串,而输入端获得的是chino,最后一个字符不同。原创 2014-01-24 15:16:59 · 3095 阅读 · 0 评论 -
Java设计模式泛型化之状态模式
通常情况下,我们这么理解它:当你有多个不同状态,且有复杂的变化的时候。这个模式可以帮助你把视线分离开。它的结构是这样的:一个抽象的状态类(通常是抽象类),这个抽象类中定义了一个统一的调用句柄(handler),而且它定义了一系列对应状态的行为;几个实现类去继承这个抽象类一个统一调用句柄(handler)一个调用者代码结构如下:状态类的抽象类public abstrac原创 2014-01-22 16:27:33 · 1175 阅读 · 0 评论 -
Java设计模式泛型化之观察者模式
在观察者模式中有两种不同类型的对象:被观察者(subject)观察者(observer)通常这个设计模式的结构是这样:被观察者决定了谁可以获得它的更新或者谁不可以,并且负责将变化通知给观察者。观察者负责来执行这些变化。一个被观察者接口一个观察者接口一个或多个被观察者实现类一个或多个观察者实现类请看如下代码结构:被观察者接口public interface My原创 2014-01-22 15:18:59 · 1699 阅读 · 0 评论 -
Java设计模式泛型化之组合模式
组合模式通常用来描述一个类似树状的结构。一个“根”节点几个“枝”节点几个“叶”节点其代码结构如下:抽象组件层(视为任何一种类型节点的抽象)public abstract class Component { // structure maintenance operation public void add(Component component) {原创 2014-01-17 15:34:46 · 1590 阅读 · 0 评论 -
Java设计模式泛型化之迭代器模式
通常情况下,如果你要处理一组相同对象的集合,你会怎么做?把它们放进List里面,然后再用Iterator方法遍历它们。有没有想过让你自己设计的对象具有这样的iterator()方法?不用自己去一个一个的new它们。好吧,你需要一个这样的结构:一个抽象对象接口(它具有初始化具体对象的方法,迭代器方法)几个具体实现类来实现这样的接口,并具有传参构造函数一个继承了Iterator接口原创 2014-01-16 17:17:33 · 977 阅读 · 0 评论 -
Java设计模式泛型化之桥梁模式
这个模式的理解是这样的:某天你发现有一类事情的完成具有一定的结构,并且这种结构可以套用相当一部分的事物。而且这些事物可以被分类。也可以这么理解:当你发现在同一个抽象层下面有众多的具体实现或者表现的话,而且同时这些实现具有某种共性。那么,桥梁模式可以帮助你把它们分离出来。你可想而知,它们中的某一个肯定保持着对另一个的引用。下面是代码结构:一个针对行为以及表现的抽象层几个行为原创 2014-01-15 15:25:11 · 825 阅读 · 0 评论 -
Java设计模式泛型化之命令模式
简单理解就是:司令->传令官->士兵但是这里隐含了一些东西:命令是怎样的?它的基本结构是:一个抽象的命令接口一个抽象的命令执行者接口一个统一调用类几个具体的命令实现类几个具体的命令执行者实现类一个调用者先看看代码:抽象的命令执行者接口public interface Executor { public void doSomething();原创 2014-01-14 16:24:46 · 1070 阅读 · 0 评论 -
Java设计模式泛型化之装饰模式
装饰模式是Java开发中常见的设计模式之一。我们在Service层的设计实现中就用到了装饰模式。对于它的理解是这样的:在原有已经实现的功能上添加新的功能实现。其结构是这样的:一个原有的抽象层(接口或者抽象类)对应既有抽象层的实现层一个Decorator类来实现原有抽象层一个或多个具体的Decorator类扩展这个Decorator实现一个调用者来看看代码:原有的抽象原创 2014-01-13 16:46:47 · 1517 阅读 · 0 评论 -
Java设计模式泛型化之建造者模式
建造者模式的理解是这样的:一件事情可以分为有限的几个步骤,或者几个部分。规定了各个步骤或部分的建造方法。然后得到一个具体的事物或者完成该事件。其结构是这样的:一个抽象的建造者接口几个具体的建造者实现类一个指挥者一个调用者具体先看看代码:抽象建造者接口public interface Builder { public void buildPartA(); pu原创 2014-01-13 11:05:13 · 2233 阅读 · 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 · 4819 阅读 · 1 评论 -
Java设计模式泛型化之代理模式
这个模式的理解是:让代理类做委托类做的事情。实际上不是代理类做,只是代理类赋值初始化一个委托类来做。下面是代码结构:委托类接口public interface Principal { public void doSomething();}具体的委托实现类public class PrincipalA implements Principal { @Overri原创 2014-01-10 17:02:28 · 1552 阅读 · 0 评论 -
Java设计模式泛型化之策略模式
对于策略模式的理解是这样的:做同一类型的事情,有不同的做法,这依赖于不同的上下文环境。但是有一个统一的模式。就好像某网站对不同等级的用户有不同的折扣一样。下面是代码结构:策略接口public interface Strategy { public void doSomething();}不同策略的不同实现public class StrategyA imple原创 2014-01-10 16:25:49 · 2948 阅读 · 1 评论 -
Java设计模式泛型化之适配器模式
对于这个模式一个简单的理解就是:我要用自己的方式来做你会而我不会的事情。先看代码结构:需要被适配的目标(我会的)public interface Target { public void doSomething();}public class TargetImpl implements Target { @Override public void doSomethi原创 2014-01-10 15:42:37 · 1472 阅读 · 0 评论 -
Java设计模式泛型化之门面模式
我们一般来说是这么理解门面模式的:将做成一件事情分为几个步骤将这些步骤用一个统一的方法概括起来由一个特定的类来负责这个事情的处理从调用者来看,这个调用的接口很简单,通常是一个具有多参数的方法。各个参数通常是各个步骤所需要处理的输入。先看一个简单的门面模式的例子。过程接口public interface Process { public void doProcessA(O原创 2014-01-10 14:28:41 · 1071 阅读 · 0 评论 -
Java设计模式泛型化之抽象工厂模式
抽象工厂模式是对工厂模式在产品扩展上的抽象化。抽象化的目的是为了对产品特性进行扩展。比如,先前,我们的产品接口是这样:public interface Product { public void doSomething();}现在要扩展产品新特性:public interface Product { public void doSomething(); public原创 2014-01-08 16:40:45 · 2128 阅读 · 0 评论 -
Java设计模式泛型化之工厂模式
关于工厂模式,本文就不详述了。大家可以百度。基本的结构是这样的:一个抽象产品(接口或者抽象类)几个具体的产品类去实现这个抽象产品一个工厂类一个调用类下面是示例代码:抽象产品(接口)public interface Product { public void doSomething();}具体产品实现类public class ProductA implem原创 2014-01-08 14:37:44 · 4254 阅读 · 0 评论 -
Java中的泛型之十诫
1. 不要用参数化的类型来强转一个对象2. 不要在异常捕获中使用参数化的类型3. 不要用具体的类型之间的关系来理解参数化类型之间的关系4. 不要用具体的参数化类型来创建一个参数化类型数组5. 不要对具体的参数化类型使用class关键字6. 不要对具体的参数化类型使用instanceof表达式7. 不要用含有通配符的参数化类型来创建对象,数组,捕获异常,instanceof表原创 2014-01-07 17:53:11 · 948 阅读 · 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 · 2312 阅读 · 0 评论 -
Java中的泛型
Java中的泛型可以帮我们解决很多抽象设计层面的问题。但是要想把它用好也不是件容易的事情。本文旨在为理解Java泛型打下基础。本文结构如下:了解泛型泛型有哪几种如何使用泛型1. 了解泛型1.1 泛型的协变问题Java泛型的协变问题是从数组赋值以及集合类中的包含对象引出的。这个问题的原委是什么呢?Java中的数组是协变的(covariant),也就是说任何一个子类的数组都是适原创 2014-01-06 12:50:17 · 3289 阅读 · 0 评论 -
基于Java的轮盘赌随机数(或者说权重随机数)的实现
首先,轮盘赌这种东西,大家应该不陌生吧。实在不清楚,可以百度。简要说来,一个随机产生的数字,为我们指定了轮盘中的某一个扇区。或者说,这个随机数指示出了相应的权重范围所对应的数字。很拗口?那就来举个例子吧:假设,我们有个字符串数组:String[] a = {"A", "B", "C", "D"};同时,我们给这个数组中的每一个元素设定一个权重,也有的说出现的概率等。总之,下面这组数原创 2013-12-16 17:40:02 · 5771 阅读 · 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 · 2972 阅读 · 0 评论 -
如何利用Java的反射机制获取类属性(filed)以及对应的实例的值?
首先,我们要了解到获取任意类实例的值有两种不同的方法:通过Field.get(Object instance)方法来获取值。但是这个方法会被访问修饰符限制。于是,isAccessible()和setAccessible()方法成了法宝;通过Field.getName()以及Method.getName()这两者的比较来找到对应的getter()方法,进一步调用invoke(Object i原创 2013-12-10 17:36:18 · 1530 阅读 · 0 评论