2017-05-28 Lanffy
使用java.util.concurrent.ThreadFactory类创建线程 工厂设计模式是Java中最常用的设计模式之一。它是一种创建型设计模式,能够用于创建一个或多个类所需要的对象。有了这个工厂,我们就能集中的创建对象。 继续阅读 »
2016-07-11 JustWe
之前看龙书的时候,龙书提到可以在编译器里用动态的生成的NFA自动机来动态匹配自己的输入串,NFA的简单实现其实写起来非常简单,但是我是实际凭感觉写完之后,却觉得并不是非常的好用,在处理自己已经输入过的串,如果还要处理空串和一个符号对应多种路径就势必涉及回溯,所以我就动态生成了一个DFA,应该不是最简的,但是也能满足需求。 DFA状态 ``` java package sample; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; /** * Dfa 状态 * * @author 继续阅读 »
2015-04-25 Eric Wang
本文给出了五种自然段落的组合方式,具体形式参见底部给出的链接,无积分下载,不管各个段落形式如何,只要段落之间存在换行分隔,该程序即可正确运行。在此提供两种切分段落的方法,分别见下面的法一和法二。 法一: ```java import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; /**         ClassName SplitParagr 继续阅读 »
2014-08-21 veryyoung
Lock是java.util.concurrent.locks包下的接口。 Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题。 锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂。因为锁(以及其它更高级的线程同步机制)是由synchronized同步块的方式实现的,所以我们还不能完全摆脱synchronized关键字(这说的是Java 5之前的情况)。 自Java 5开始,java.util.concurrent.locks包中包含了一些锁的实现,因此你不用去实现自己的锁了。但是你仍然需要去了 继续阅读 »
2013-07-23 码农明明桑
前几天去一个公司参加面试遇到这个问题,Java中Collection和Collections的区别,当时不会,回来从网上找到,现在记录一下。 1、java.util.Collection 是一个 集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack└Set 2、java.util.Collections 是一个包装类。它包含有各 继续阅读 »
2016-08-09 曹强
这里介绍一些gulp比较常用的插件,包括util工具类、stream相关、inject相关、Angular相关、压缩工具类、server相关、特定语言相关等。 more util工具类 这个分类下主要介绍一些辅助工具类的插件。 继续阅读 »
2016-08-17 craneyuan
java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串。它本质上是使用正则表达式去读取不同的数据类型。 Java.io.BufferedReader类为了能够高效的读取字符序列,从字符输入流和字符缓冲区读取文本。 下面是两个类的不同之处: 当nextLine()被用在nextXXX()之后,用Scanner类有什么问题 尝试去猜测下面代码的输出内容; // Code using Scanner Class import java.util.Scanner; class Differ { public static void main(String args[]) { 继续阅读 »
2015-05-17 张炎泼
使用git的同学是不是经常纠结于在开发过程中是应该频繁提交, 还是仔细构造提交点之后再提交? 前者可以让开发更流畅,不必打断思路,但会造成提交历史无法浏览; 后者可以构造漂亮易懂的提交历史,但码码时停下来考虑commit message 怎么造句是不是太影响情绪了。 继续阅读 »
2017-03-08 Eric Wang
很高兴,阿里开源了其内部的Java开发手册,简单点说这是一本Java开发规范,比方说以前我一直在纠结工具类的命名到底是以utils结尾还是以util结尾,那同样地,工具类的包名是以utils结尾还是以util结尾呢?在这本电子书里就给出了很好的说明。再比如定义数组的时候,我们可以这样String strs[] = new String[5];也可以这样String[] strs = new String[5];,到底哪种方式更好呢?显然是后一种,后一种明确的指定了我们所定义的变量是String[]类型。也许你会说,这些都是小问题并不影响我开发,是的,问题不大,但是规范漂亮的代码看起来难道不是更加的赏心悦目吗?把每一次阅读代码的过程看 继续阅读 »
2014-04-17 刘太华
重新翻看看ioloop的源码, 以前只读到ioloop是tornado所有网络服务的基础,比如tcpserver, iostream都是将自己对应的callback通过ioloop挂载在对应的epoll事件上, 以达到非阻塞的效果。 这里总结下ioloop类的构建过程。 ioloop它有一个基类: Configurable定义在util.py文件内,这个Configurable类重定义了new工厂函数, 据源码里的描述是为了形成一个使用new函数来作为构造函数基类, 看这个new方法代码: 继续阅读 »