自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 问答 (1)
  • 收藏
  • 关注

原创 hexo建立github,gitcafe博客并实时同步的要点

把hexo博客的源码和生成的页面实时同步到github和gitcafe。用搜索引擎搜索”github 博客”等关键字会出现大量很好的文章教小白一步步搭建。我这里列出一些关键点,希望可以让你少走弯路。这篇博客的markdown源代码在:https://gitcafe.com/cwjcsu/cwjcsu/blob/master/source/_posts/hexo-github-gitcafe...

2015-10-11 18:45:27 215

具有相同属性任务串行有序执行的线程池设计

我有一个这样的线程池的场景,相信很多人都遇到过: 1,每个用户都可以添加多个任务; 2,有很多的用户和很多的任务; 3,每个用户添加的任务必须有序串行执行,即在同一时刻不能有同时执行一个用户的两个任务; 4,实时性:只要线程池线程有空闲的,那么用户提交任务后必须立即执行;尽可能提高线程的利用率。 代码比较简洁,基本满足上述要求:public class SerialThreadExecu...

2014-09-04 15:30:08 526

不依赖jstack的java 线程dump和死锁检查工具

java线程dump可以使用jdk的命令“jstack  pid”完成,死锁检查可以用jconsole查看到。这两个工具是java调试的常用方法。 我遇到的问题是:在sles11sp3的服务上面测试,上面只有IBM J9 VM jre,默认没有装jdk,装了jdk后发现没有jstack命令,由于系统没有启动图形界面,jconsole也无法使用,最后安装了vnc server,在xter...

2013-10-08 14:41:58 215

netty做Pipe一端快一端慢时防止内存溢出进行的操作

