索引文件格式概述 发表于 2017-05-27 | 分类于 Lucene 官网介绍:Lucene- Index File Formats 索引层次结构Lucene的索引结构主要分为以下几个层次: 索引(Index) 一个索引对应一个索引目录(文件夹)。 段(Segment) 一个索引可以包含多个段,段之间是相互独立的,可以被分开搜索,不同的段可以合并。 有相同前缀如_0 ... 阅读全文 »
branch upstream 发表于 2017-04-26 | 分类于 Git upstream设置当前工作目录工作分支,跟远程的仓库,分支之间的链接关系。 基本设置123git branch --set-upstream-to=origin/develop或git branch -u origin/develop 将当前分支的upstream设为远程仓库的develop分支。 ... 阅读全文 »
mergetool config:kdiff3 发表于 2017-04-26 | 分类于 Git 查看git config的配置,是否已经配置了merge工具 1git config --global -l 如果没有配置merge tool 12git config --global --add merge.tool kdiff3git config --global --add mer ... 阅读全文 »
JUC集合框架(5): CopyOnWriteArrayList 发表于 2017-03-08 | 分类于 JUC集合框架 适用于读操作远大于写操作的场景。 CopyOnWriteArrayList的读操作不会加锁,写操作也不会阻塞读操作,只有写和写操作之间需要同步等待。 12public class CopyOnWriteArrayList<E> implements List<E>, ... 阅读全文 »
JUC集合框架(4): ConcurrentLinkedQueue 发表于 2017-03-08 | 分类于 JUC集合框架 ArrayBlockingQueue和LinkedBlockingQueue是并发队列的阻塞算法实现,而ConcurrentLinkedQueue是并发队列的非阻塞算法实现。 12public class ConcurrentLinkedQueue<E> extends Abstract ... 阅读全文 »
JUC集合框架(3): BlockingQueue 发表于 2017-03-07 | 分类于 JUC集合框架 BlockingQueue1public interface BlockingQueue<E> extends Queue<E> BlockingQueue可以作为多线程的数据共享通道,关键在于“Blocking”。 方法 描述 boolean add(E ... 阅读全文 »
Tomcat(6): session实现 发表于 2017-03-05 | 分类于 tomcat Http是无状态协议,解决办法: cookie cookie 技术是客户端的解决方案,cookie 就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。 session session技术则是服务端的解决方案,它 ... 阅读全文 »
Java 锁优化 发表于 2017-02-28 | 分类于 Java锁 对象头和锁对象头在 JVM: HotSpot虚拟机中的对象 对象的内存布局 中有提到过,用于保存对象的系统信息。 对象头中有一个称为 Mark Word 的部分,它是实现锁的关键。它是一个多功能的数据区,可以存放对象的 哈希值、对象年龄、锁的指针等信息。对象是否占用锁,以及占用哪个锁就记录在 Mar ... 阅读全文 »
Java 网络通信模型 发表于 2017-02-25 | 分类于 IO 网络通信的基本模型是 Client/Server 模型,也就是两个进程间相互通信,通过三次握手建立连接,连接成功就可以通过 Socket 进行通信。 BIO通信模型采用 BIO 通信模型的服务端 Server,通常由一个 Acceptor 线程负责监听客户端 Clinet 的连接,它接收到客户端连接 ... 阅读全文 »
Java I/O发展 发表于 2017-02-25 | 分类于 IO Java I/O的发展阶段可以分为三个阶段: JDK 1.4 之前的 同步阻塞模式 BIO; JDK 1.4 推出 Java NIO,提供了异步非阻塞 I/O; JDK 1.7 推出 Java NIO 2.0,将原来的NIO类库进行了升级。 BIO从 JDK 1.1 到 JDK 1.3 Java ... 阅读全文 »