java
文章平均质量分 67
czj4451
这个作者很懒,什么都没留下…
展开
-
System.arrayCopy的使用
首先看一下声明,这是一个native方法:[code="java"] // src - the source array // srcPos - starting position in the source array // dest - the destination array // destPos - starting position in...原创 2012-04-24 13:49:29 · 59 阅读 · 0 评论 -
logback系列之一:输出日志到控制台
logback系列之一:输出日志到控制台[url=http://czj4451.iteye.com/blog/1975220]logback系列之二:输出日志到文件[/url][url=http://czj4451.iteye.com/blog/1975937]logback系列之三:输出日志到文件(滚动)[/url][url=http://czj4451.iteye.com/blog...原创 2013-11-15 11:58:24 · 849 阅读 · 0 评论 -
logback系列之二:输出日志到文件
[url=http://czj4451.iteye.com/blog/1974831]logback系列之一:输出日志到控制台[/url]logback系列之二:输出日志到文件[url=http://czj4451.iteye.com/blog/1975937]logback系列之三:输出日志到文件(滚动)[/url][url=http://czj4451.iteye.com/blog...原创 2013-11-15 15:20:01 · 1063 阅读 · 0 评论 -
logback系列之三:输出日志到文件(滚动)
[url=http://czj4451.iteye.com/blog/1974831]logback系列之一:输出日志到控制台[/url][url=http://czj4451.iteye.com/blog/1975220]logback系列之二:输出日志到文件[/url]logback系列之三:输出日志到文件(滚动)[url=http://czj4451.iteye.com/blog...原创 2013-11-16 23:37:14 · 459 阅读 · 0 评论 -
Java 编程 笔记
1. 方法的[color=red]连续调用[/color]而没有判断,很容易[b]抛出[/b]NullPointerException等[b]异常[/b][code="java"]String infant = session.getAttribute("giant").toString();[/code]session.getAttribute("giant")很可能是nul...原创 2013-07-08 17:03:44 · 83 阅读 · 0 评论 -
logback系列之四:输出日志到不同文件
[url=http://czj4451.iteye.com/blog/1974831]logback系列之一:输出日志到控制台[/url][url=http://czj4451.iteye.com/blog/1975220]logback系列之二:输出日志到文件[/url][url=http://czj4451.iteye.com/blog/1975937]logback系列之三:输出日志...原创 2013-12-03 16:25:21 · 460 阅读 · 0 评论 -
hessian系列之一:Hello world
Hessian是一个Web Service的轻量级二进制协议,使用起来比较简单。随着信息技术的发展,不同语言或平台系统之间的交互越来越多,普通Web Service使用起来会比较复杂,Hessian相对简单。下面介绍下使用Hessian实现异构系统之间的数据交互:Hessian构建服务和客户端一般需要如下四个步骤:1. 定义接口API2. 服务端实现-实现接口...原创 2014-01-06 20:51:28 · 98 阅读 · 0 评论 -
hessian系列之二:上传文件
hessian较早版本通过 byte[] 进行文件传输;4.0之后支持 InputStream 作为参数或返回值进行传输。注意:hessian会读取整个文件,如果文件过大,会导致JVM内存溢出。可以通过控制上传文件的大小,设置合理的JVM参数,以及采用随机读取方式来解决。[size=medium]1. 接口:[/size]一般放在独立的工程中,供服务端和客户端引用...原创 2014-02-17 17:16:15 · 135 阅读 · 0 评论 -
hessian系列之三:与Spring集成
Spring封装了hessian客户端和服务端的通用代码,把实现者和调用者作为bean放到spring容器中管理,简化了开发。实际生产情况,接口项目里面只定义接口,分别为服务端项目和客户端项目所引用:[size=medium]1. 接口项目:[/size]pom.xml文件:[code="xml"]com.john.springhessian-intf1.0...原创 2014-02-17 20:21:42 · 266 阅读 · 0 评论 -
获取本机的IP地址
[size=medium]1. 遍历[color=red]网络接口[/color]来获取IP地址:[/size][code="java"]Enumeration itfList = NetworkInterface.getNetworkInterfaces();if (itfList == null) { System.out.println("--No interfac...原创 2013-09-16 21:17:07 · 115 阅读 · 0 评论 -
Java Enum 源码分析
所有的Java枚举类型都继承自该抽象类。我们用关键字enum来声明枚举类型,不可以通过显式继承该抽象类的方式来声明。[code="java"]public abstract class Enum implements Comparable, Serializable { private final String name; // 当...原创 2013-09-24 20:32:23 · 165 阅读 · 0 评论 -
Java正则表达式实例
[size=medium]题目[/size]: 有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。[size=medium]文件内容[/size]:[b]context.txt[/b][color=blue]“并不是每个人都需要$(qunar)自己的粮食,$(flight.1)每个人都需要做自己穿的$(fligh...原创 2014-08-25 22:50:16 · 111 阅读 · 0 评论 -
[转]压缩解压文件异常
来源:[url]http://www.myexception.cn/program/1054069.html[/url]1、ZIP文件解压的时候出现错误:[color=red]Negative seek offset[/color] 原因:把rar文件直接改为ZIP 必须要 重新压缩为ZIP文件 不能直接修改文件名2、Exception in th...原创 2013-10-29 20:30:16 · 912 阅读 · 0 评论 -
NIO Socket 编程
Java NIO (Nonblocking IO)解决了常规IO的瓶颈:a. 服务端的监听操作会阻塞而无法处理其它事务。多线程方式受到线程池和系统资源的限制,同步操作将会变得复杂。多线程操作磁盘将会导致响应慢甚至死锁。b. 普通I/O通过Stream来操作,开发简单,但是对I/O的控制力弱c. 普通IO的读取或写入会在JVM内存和操作系统内存之间进行复制,开销较大。...原创 2014-04-11 22:48:32 · 135 阅读 · 0 评论 -
NIO UDP 编程
和TCP的SocketChannel类似,UDP的[color=red]DatagramChannel[/color]能充分利用NIO的优势。服务端:Selector, [color=red]DatagramChannel[/color], ByteBuffer客户端:[color=red]DatagramChannel[/color], ByteBuffer区别:...原创 2014-04-17 23:18:09 · 214 阅读 · 0 评论 -
quartz系列之一:Hello World
quartz是一款功能强大的任务调度框架。[color=violet]1. 往pom.xml文件添加如下依赖:[/color][code="xml"] 6.4 3.1.2.RELEASE 1.8.4 1.7.5 org.testng testng ${testng....原创 2013-11-05 15:45:58 · 76 阅读 · 0 评论 -
jvm 参数
a. 对于布尔型的选项:-XX:+ 启用;-XX:- 禁用b. 对于数值型的选项:-XX:=。 单位: k/K - kilobytes m/M - megabytes g/G - gigabytesc. 对于字符型的选项:-XX:=d. jvm对大小写敏感。[color=violet]1. 行为型参数[/color] -X...原创 2013-06-17 16:50:18 · 119 阅读 · 0 评论 -
String的方法使用
[size=medium]1. split()[/size]根据特定字符,把一个字符串分解成n个部分。有两种形式:[code="java"]split(String regex);split(String regex, int limit);[/code]split(regex)调用split(regex, 0)方法limit控制着分解的次数...原创 2012-04-20 12:47:23 · 115 阅读 · 0 评论 -
Object类 源码分析
首先看看方法:[code="java"]public final native Class getClass();public native int hashCode();public boolean equals(Object obj);protected native Object clone() throws CloneNotSupportedException;...原创 2012-04-26 10:00:03 · 58 阅读 · 0 评论 -
JavaBean API的使用
java.beans包下有很多操作JavaBean的类。其中PropertyDescriptor是对属性进行读写操作的类。一个类包含有get和(或)set开头的方法可以被认为是一个JavaBean。如下面的表示坐标的JavaBean:[code="java"]public class Coordinate { private int x; private int y;...原创 2012-04-29 21:44:35 · 280 阅读 · 0 评论 -
[转]java中equals()和hashcode()的关系
虽然Java语言不直接支持关联数组 -- 可以使用任何对象作为一个索引的数组 -- 但在根 Object 类中使用 hashCode() 方法明确表示期望广泛使用 HashMap (及其前辈 Hashtable )。理想情况下基于散列的容器提供有效插入和有效检索;直接在对象模式中支持散列可以促进基于散列的容器的开发和使用。[color=darkblue]定义对象的相等性[/color]...原创 2012-05-18 11:40:31 · 54 阅读 · 0 评论 -
使用keytool工具
J2SDK提供了keytool命令行工具,可以根据指定的参数来创建数字证书。生成的证书或证书库默认保存在命令行当前目录下。[size=small]1. 创建数字证书[/size][code="command"]keytool -genkey -v -alias scent -dname "CN=John,OU=MNG,O=Corp,L=Hangzhou,ST=Zhejiang,...原创 2012-06-14 15:18:21 · 301 阅读 · 0 评论 -
Socket 编程 - 单个客户端
Socket编程就是根据服务器/客户端模型,在Socket API的基础上开发的网络计算机和进程间相互通信的应用。1. 服务端绑定一个端口号,并在此端口监听客户端的连接,线程会block直到有客户连接请求,读取请求信息,然后处理并返回。2. 客户端和指定的服务器的指定端口建立连接,发送请求信息,并等待返回信息。服务端:[code="java"]public class ...原创 2012-03-27 16:51:31 · 78 阅读 · 0 评论 -
Socket 编程 - 多个客户端
在Socket编程 - 单个客户端中,服务端只支持单个客户端的连接请求。如果有多个客户端连接呢?需要有一个线程一直监听客户端请求,收到请求后分发给其它的线程处理。这和jetty的处理方式类似。只需要改动服务端的代码就可以了。服务端:[code="java"]public class MyMultiClientsServer { private static final ...原创 2012-03-28 11:41:15 · 252 阅读 · 0 评论 -
Thread 源码分析
线程是程序的一个执行流程,Java虚拟机允许多个线程同时并发执行。[size=medium]1. 构造方法[/size][code="java"] public Thread() { init(null, null, "Thread-" + nextThreadNum(), 0); } // target - 任务 public Thread(Runnable...原创 2013-03-27 11:40:46 · 72 阅读 · 0 评论 -
[转]CAS的含义及Java中AtomicXXX类的分析
维基百科:In computer science, the compare-and-swap CPU instruction ("CAS") (or the Compare & Exchange - CMPXCHG instruction in the x86 and Itanium architectures) is a special instruction that atomically...原创 2012-03-30 16:55:12 · 80 阅读 · 0 评论 -
jFreeChart 编译和生成报表
报表源文件(后缀名为[color=violet].jrxml[/color])在[color=violet]iReport[/color]的图形化界面中编辑和预览更方便。也可以在程序中通过代码来实现编译、填充和预览: 流程: [color=darkblue]a[/color]. 首先检查编译后的文件是否存在,没有就编译并保存结果(后缀名为[color=violet].jas...原创 2013-04-12 18:23:38 · 107 阅读 · 0 评论 -
Java反射: 数组
[b][size=medium]java.lang.reflect.Array[/size][/b] Java反射机制通过[b]Array[/b]类来处理数组,结合[b]java.lang.Class类[/b],可以在运行时获取数组的相关信息。要和集合包中的[b]java.util.Arrays[/b]区分开,Arrays类是一个[b]数组工具类[/b](排序、遍历数组,将数组转换为集...原创 2012-04-08 19:23:44 · 78 阅读 · 0 评论 -
java中ClassLoader加载资源
加载资源可以用绝对路径和相对路径,但都有局限性。用硬编码的方式不好。比较好的方式是绝对+相对方式。即绝对路径就是应用程序安装的路径,相对路径是资源文件相对于程序根目录的路径。java.lang.ClassLoader不仅可以加载类到内存中,还可以加载其它的资源。[size=large]1. ClassLoader.getResourceAsStream[/size]...原创 2012-04-08 21:15:46 · 146 阅读 · 0 评论 -
Unchecked Exception 和 Checked Exception 比较
[color=blue]Throwable[/color]类是所有异常的始祖,它有两个直接子类[color=blue]Error[/color] / [color=blue]Exception[/color]: Error仅在Java虚拟机中发生动态连接失败或其它的定位失败的时候抛出一个Error对象。一般程序不用捕捉或抛出Error对象。[color=violet]Unchec...原创 2013-04-23 15:55:16 · 103 阅读 · 0 评论 -
Cloneable接口的使用
Cloneable接口声明中没有指定要实现的方法,一个类要实现Cloneable,最好是覆盖Object类的clone()方法。[size=medium]1. 如果类没有实现Cloneable接口,调用类对象的clone方法抛出CloneNotSupportedException。[/size][code="java"]public class CloneableTest ...原创 2012-04-15 22:11:21 · 169 阅读 · 0 评论 -
finally调用流程
一般情况下,finally块的内容是保证要被执行的,即使在try块中抛出了异常,如:[code="java"] try { throw new Exception("Manually throw an exception"); } catch (Exception e) { e.printStackTrace(); } finally { System.out...原创 2012-12-01 20:23:02 · 107 阅读 · 0 评论 -
JVM 四种引用
[size=medium]1. 强引用[/size]指通过普通方式创建一个对象,并把这个对象赋给一个引用变量。只要还有引用变量指向,就不会被JVM回收,即使在内存不足时。[size=medium]2. 软引用[/size]通过SoftReference实现。和强引用类似,区别是当内存不足时会被JVM回收。[code="java"]public sta...原创 2014-04-24 19:56:09 · 115 阅读 · 0 评论