- 博客(65)
- 资源 (15)
- 收藏
- 关注
原创 如何在Windows7 Command-line环境中创建新文件
Command line方式命令: copy /y nul build.gradleWindows 7 command line TCCLE 14 Power Shell 命令: New-Item -Path [path] -Name [name] -ItemType [file|directory]比如: new-item build.gradle -itemtype fil
2017-08-17 15:31:08 613
原创 Gradle依赖管理 —— 仓库
在编写build.gradle脚本的时候,依赖管理往往涉及到这几个方面: 从哪个仓库拿Artifacts 这些Artifacts如何参与到compile, runtime, testCompile阶段 发布Publish到哪个仓库中,供其他人使用 基于以上理解,会有三个部分的脚本要编写: repositories dependencies publish
2017-08-17 13:26:00 729
原创 Yarn的版本依赖管理
在持续集成的过程中,package的版本有着复杂而灵活的表达,比如:^1.2.3,~1.2.3,>=1.2.3等。Yarn对版本的理解即语义化版本。版本数字的意义 版本数字的格式:major.minor.patch也就是说,你所看到的版本数字,有三部分组成: major:主版本。有重大变化。 minor:小版本。有功能上的变化。 patch:发布包。修正了一些错误。 Y
2017-08-17 09:42:54 3180
原创 如何使用Angular-CLI源码作为Local package
下载源码 git clone https://github.com/angular/angular-cli.git进入源码目录,运行命令npm link 验证版本 可以看到@angular/cli: local(v1.3.0, branch: 1.3.x),这表明node使用的是local version。切换目录到自己的application,然后运行npm link @angular/
2017-08-16 15:46:34 311
原创 Angular QuickStart V2和V4之间切换
首先,从Github上checkout源代码: git clone https://github.com/angular/quickstart quickstart另外,需要注意它的分支: 此时,如果不切换,那么运行npm install安装的是Angular@4.x.x的版本。如果想要安装Angular@2.4.x的版本,需要运行一下命令git checkout v2。最后,运行命令npm
2017-08-16 11:57:35 242
原创 如何在IntelliJ 2017中通过Gradle加入Scala支持
如何在IntelliJ 2017中通过Gradle加入Scala支持安装IntelliJ Scala插件 利用快捷键Ctrl+Alt+S打开设置,并找到Plugin部分。然后在搜索框中输入scala就会得到如下界面: 创建Gradle工程 创建工程的时候选择Gradle方式。 添加Scala插件 在build.gradle文件中添加apply plugin: 'scala
2017-08-15 11:12:03 413
原创 英语词语辨析:Instead of and In place of的区别
这两者都有“取代”,“代替”,“替换”的意思。Instead of被取代之物还没有发生或出现的时候就已经被替换了。往往含有不合适,不适用之意。取代物比被取代物更好。In place of取代和被取代的双方是平等的,表示两者都是适用的。
2014-03-27 15:04:03 2976
原创 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 585
原创 英语词语辨析:Exchange, Swap, Interchange and Switch
这几个词都有“换”的意思。其实,它们的区别还是比较大的。Exchange有“交换”的意思。把你的给我,我的给你。通常所说的“换位思考”即是“exchange mind"。也有”交易“,”以物换物“的意思。Swap大部分情况下,跟exchange都可以互换。只是exchange用的比较多,较为正式。Interchange这个词强调的是"(两人之间)"交换。
2014-03-01 20:45:33 6607
原创 英文词语辨析:Fulfill, Finish, Complete and Accomplish
这四个词语都有完成的意思,下面来看看各有什么不同。Fulfill有实现,达成之意。例如:实现梦想,to fulfill my dreamFinish完成某事。重点强调“完”。“做完了”和“做成了”是两个不同的意思。Complete强调从头到尾的完成,自始至终都有参与。Accomplish强调“达成”使命或者目标。
2014-02-26 12:38:03 5429
原创 工欲善其事,必先利其器——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 881
原创 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 2755
原创 如何在Eclipse4.3(Kepler)中安装Clover2.4.2?
本来是说Clover-2.4.2只能安装在Eclipse-3.x的版本上,但是呢。。。尼玛坑爹的是我的其它N多插件只能在Eclipse-4.3上玩。咋办咧?先把丫下载下来(当然俺是有License的,不过俺不告诉你。)然后在Eclipse->Help->Install New Software...中安装,如图所示:点击 Archive... 然后选择你下载的东东。然后就一步一
2014-02-13 17:36:44 1189
原创 Eclipse安装插件的时候出现CheckTrust错误的解决办法
运行一下命令:D:\kepler>eclipse -application org.eclipse.equinox.p2.garbagecollector.application -profile epp.package.jee
2014-02-13 16:55:05 1195
原创 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 5770 1
原创 Java算法之余弦相似性算法
关于余弦相似性算法,大家可以看这篇文章:TF-IDF与余弦相似性的应用(二)这篇文章是基于分词的,里面有关于分词的知识。其重点在于余弦算法:这个算法的场景是这样的:如何从一系列的字符串列表中找出一个相似度最高的结果返回出来。如果碰到这样的问题,就应该考虑余弦相似性算法。例如:在一个国家名的列表中,有china(中国)这个字符串,而输入端获得的是chino,最后一个字符不同。
2014-01-24 15:16:59 3078
原创 HTTP请求方法以及它们之间的区别
HTTP协议是一个广泛应用的Internet协议。在其中有8个不同的请求方法:GETPOSTHEADPUTDELETEOPTIONSTRACECONNECT这8个方法中GET和POST最常见。1. GET方法它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数
2014-01-23 13:16:26 2481
原创 Java设计模式泛型化之状态模式
通常情况下,我们这么理解它:当你有多个不同状态,且有复杂的变化的时候。这个模式可以帮助你把视线分离开。它的结构是这样的:一个抽象的状态类(通常是抽象类),这个抽象类中定义了一个统一的调用句柄(handler),而且它定义了一系列对应状态的行为;几个实现类去继承这个抽象类一个统一调用句柄(handler)一个调用者代码结构如下:状态类的抽象类public abstrac
2014-01-22 16:27:33 1159
原创 Java设计模式泛型化之观察者模式
在观察者模式中有两种不同类型的对象:被观察者(subject)观察者(observer)通常这个设计模式的结构是这样:被观察者决定了谁可以获得它的更新或者谁不可以,并且负责将变化通知给观察者。观察者负责来执行这些变化。一个被观察者接口一个观察者接口一个或多个被观察者实现类一个或多个观察者实现类请看如下代码结构:被观察者接口public interface My
2014-01-22 15:18:59 1685
原创 Java设计模式泛型化之组合模式
组合模式通常用来描述一个类似树状的结构。一个“根”节点几个“枝”节点几个“叶”节点其代码结构如下:抽象组件层(视为任何一种类型节点的抽象)public abstract class Component { // structure maintenance operation public void add(Component component) {
2014-01-17 15:34:46 1576
原创 Java设计模式泛型化之迭代器模式
通常情况下,如果你要处理一组相同对象的集合,你会怎么做?把它们放进List里面,然后再用Iterator方法遍历它们。有没有想过让你自己设计的对象具有这样的iterator()方法?不用自己去一个一个的new它们。好吧,你需要一个这样的结构:一个抽象对象接口(它具有初始化具体对象的方法,迭代器方法)几个具体实现类来实现这样的接口,并具有传参构造函数一个继承了Iterator接口
2014-01-16 17:17:33 966
原创 Java设计模式泛型化之桥梁模式
这个模式的理解是这样的:某天你发现有一类事情的完成具有一定的结构,并且这种结构可以套用相当一部分的事物。而且这些事物可以被分类。也可以这么理解:当你发现在同一个抽象层下面有众多的具体实现或者表现的话,而且同时这些实现具有某种共性。那么,桥梁模式可以帮助你把它们分离出来。你可想而知,它们中的某一个肯定保持着对另一个的引用。下面是代码结构:一个针对行为以及表现的抽象层几个行为
2014-01-15 15:25:11 814
原创 Java设计模式泛型化之命令模式
简单理解就是:司令->传令官->士兵但是这里隐含了一些东西:命令是怎样的?它的基本结构是:一个抽象的命令接口一个抽象的命令执行者接口一个统一调用类几个具体的命令实现类几个具体的命令执行者实现类一个调用者先看看代码:抽象的命令执行者接口public interface Executor { public void doSomething();
2014-01-14 16:24:46 1059
原创 Java设计模式泛型化之装饰模式
装饰模式是Java开发中常见的设计模式之一。我们在Service层的设计实现中就用到了装饰模式。对于它的理解是这样的:在原有已经实现的功能上添加新的功能实现。其结构是这样的:一个原有的抽象层(接口或者抽象类)对应既有抽象层的实现层一个Decorator类来实现原有抽象层一个或多个具体的Decorator类扩展这个Decorator实现一个调用者来看看代码:原有的抽象
2014-01-13 16:46:47 1502
原创 Java设计模式泛型化之建造者模式
建造者模式的理解是这样的:一件事情可以分为有限的几个步骤,或者几个部分。规定了各个步骤或部分的建造方法。然后得到一个具体的事物或者完成该事件。其结构是这样的:一个抽象的建造者接口几个具体的建造者实现类一个指挥者一个调用者具体先看看代码:抽象建造者接口public interface Builder { public void buildPartA(); pu
2014-01-13 11:05:13 2213
原创 Java设计模式泛型化之单例模式
单例模式有多个形式。这里就拣其中一种来说说吧。未泛型化的单例模式:public class Singleton { private static final Singleton instance = new Singleton(); private Singleton() {} public synchronized static Singleton getInstanc
2014-01-10 18:24:33 4789 1
原创 Java设计模式泛型化之代理模式
这个模式的理解是:让代理类做委托类做的事情。实际上不是代理类做,只是代理类赋值初始化一个委托类来做。下面是代码结构:委托类接口public interface Principal { public void doSomething();}具体的委托实现类public class PrincipalA implements Principal { @Overri
2014-01-10 17:02:28 1537
原创 Java设计模式泛型化之策略模式
对于策略模式的理解是这样的:做同一类型的事情,有不同的做法,这依赖于不同的上下文环境。但是有一个统一的模式。就好像某网站对不同等级的用户有不同的折扣一样。下面是代码结构:策略接口public interface Strategy { public void doSomething();}不同策略的不同实现public class StrategyA imple
2014-01-10 16:25:49 2915 1
原创 Java设计模式泛型化之适配器模式
对于这个模式一个简单的理解就是:我要用自己的方式来做你会而我不会的事情。先看代码结构:需要被适配的目标(我会的)public interface Target { public void doSomething();}public class TargetImpl implements Target { @Override public void doSomethi
2014-01-10 15:42:37 1456
原创 Java设计模式泛型化之门面模式
我们一般来说是这么理解门面模式的:将做成一件事情分为几个步骤将这些步骤用一个统一的方法概括起来由一个特定的类来负责这个事情的处理从调用者来看,这个调用的接口很简单,通常是一个具有多参数的方法。各个参数通常是各个步骤所需要处理的输入。先看一个简单的门面模式的例子。过程接口public interface Process { public void doProcessA(O
2014-01-10 14:28:41 1059
原创 Java设计模式泛型化之抽象工厂模式
抽象工厂模式是对工厂模式在产品扩展上的抽象化。抽象化的目的是为了对产品特性进行扩展。比如,先前,我们的产品接口是这样:public interface Product { public void doSomething();}现在要扩展产品新特性:public interface Product { public void doSomething(); public
2014-01-08 16:40:45 2100
原创 Java设计模式泛型化之工厂模式
关于工厂模式,本文就不详述了。大家可以百度。基本的结构是这样的:一个抽象产品(接口或者抽象类)几个具体的产品类去实现这个抽象产品一个工厂类一个调用类下面是示例代码:抽象产品(接口)public interface Product { public void doSomething();}具体产品实现类public class ProductA implem
2014-01-08 14:37:44 4234
原创 Java中的泛型之十诫
1. 不要用参数化的类型来强转一个对象2. 不要在异常捕获中使用参数化的类型3. 不要用具体的类型之间的关系来理解参数化类型之间的关系4. 不要用具体的参数化类型来创建一个参数化类型数组5. 不要对具体的参数化类型使用class关键字6. 不要对具体的参数化类型使用instanceof表达式7. 不要用含有通配符的参数化类型来创建对象,数组,捕获异常,instanceof表
2014-01-07 17:53:11 933
原创 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 2300
原创 Java中的泛型
Java中的泛型可以帮我们解决很多抽象设计层面的问题。但是要想把它用好也不是件容易的事情。本文旨在为理解Java泛型打下基础。本文结构如下:了解泛型泛型有哪几种如何使用泛型1. 了解泛型1.1 泛型的协变问题Java泛型的协变问题是从数组赋值以及集合类中的包含对象引出的。这个问题的原委是什么呢?Java中的数组是协变的(covariant),也就是说任何一个子类的数组都是适
2014-01-06 12:50:17 3247
原创 基于Java的轮盘赌随机数(或者说权重随机数)的实现
首先,轮盘赌这种东西,大家应该不陌生吧。实在不清楚,可以百度。简要说来,一个随机产生的数字,为我们指定了轮盘中的某一个扇区。或者说,这个随机数指示出了相应的权重范围所对应的数字。很拗口?那就来举个例子吧:假设,我们有个字符串数组:String[] a = {"A", "B", "C", "D"};同时,我们给这个数组中的每一个元素设定一个权重,也有的说出现的概率等。总之,下面这组数
2013-12-16 17:40:02 5740
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人