
JavaSE
文章平均质量分 67
tigerlchen
这个作者很懒,什么都没留下…
展开
-
如何设计好用的API和为什么它很重要
为什么API设计对重要API是公司的一项巨大的资产 客户大量的投资:购买,写,学习 停止使用一个API的代价过高 成功的公共API可以获得大量用户API也能是公司的一项巨大的负债 不合格的API导致无止境的支持要求公共的API是永恒的-做得正确只有一次机会--------------------------...原创 2011-04-14 22:05:32 · 194 阅读 · 0 评论 -
Java BIO NIO 机制原理资料整理
转自:http://www.xiaoyaochong.net/wordpress/?p=43BIO情况下,能支持的连接数有限,一般都采取accept获取Socket以后采用一个thread来处理,one connection one thread。无论连接是否有真正数据请求,都需要独占一个thread。Server端通常由一个thread来监听connect事件,另外多个thread来监...原创 2012-12-12 14:33:08 · 141 阅读 · 0 评论 -
Java AIO 入门实例
原文出处:http://tigerlchen.iteye.com/blog/1747221 Java7 AIO入门实例,首先是服务端实现:服务端代码SimpleServer: public class SimpleServer { public SimpleServer(int port) throws IOException { final...原创 2012-12-13 16:15:02 · 274 阅读 · 0 评论 -
PHP远程调用Java服务
一种比较常见的语言搭配:PHP + Java。整体架构时这样子,HTML+JS做前端,PHP用作控制层,Java实现服务层,MYSQL用作数据持久。这也是常用的互联网架构。问题来了,PHP和Java这两门语言怎么互操作呢?方式一,Web Service。太笨重。 方式二,选用一个REST框架,将Java服务适配成REST服务,PHP通过HTTP访问的方式实现对Java服务的远程...原创 2012-12-18 14:16:38 · 309 阅读 · 0 评论 -
Java Comparable接口分析与实践
此接口对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方法。 实现此接口的对象列表(和数组)可以通过Collections.sort或者Arrays.sort进行自动排序,这个两个排序实现使用的时快速排序。实现此接口的对象可以用作有序映射(SortedMap<T,V>)中的键或者(SortedSet<T>)...原创 2012-12-20 14:22:15 · 134 阅读 · 0 评论 -
Java Channel解析与实例
文件IOFileChannel是处理文件IO中的核心Channel实现。FileChannel不能直接构建,只能通过FileInputStream,FileOutputStream,RandomAccessFile通过getChannel()获得FileChannel实例对象,获得的FileChannel对象的权限也由相关的File对象所限制,也就说说FileInputStream所获得的Ch...原创 2012-12-24 16:09:52 · 253 阅读 · 0 评论 -
Java NIO选择器Selector
Selector消息选择器一般作为SelectableChannel对象的多路复用器。 可以通过SelectableChannel类的open方法创建选择器,这个方法将使用系统默认选择器提供者(SelectorProvider)创建新的选择器。页可通过调用自定义选择器提供者的openSelector方法来创建选择器。通过选择器的close方法关闭选择器之前,它一直保持打开状态。 通...原创 2012-12-27 13:07:16 · 133 阅读 · 0 评论 -
Java NIO实例
一个可运行的简单NIO实例,首先是一个抽象的服务端类AbstractNIOServer public abstract class AbstractNIOServer implements Runnable { // 要监听的端口号 protected int port; // 生成一个信号监视器 protected Selector s;...原创 2012-12-28 09:48:51 · 115 阅读 · 0 评论 -
Java简单迭代器例子
一直好奇Foreach的语法,想ArrayList和HashMap,为什么foreach就可以遍历呢,今天自己做了一个简单的实现。 public class SimpleForeach<T> implements Iterable<T>, Iterator<T>{ private T[] t; /** ...原创 2013-01-04 14:18:47 · 254 阅读 · 0 评论 -
Java原子变量与ABA问题(转发)
原文地址:http://www.xiaoyaochong.net/wordpress/?p=201 | 逍遥冲 ABA问题是一种异常现象:如果在算法中的节点可以被循环使用,那么在使用“比较并交换”指令时就可能出现这个问题(如果在没有垃圾回收机制的环境中)。在CAS操作中将判断“V的值是否仍然为A?”,并且如果是的话就继续执行更新操作。在大多数情况下,这种判断是足够的。然而,有时候还需要...原创 2013-01-07 23:12:50 · 292 阅读 · 0 评论 -
Java7 ForkJoin入门实例
本文转自:http://www.xiaoyaochong.net/wordpress/?p=314Java7引入了Fork Join的概念,来更好的支持并行运算。顾名思义,Fork Join类似与流程语言的分支,合并的概念。也就是说Java7 SE原生支持了在一个主线程中开辟多个分支线程,并且根据分支线程的逻辑来等待(或者不等待)汇集,当然你也可以fork的某一个分支线程中再开辟Fork ...原创 2013-02-19 10:37:22 · 123 阅读 · 0 评论 -
Java7 AutoCloseable入门实例
本文转自:http://www.xiaoyaochong.net/wordpress/?p=330AutoCloseable接口,表示一种不再使用时需要关闭的资源。这个接口下只有一个方法,close()。这个方法在try-with-resource语法下会被自动调用,支持抛出Exception,当然它也鼓励抛出更详细的异常。close()建议不要抛出线程中断的InterruptedExce...原创 2013-02-26 10:03:05 · 174 阅读 · 0 评论 -
Java7 使用WatchService监听文件变化
Watch service 用来观察被注册了的对象的变化和事件。例如,在文件系统监控某一个文件目录下文件资源的创建,修改,删除,这个是WatchService的一种实现方式,用来监听文件状态变化的。是WatchService和Watchable两个接口的配合使用,WatchService类似于在观察者模式中的观察者,Watchable类似域观察者模式中的被观察者。 实例如下:@Te...原创 2013-02-26 13:56:18 · 353 阅读 · 0 评论 -
Java7 TransferQueue入门实例
转自:http://www.xiaoyaochong.net/wordpress/?p=354TransferQueue是Java7新加入的一种线程安全的队列,实现了BockingQueue,也就时说这是一个特殊的阻塞队列。TransferQueue目前只有一个实现----LinkedTransferQueue,这是列表结构,意味着它是无边界的Queue。 一般的队列在未满的情况下...原创 2013-03-01 10:10:25 · 220 阅读 · 0 评论 -
JavaSE Buffer与Netty Buffer比较
Buffer数据结构: 3个重要的标记位:limit,position,capacity。limit:读写位置的上线;capacity:容器数组长度;position:当前的读写游标。 ChannelBuffer的数据结构: 3个重要的标记位:readIndex,writeIndex,capacity。readIndex:当前只读的游标位置...原创 2012-12-04 16:15:19 · 223 阅读 · 0 评论 -
SWT/JFace的工具类
自己写的一个SWT/JFace的工具类,有了它,构建Label,Button,Composite,Group等等的基础组件,就变得很容易了。 /** * 布局均为GridLayout,GridData * * @author TigerChen * */public class UIFactory { /** * 防止Text被撑大,而...原创 2012-11-26 14:35:55 · 134 阅读 · 0 评论 -
单例模式
[code="java"]public class Something { private Something() { } private static class LazyHolder { private static final Something INSTANCE = new Something(); } public static Something ...原创 2010-06-23 20:35:23 · 69 阅读 · 0 评论 -
Eclipse JDT Debug
JDT Debug 由几个支持运行和单步调试Java核心的插件组成 org.eclipse.jdt.launching是一个定义Java启动和运行时支持的插件。当你需要启动JVM程序时,你可以使用这个插件。JDT启动与一种叫做启动程序的平台启动设备紧密相关。 org.eclipse.jdt.launching包提供Java平台运行时类。JavaRuntime有一些静态方法的实现,去访...原创 2011-04-12 11:22:00 · 689 阅读 · 0 评论 -
Jaxb工具类
package com.apusic.esb.util.jaxb;import java.io.ByteArrayInputStream;import java.io.File;import java.io.InputStream;import java.io.StringWriter;import java.io.UnsupportedEncodingException;...原创 2011-11-22 09:01:58 · 382 阅读 · 0 评论 -
File工具类
package com.apusic.aomds.common.base.helper.util;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import j...原创 2011-11-22 09:04:58 · 170 阅读 · 0 评论 -
Java File工具类附带MYSQL SQL转HSQL SQL字符串处理
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.ByteArrayOutputStream;import java.io.File;...原创 2011-12-01 14:23:42 · 133 阅读 · 0 评论 -
Mybatis字段映射Map
Mybatis3的资源优先,官方除了用户指南之外,没有别的资料。源码中的单元测试也没有完整的覆盖业务。遇到这样的问题,在一个JavaBean中,有一个Map属性,希望这个属性可以映射到Table中的一列。 public class TaskEntity implements Task, Serializable, PersistentObject { protected...原创 2012-07-04 13:44:13 · 2051 阅读 · 0 评论 -
Java ArrayBlockingQueue源码解析
转自:http://www.xiaoyaochong.net/wordpress/?p=354ArrayBlockingQueue是Java并发框架中阻塞队列的最基本的实现,分析这个类就可以知道并发框架中是如何实现阻塞的。 笔者工作了一两年之后,还不知道阻塞是如何实现的,当然有一个原因是前期学习的东西比较杂,前后端的东西的懂一点,但是了解的不够深刻,我觉得这是编程学习的禁忌,不管是...原创 2013-03-01 17:43:20 · 389 阅读 · 0 评论 -
Netty对象传输
转自:http://www.xiaoyaochong.net/wordpress/?p=363我们知道,Netty使用二进制协议传输对象,那怎么通过Netty进行POJO对象传输呢?我们需要提供一种至支持对象传输的协议,这种协议依然是使用ChannelBuffer作为载体。我们要使用ChannelHandler作为编码和反编码的切入。 假设我们现在只需要读取32位整数,虽然这并不是...原创 2013-03-06 15:45:06 · 462 阅读 · 0 评论 -
Mybatis混合对象单表存储
先吐槽几句,Mybatis的官方文档就只有那一篇User Guide,加上源码覆盖的例子和单元测试,里面覆盖的知识点最多只有7成,剩下的3成功能如果需要用到,那就悲剧了,需选择了看源码,多花一点时间,记得得到巩固,何乐而不为呢。 我的实体对象如下所示。 public class ProcessDefinition { private String...原创 2012-07-12 14:19:39 · 199 阅读 · 0 评论 -
Java容器
Set 一个不包含重复元素的 collection。更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。数学概念集合:一定范围的,确定的,可以区别的事物,当作一个整体来看待,就叫做集合,简称集,其中各事物叫做集合的元素或简称元。 HashSet ...原创 2012-10-28 21:13:05 · 80 阅读 · 0 评论 -
Java并发框架Executor
JavaSE5.0之后Executor内置在API中,极大的方便了并发编程。主要大部分:线程池,调度,Callable(延迟计算),线程安全数据结构(BlockingQueue,ConcurentMap...)。Effective Java的作者在介绍并发编程的时,建议读者使用Executor框架中的封装,二不是自己实现线程池,调度,wait(),notify(),应为在这个框架中都有成熟的封装...原创 2012-08-15 09:39:17 · 98 阅读 · 0 评论 -
Java Socket
比较经典的用法,使用ServerSocket构建服务端,用accpet的方法,阻塞式的等待Socket请求。通常使用多线程对Socket进行消费。 NIO进行Socket编程,可以注册Selector,并且注册到channel中,用观察者模式,做到单线程的方式消费Socket。 SSLSocket String trustStore = config.getT...原创 2012-08-17 09:28:26 · 101 阅读 · 0 评论 -
Java 读取Zip文件中的某个子文件
在test.zip文件中读取test.xml文件内容。 代码如下所示。 File processFile = new File(RESOURCES_BASE_FILE, PROCESS);File file = new File(processFile, "test.zip");ZipFile zipFile = new ZipFile(file);Input...原创 2012-11-26 14:26:22 · 1177 阅读 · 0 评论 -
Eclipse常用快捷键
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对...原创 2013-03-01 15:10:55 · 132 阅读 · 0 评论