前段时间用netty3.x做了一个pipe的功能,读的速度很快,写的速度很慢,结果读总是把内存耗光(来不及写写到pipe的另一端),后面解决了这个问题。原来的pipe的代码: public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { inboundCh...

2013-05-23 17:12:39 192

JGroups TCP 发现机制解读

jgroups创建一个channel需要创建一个协议栈,协议栈的底层是传输协议,如果使用TCP的话,它的发现机制和心跳是怎么实现的呢? 首先,TCP启动的时候会启动一个SocketServer bind到一个特定的地址然后accept:ConnectionAcceptor。jgroups会给每个TCP socketServer创建一个ConnectionMap<ipAddress-...

2013-05-16 17:52:49 362

为什么InputStream.read()读取一个byte确返回一个int呢?

问题1:为什么InputStream.read()读取一个byte却返回一个int呢?InputStream.read()返回一个unsigned byte [0 - 255],而java里面没有这个类型,所以用int接收。byte的范围是[-128,127],所以如果read()返回的数在[128,255]的范围内时,则表示负数,即 (byte)128=-128 (b...

2013-05-09 16:26:13 148

Java系统时钟几个值得思考的问题

System.currentTimeMillis()是依赖于系统时钟的,也就是说,如果你把自己的系统时钟更改了,这个函数的返回会立即生效,变成更改后的值;System.nanoTime()主要用于记录一个时间段的长度,或者说一个超时,在这个过程中,你更改系统时钟也不会影响。两个方法的精度一个是毫秒,一个是纳秒,但都是不靠普的(有些系统的时间粒度是10ms),nanoTime()的调用也...

2013-04-10 16:48:23 133

原创 Class.getResourceAsStream

Class.getResourceAsStream("abc.properties")方法:1,如果使用“/”开头则从类路径根目录寻找资源;2,没有“/”开头,则选择相对路径,即当前class同包下面找;ClassLoader.getResourceAsStream("abc.properties"):1,不能用“/”开头,只能从根目录寻找。2,根据不同ClassLoade...

2013-04-06 14:09:46 106

原创 logback的SizeBasedTriggeringPolicy和TimeBasedRollingPolicy联合使用问题

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>/var/log/testglog</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBase...

2013-04-01 13:37:27 858

原创 Linux机器克隆后需要修改的网络配置

假设原来的机器是两块网卡,eth0和eth1,克隆以后,MAC也是两块,MAC地址与原来的分别都不一样,但由于系统的一些网络配置没有更新,导致克隆机器的网络启动不了,比如会抛出异常:Bringing up interface eth0: pcnet32 device eth0 does not seepresent, delaying initialization. 或者用ifco...

2013-04-01 11:32:56 493

原创 Linux 下VIM去掉在windows下编辑的文本文件里面回车符号

用VIM打开windows下面创建的文件会出现^M字符,它表示一个回车符,(windows下编辑器敲击回车键,键入\r和\n,表示回车和换行,linux下只会有换行符\n)下面的方式可以去掉所有回车符::%s/^M//g其中,^M不是输入^和M,而是输入:1,Ctr+V;2,回车//g替换成空字符 ...

2013-01-23 20:23:20 219

原创 Java包装类Integer比较

1,用符号==比较两个对象,意味着比较他们是否是统一个对象。2,代码Integer b = 1; 自动装箱,通过javap可以看出起始会调用:     invokestatic #16; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;       即调用Integer.valueOf(int)3,代码int a =...

2012-10-18 16:41:53 95

原创 Future机制用于并发编程时的死锁检测

Netty源码里面有个类:DeadLockProofWorker,源码如下:  public static final ThreadLocal<Executor> PARENT = new ThreadLocal<Executor>(); public static void start(final Executor parent, final Run...

2012-10-18 14:51:07 268

原创 WIN7下面 ARP攻击的检测与处理/静态ARP设置

win7下防止ARP攻击:你需要知道你的网关,通常就是路由器的物理地址(MAC)1,管理员权限运行cmd;2,arp -a     查看当前ARP项,注意网关的物理地址,如果与实际的不符,那么你肯定无法上网,此时你遭受了ARP攻击。3,运行 netsh i i show in     将显示你的所有网卡的索引号Idx,比如,我的本地连接的idx是11:    ...

2012-10-07 13:21:50 159

原创 java-在非安全网络上建立可信任安全的通道(3/3)

       这篇博文的前两节(1/3,2/3)已经介绍了如何在不安全网络环境下面相互认证双方的身份(建立信任的连接),以及在此基础上进行可靠的密钥协商(DH算法)。       这一节将介绍如何使用协商好的密钥对通道上流淌的数据进行加密。我将使用AES作为对称密钥的算法,密钥强度:128位。这个过程可以简单概括成下面两个步骤: 利用协商好的key创建一个可以用于加密和解密的Aes ...

2012-10-06 07:25:05 74

原创 java-在非安全网络上建立可信任安全的通道(2/3)

在不安全的网络环境下进行密钥交互(1/3,前面那一节),容易遭受中间人攻击,什么是中间人攻击,请google it。 通信的双方必须是相互信任的,在这个基础上再进行密钥协商才是可靠的。那么,如何建立信任关系呢? 我以前的几篇博文介绍了用如何 用  Java编程方式生成CA证书 以及用CA证书签发客户证书。 现在假设,Alice和Bob的证书都是被同一个CA atlas签发的...

2012-10-05 19:19:42 100

原创 java-在非安全网络上建立可信任安全的通道(1/3)

      看到标题,几乎所有人都会想到SSL,但SSL比较重量级,我想做的是只利用java的JCE体系(不是JSSE)在非安全网络环境下建立起一个可信任的、安全的通道。      所以这篇博文包括两个主题:可信任和安全。这一节只考虑如何交互密钥。下一节(2/3)讨论如何建立信任关系,并在可信关系上交换密钥(防止中间人攻击)。      非对称密钥不适合做通道加密,通道加密必然使用...

2012-10-05 18:46:04 85

原创 java编程方式用CA给证书进行签名/签发证书

这些代码首先加载CA证书,然后分别用CA给Alice和Bob签发一个证书并保存到resource/目录下面,用jks格式存储。CA证书也是用java编程方式制作的,制作过程请看我的上一篇博客。 public static void main(String[] args) throws KeyStoreException, NoSuchAlgorithmException, Ce...

2012-10-05 18:02:09 646

原创 java编程方式生成CA证书

下面是java编程方式生成CA证书的代码,使用的是BC的provider。生成CA证书与生成普通证书的区别是:1,生成CA证书时,issuer和subject一致;2,在ContentSigner.build()的时候(签名的时候)使用的是与待签名公钥相应的私钥。下面代码,CA生成以后把私钥和证书一起以一个key entry的方式存入一个jks文件。 static { Sec...

2012-10-05 17:28:08 2106

原创 安全领域的一些概念

对称密钥/非对称密钥/key/ciphersymmetric cipher对称密钥:使用相同的密钥进行加密和解密,速度很快Asymmetric Cipher:非对称密钥:使用公钥加密,私钥解密,速度很慢     key和cipher的区别:可以把cipher看成一台机器,它需要插入一个key才可以工作,可以从一端A插入明文,另一端B输出密文,或者从B插入密文,从A输出明文。      实际...

2012-10-05 16:41:38 204

原创 linux document viewer 中文乱码、方块

1,cp 一个windows上的所有中文字体到linux机器: copy C:\WINDOWS\Fonts\所有中文字体文件 =>/usr/share/fonts/2,删除下面的字体:(最好先备份)sudo rm /etc/fonts/conf.d/49-sansserif.conf...

2012-09-26 12:36:09 215

原创 opensuse 上面运行eclipse崩溃的问题

应该很少有人在opensuse上面开发java吧,如果有的话,几乎都会遇到一个很蛋疼等问题,就是eclipse没法工作,点一个什么菜单就崩溃了。你可以通过更改参数MALLOC_CHECK_为0解决:[code]export MALLOC_CHECK_=0[/code][b]或者这样启动eclipse: MALLOC_CHECK_=0 ./eclipse[/b] ...

2012-05-23 17:28:10 80

原创 泛型类里面获取到泛型的类型

下面的代码可以让你在抽象的泛型类里面获取到泛型的类型[code]abstract class A { Class clazz; void doGetClass() { Type genType = this.getClass().getGenericSuperclass(); Type[] params = ((Parameteriz...

2012-03-01 10:15:48 120

车羊问题的一种简洁证明

在csdn上看到一篇关于车羊问题的文章(http://blog.csdn.net/naturebe/article/details/7272232),我编了个程序证明了结论,然后给出了一种简洁的数学证明。如下: 车羊问题(Car and Goats problem)又叫蒙提霍尔问题(Monty Hall Problem)或三门问题。这个问题来源于美国电视娱乐节目Let’s Make a...

2012-02-23 11:11:15 173

原创 First JNI

http://hi.baidu.com/fwmf/blog/item/849c1cf7ece36c3a730eecee.htmlubuntu 11.04:cd to a dir:1,vim HelloWorld.java:[code="java"]public class HelloWorld { private native void print()...

2012-02-13 14:34:11 65

原创 LInux 压缩解压命令

linux下解压命令大全.tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 ....

2012-02-07 11:05:25 74

原创 Java在并发环境下设置唯一标识

使用hashcode[code] static final ConcurrentMap allObjects = new ConcurrentHashMap(); private static Integer allocateId(Object obj) { Integer id = Integer.valueOf(System.identityHashCo...

2012-02-07 11:02:55 182

原创 tomcat配置https连接

1.首先用jdk自带的工具keytool生成一个"服务器证书"a.命令行进入$JAVA_HOME/bin目录($JAVA_HOME为jdk的安装目录)b.输入:keytool -genkey -alias tomcat -keyalg RSA -keystore C:\tomcat.keyc.提示输入密码,使用Tomcat的默认值changeitd.输入相关信息后确认(中国国码:8...

2012-02-07 10:50:35 67

位图排序算法的一个实践

适应场景:1,输入的数据限制在相对较小的范围内;2,数据没有重复;3,对于每条记录而言,除了单一整数外,没有任何其他相关联的数据。2,要求输入:一个最多包含n个正整数的文件F1,每个数小于n(n=1000000),而且整数没有重复;输出:包含按升序排列的整数列表的文件F2;约束:不超过1M的内存空间,运行时间10秒以内。3,实现概要可以用一个20位长度的0,1字...

2012-02-02 15:01:48 95

原创 快速获取[0,n]之间的k个不同的随机顺序的随机整数

如果生成位于0到n-1之间的k个不重复的随机顺序的整数呢?[code]/** * 随机抽取[0,n)之前的k个不同的数并随机排序,(k n) { k = n; } int[] rets = new int[k]; // 保存取出的随机数 int[] array = new int[n];// 定义初始数组 for (int i = 0; i < n; ...

2012-02-02 13:18:10 171

Project Euler Problem 80-高精度开方-牛顿逼近法

It is well known that if the square root of a natural number is not an integer, then it is irrational. The decimal expansion of such square roots is infinite without any repeating pattern at all.T...

2012-01-05 12:09:32 149

原创 Project Euler Problem 76-整数分拆

It is possible to write five as a sum in exactly six different ways:4 + 13 + 23 + 1 + 12 + 2 + 12 + 1 + 1 + 11 + 1 + 1 + 1 + 1How many different ways can one hundred be written as a ...

2012-01-02 18:49:41 91

原创 Project Euler Problem 75

It turns out that 12 cm is the smallest length of wire that can be bent to form an integer sided right angle triangle in exactly one way, but there are many more examples.12 cm: (3,4,5)24 cm: (6...

2012-01-02 18:18:55 76

原创 用Java模拟Http请求

1),利用httpclient4.× 写一个http的客户端,模拟浏览器请求,[code]public void post(List payload) throws Exception{ HttpPost post = new HttpPost(uri); HttpEntity result = null; try { ...

2011-12-29 19:11:45 90

原创 Ubuntu在系统栏 给应用程序添加提示图标

系统栏解除限制Ubuntu 11.X对顶部面板右上角的通知区域(系统托盘)采用了白名单制度,只有支持 Indicators 并位于白名单的部分程序才会被显示在系统托盘中,目前支持的程序有:'JavaEmbeddedFrame', 'Wine', 'scp-dbus-service',。安装 dconf-tools: sudo apt-get install dconf-tools在...

2011-12-26 09:47:50 331

原创 Fix the Package System is Broken error in Ubuntu

当有包冲突时,ubuntu更新会出现 Package System is Broken error的异常,解决方法:http://www.liberiangeek.net/2010/11/fix-package-system-broken-error-ubuntu-10-0410-10-maverick-meerkat/简要描述:通过 Synaptic Package Manager.找...

2011-12-24 17:31:18 118

原创 二分搜索专题2-在有序二维数组中搜索一个元素

1,设二维数组p的每行每列都按照下标递增的顺序递增。用数学语言描述如下:p满足(1),对任意的x1,x2,y,如果x1

2011-12-22 17:16:38 91

原创 二分搜索专题1-在非递减数组中寻找满足A[i]=i的i

在javaeye上看到了一个二分搜索相关的提问http://www.iteye.com/topic/1118606,我设计了一个简洁高效的算法,这里贴出来:题目:对于一个非递减数组A,存在A[i]=i,求o(lgn)的算法找出i,分析:1,对于任意的j和i,如果j>i则A[j]>=A[i]; 2,假设所求的解是I,即A[I]=I,则对任意的j,如果A[j]>j,可以得到I...

2011-12-22 15:06:36 157

原创 ubuntu 更改默认的分辨率

我安装完ubuntu11.04后,分辨率是1024×768,不好看,而且从System Setting -> Monitors 进行设置也无法调上去,后面在网上看到一篇博客:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=346103后,修改分辨率成功.上文作者写出了自己的探索过程,我就直接写出最简单的设置方法吧:主要过程:...

2011-12-22 09:49:24 1052

原创 win7 下查看主板信息

下边电脑维修教程网介绍几种不用打开机箱的方法就可以查看主板型号: 查看主板型号方法之一:开机后屏幕上出现bios自检画面时候按下pause键,上面显示了cpu、内存等信息。最下面的一行字里面则是主板型号(不同的主板显示的位置也有所不同) 查看主板型号方法之二:在“我的电脑”上点击右键——属性——硬件——设备管理器,从树结构中“系统设备”可以看到你主板的芯片组型号,...

2011-12-19 16:31:41 325

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除