- 博客(74)
- 资源 (15)
- 收藏
- 关注
阳光总会在风雨之后洒向苍茫
“理想改变了我们的模样,也让我懂得了,要珍惜朋友的肩膀,听着“朋友的酒”,忽然有点伤感,想起了过去的经历,想起了过去的朋友,很少写总结,新的工作已经开始,总结一下过去也好。----------------------------------------------07年、毕业、广州 从小在农村长大,经历着80后一样的经历,平平稳稳的在07年大学毕业,向往着北上广的大城市生...
2014-11-23 12:42:05
394
使用zookeeper实现分布式共享锁
分布式系统中经常需要协调多进程,多个jvm,或者多台机器之间的同步问题,得益于zookeeper,实现了一个分布式的共享锁,方便在多台服务器之间竞争资源时,来协调各系统之间的协作和同步。package com.concurrent;import java.io.IOException;import java.util.ArrayList;import java.util.Co...
2013-04-13 15:59:39
489
原创 JS操作文件
1、使用之前需要对IE进行设置2、用JS创建并写入数据function CreateFile(){ var fso, tf; fso = new ActiveXObject("Scripting.FileSystemObject"); tf = fso.CreateTextFile("c:\\testfile.txt", true); // 写一...
2012-12-18 10:53:51
222
原创 WebService:Axis客户端调用需要身份验证的CXF服务
CXF服务端代码:1、web.xml配置 <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quo
2012-11-24 12:05:37
435
原创 crontab使用方式介绍
定时任务参数详解如下:crontab -l | crontab -e #*/30 * * * * ntpdate 114.80.81.72*/30 * * * * /usr/sbin/ntpdate 192.168.100.1330 2 * * * /root/accesslogrm.sh*/2 * * * * /usr/local/javaBin/pdsock...
2012-11-11 21:48:52
170
使用axis轻松调用Webservice
使用axis1.4调用webservice有两种简单的方式:1、直接使用axis提供的API调用,适用于webservice接口的参数和返回值都是String的情况。try { Call call = (Call)new Service().createCall(); call.setTargetEndpointAddress("http://192.168.1.234:8080/...
2012-11-10 13:15:06
711
执行java程序时如何引用依赖的jar
在执行java程序时我们可以通过-Djava.ext.dirs来指定依赖的jar的目录,例如:java -Djava.ext.dirs=e:/testjar/lib com.test.TestMain用来执行TestMain类里的main方法,同时我们需要把testmain.jar和它依赖的jar包都放在e:/testjar/lib目录下。...
2012-11-10 12:38:28
904
原创 《编码,藏匿在计算机软硬件背后的语言》读书笔记
1、逻辑门与真值表 2、半加器把两个二进制位的加法分解为加法运算和进位运算 3、全加器+111111 1111111111111如上:半加器只能做右边第一列的计算,因为其他所有列的计算还需要一个进位输入,所以我们需要两个半加器。另外,排除所有的可能以后,两个半加器的进位输出不可能同时为1,根据真值表,我们还需要一个或门。 4、8位加法...
2012-10-28 12:19:36
370
Log4j简单实用配置
#A1为控制台输出,A2为文件输出,R为文件输出,并且按天分割.级别为infolog4j.rootLogger=info,A1,A2,R#将info级别的日志输出到控制台log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.Threshold=infolog4j.appender.A1....
2012-10-27 12:22:23
207
UNIX系统的IO模型
其实并非原创,只是摘录了Stevens的大作《UNIX网络编程》,写下来,一、加深理解和记忆;二、书是借的,记录一下备忘。感谢臻,借我此书一阅,受益匪浅。 6.2 I/O模型阻塞式I/O;非阻塞式I/O;I/O复用;信号驱动式I/O;异步I/O;一个输入操作通常包括两个不同的阶段:1) 等待数据准备好;2) 从内核向进程复制数据;对于一个套接字...
2012-09-12 21:41:58
107
JavaNIO处理长连接
之前在IBM的网站上看到过一篇介绍NIO的文章,收获很大。但文中的代码只适合短连接的情况,长连接时就不适用了。最近恰好要写一个处理长连接的服务,接收日志包,然后打包成syslog形式再转发,所以在它的基础上改了一下。主要改了两个类,一个是Server,因为我们只关注read事件,所以write事件我们暂不处理。另外,在处理完ON_READ事件后,不能执行key.cancel()。pac...
2012-09-12 21:04:13
1039
Int和byte数组之间的转换
有时候和C的程序通信的时候,我们在封装协议时,可能需要将Java里的int值,转换成byte[]后用socket发送。所以我们需要将32位的int值放到4字节的byte[]里。/** * int值转成4字节的byte数组 * @param num * @return */public static byte[] int2byteArray(int num) { b...
2012-08-27 20:25:18
604
用闭锁测试HashMap的并发写入问题
今天无意中看到以前写的代码,是一个单例的工厂模式实现,代码片段如下: private static Map daoMap = new HashMap(); public static Dao createDao(String className) { Dao dao = (Dao) daoMap.get(className); if (dao != null) { ...
2012-08-27 19:39:50
169
原创 LDAP查询分页,基于迭代器的查询分页
LDAP服务器端可以支持分页查询,但是有个前提条件,需要客户端先发送按关键字排序的指令后,才能执行分页查询。排序的过程是比较耗费时间的,需要对服务器做很多优化的操作。 我的方法是在迭代结果集的时候实现分页,见代码: package ldap.page;import java.util.ArrayList;import java.util.Enumera...
2012-08-25 17:26:15
1754
并行计算框架的Java实现--系列三
接上篇并行计算框架的Java实现--系列二 优化锁,之前的锁是采用一个static的Object实现的,这样会有一个问题,如果我创建了多个Executer,那么所有Job都会持有一把锁,既影响性能,也容易出现死锁的情况。所以,改成每个Executer持有一把锁。Executer代码如下: public class Executer { //存储任务的执行结果 private...
2012-07-14 14:38:41
206
并行计算框架的Java实现--系列二
接上篇并行计算框架的Java实现--系列一 。增加对结果的处理:1、修改Job,实现Callable接口public abstract class Job implements Callable<Object> { @Override public Object call() throws Exception { Object result = this....
2012-07-14 08:41:59
151
原创 并行计算框架的Java实现--系列一
最近的工作需要统计一些复杂的报表,为了提高效率,想用多线程去实现,但要在所有线程完成统计任务后,将结果汇总。所以在思考有没有什么办法解决,之所以是“系列一”是因为我想记录下我的思考过程。1、首先设计一个Executer,负责任务的执行和汇总:public class Executer { //计算已经派发的任务数(条件谓词) public static int THREAD_COU...
2012-07-14 07:38:07
312
原创 ant初探
前些天和同事交流,他说ant非常好用,他一直在用,学习资料共享后。这几天研究了一下,还真是不错,这里感谢河东的分享。之前做过一个java的后台项目需要引入很多jar包,先是用fatjar的方式,将整个工程打成一个jar包进行发布的,一旦修改又要重新打包,上传服务器,费时费力。后来研究了一下MANIFEST.MF文件,可以将引用jar配置到这个文件里,虽然是成功了,但MANIFEST.MF的配置...
2012-06-29 13:38:15
115
原创 基于事件的 NIO 多线程服务器
JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题,在 NIO 中使用多线程,主要目的已不是为了应对每个客户端请求而分配独立的服务线程,而是通过多线程充分使用用多个 CPU 的处理能力和处理中的等待时间,达到提高服务能力的目的。 多线程的引入,容易为本来就略显复杂的 NIO 代码进一步降低可读性和可维护性。引入良好的设计模型,将不仅带来高性能、高可靠的代码,也将带来一个惬意的...
2012-06-27 17:06:06
100
原创 httpclient访问https服务,可以信任证书
private HttpClient initHttpClient() { if(httpclient == null){ try { X509TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] arg0, String ar...
2012-06-02 00:48:40
319
原创 Java或Web工程中查找配置文件
String path = "";URL url = Thread.currentThread().getContextClassLoader().getResource("/");if(url != null) path = url.getPath();else path = System.class.getResource("/").getPath();...
2012-06-02 00:35:43
129
原创 UNIX系统的IO模型
其实并非原创,只是摘录了Stevens的大作《UNIX网络编程》,写下来,一、加深理解和记忆;二、书是借的,记录一下备忘。感谢臻,借我此书一阅,受益匪浅。 6.2 I/O模型阻塞式I/O;非阻塞式I/O;I/O复用;信号驱动式I/O;异步I/O;一个输入操作通常包括两个不同的阶段:1) 等待数据准备好;2) 从内核向进程复制数据;对于一个套接
2012-05-09 09:36:20
495
转载 如何防止代码腐烂
如何防止代码腐烂转自:http://sd.youkuaiyun.com/a/20111109/307179.html#postcomment 1.程序员的成长新手的代码新手的代码没有经验,基本不考虑代码设计,代码规模稍稍大一点则自己就乱了。进阶者的代码小规模的时候大规模的时候进阶者已经知道如何设计代码,懂得代码规则,但一般局限于一个模块。规模一大,模
2012-04-07 19:34:27
286
如何防止代码腐烂
如何防止代码腐烂转自:http://sd.youkuaiyun.com/a/20111109/307179.html#postcomment1.程序员的成长新手的代码新手的代码没有经验,基本不考虑代码设计,代码规模稍稍大一点则自己就乱了。进阶者的代码小规模的时候大规模的时候进阶者已经知道如何设计代码,懂得代码规则,但一般局限于一个模块。规模一大,模块...
2012-04-07 19:34:00
93
转载 JAVA7 新增工具api
转自:http://www.iteye.com/topic/470396在开源java工具包里,最有名的当属apache commons。其中,以commons lang包最为开发者熟知。但是它作为第三方包存在,或多或少给开发者带来一些不便利。面包牛奶总是会有的,从java7开始,lang包中的一些优秀工具方法,将被正式引入JDK。下面是各个已确定被引入的工具类或方法说明。1,
2012-04-05 23:37:18
1070
JAVA7 新增工具api
转自:http://www.iteye.com/topic/470396在开源java工具包里,最有名的当属apache commons。其中,以commons lang包最为开发者熟知。但是它作为第三方包存在,或多或少给开发者带来一些不便利。面包牛奶总是会有的,从java7开始,lang包中的一些优秀工具方法,将被正式引入JDK。下面是各个已确定被引入的工具类或方法说明。1,...
2012-04-05 23:37:00
108
原创 CentOS 6.2 使用第三方yum源安装更多rpm软件包
转:http://fly.b3log.org/articles/2012/01/30/1327919169428.html引言: CentOS自带的yum源中rpm包数量有限,很多时候找不到我们需的软件包,(例如:要安装网络连接查看软件iftop,默认设置下无法使用yum命令安装),下面教大家在CentOS 6.2中(以32位系统为例,64位系统安装方法一样),使用第三方yu...
2012-02-09 17:53:50
114
如何获取真实的终端IP
在有Apache做负载均衡的时候使用request.getRemoteAddr();获取的是Apache的IP,可以通过如下方式获取,先记下来做个备忘。String ip = request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase...
2011-11-24 11:16:35
330
原创 MANIFEST.MF的应用以及如何读取jar包外的log4j.properties
MANIFEST.MF是jar文件的配置文件,在用eclipse或jar命令生成jar包,都会在jar文件里生成这个文件,默认的MANIFEST.MF对我们来说没有什么意义,需要手工的修改一下,简单的例子如下: Manifest-Version: 1.0Main-Class: com.XMLToolsClass-Path: lib/dom4j-1.6.1.jar lib/jax...
2011-11-23 18:13:20
311
转载 从Hadoop框架与MapReduce模式中谈海量数据处理
转自:http://www.diybl.com/course/3_program/java/javajs/20110826/558997.html从hadoop框架与MapReduce模式中谈海量数据处理前言 几周前,当我最初听到,以致后来初次接触H
2011-10-02 22:07:51
320
从Hadoop框架与MapReduce模式中谈海量数据处理
转自:http://www.diybl.com/course/3_program/java/javajs/20110826/558997.html从hadoop框架与MapReduce模式中谈海量数据处理前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起我的兴趣,在看过介绍它们的文...
2011-10-02 22:07:00
94
java实现的telnet协议
package telnet; import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.util.ArrayList;import java.util.List; /**...
2011-10-02 17:14:02
739
实用的div弹出层
使用div实现的弹出层效果,带遮罩层和透明度效果代码:(function(){ if(window.popwindow)return; var rootEl = null; var maskel = null; var winel = null; window.popwindow = { _init:function(){ rootEl = docu...
2011-10-02 16:23:15
183
转载 Java NIO简介
1. 基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )
2011-09-20 12:43:09
264
Java NIO简介
1.基本概念IO是主存和外部设备(硬盘、终端和网络等)拷贝数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。所有语言运行时系统提供执行I/O较高级别的工具。(c的printf scanf,java的面向对象封装)2.Java标准io回顾Java标准IO类库是io面向对象的一种抽象。基于本地方法的底层实现,我们无须关注底层实现。InputStream\Output...
2011-09-20 12:43:00
169
转载 CentOS 6.0 gcc-c++
CentOS6.0 安装gcc-c++2011-07-16 10:50CentOS 6.0 gcc-c++ 光盘安装(进入root用户)将系统盘放入光驱[root@wenp wenp]# more gcc_intsall.sh #!/b
2011-09-17 14:38:28
1123
CentOS 6.0 gcc-c++
CentOS6.0 安装gcc-c++2011-07-16 10:50CentOS 6.0 gcc-c++ 光盘安装(进入root用户)将系统盘放入光驱[root@wenp wenp]# more gcc_intsall.sh#!/bin/bashmount /dev/cdrom /mntcd /mnt/Packagesrpm -ivh gli...
2011-09-17 14:38:00
221
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人