![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 63
qiemengdao
这个作者很懒,什么都没留下…
展开
-
用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 · 98 阅读 · 0 评论 -
不依赖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 · 222 阅读 · 0 评论 -
java-在非安全网络上建立可信任安全的通道(2/3)
在不安全的网络环境下进行密钥交互(1/3,前面那一节),容易遭受中间人攻击,什么是中间人攻击,请google it。 通信的双方必须是相互信任的,在这个基础上再进行密钥协商才是可靠的。那么,如何建立信任关系呢? 我以前的几篇博文介绍了用如何 用 Java编程方式生成CA证书 以及用CA证书签发客户证书。 现在假设,Alice和Bob的证书都是被同一个CA atlas签发的...原创 2012-10-05 19:19:42 · 104 阅读 · 0 评论 -
java-在非安全网络上建立可信任安全的通道(1/3)
看到标题,几乎所有人都会想到SSL,但SSL比较重量级,我想做的是只利用java的JCE体系(不是JSSE)在非安全网络环境下建立起一个可信任的、安全的通道。 所以这篇博文包括两个主题:可信任和安全。这一节只考虑如何交互密钥。下一节(2/3)讨论如何建立信任关系,并在可信关系上交换密钥(防止中间人攻击)。 非对称密钥不适合做通道加密,通道加密必然使用...原创 2012-10-05 18:46:04 · 90 阅读 · 0 评论 -
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 · 656 阅读 · 0 评论 -
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 · 2120 阅读 · 0 评论 -
netty做Pipe一端快一端慢时防止内存溢出进行的操作
前段时间用netty3.x做了一个pipe的功能,读的速度很快,写的速度很慢,结果读总是把内存耗光(来不及写写到pipe的另一端),后面解决了这个问题。原来的pipe的代码: public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { inboundCh...2013-05-23 17:12:39 · 204 阅读 · 0 评论 -
为什么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 · 153 阅读 · 0 评论 -
Java系统时钟几个值得思考的问题
System.currentTimeMillis()是依赖于系统时钟的,也就是说,如果你把自己的系统时钟更改了,这个函数的返回会立即生效,变成更改后的值;System.nanoTime()主要用于记录一个时间段的长度,或者说一个超时,在这个过程中,你更改系统时钟也不会影响。两个方法的精度一个是毫秒,一个是纳秒,但都是不靠普的(有些系统的时间粒度是10ms),nanoTime()的调用也...2013-04-10 16:48:23 · 137 阅读 · 0 评论 -
Class.getResourceAsStream
Class.getResourceAsStream("abc.properties")方法:1,如果使用“/”开头则从类路径根目录寻找资源;2,没有“/”开头,则选择相对路径,即当前class同包下面找;ClassLoader.getResourceAsStream("abc.properties"):1,不能用“/”开头,只能从根目录寻找。2,根据不同ClassLoade...原创 2013-04-06 14:09:46 · 110 阅读 · 0 评论 -
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 · 865 阅读 · 0 评论 -
泛型类里面获取到泛型的类型
下面的代码可以让你在抽象的泛型类里面获取到泛型的类型[code]abstract class A { Class clazz; void doGetClass() { Type genType = this.getClass().getGenericSuperclass(); Type[] params = ((Parameteriz...原创 2012-03-01 10:15:48 · 126 阅读 · 0 评论 -
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 · 72 阅读 · 0 评论 -
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 · 104 阅读 · 0 评论 -
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 · 274 阅读 · 0 评论 -
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 · 187 阅读 · 0 评论 -
native2ascii 用法解析
mark native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。为什么要进行转码,原因在于程序的国际化。用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]-[options]:表示命令开关,有两个...原创 2011-11-22 16:24:40 · 65 阅读 · 0 评论 -
具有相同属性任务串行有序执行的线程池设计
我有一个这样的线程池的场景,相信很多人都遇到过: 1,每个用户都可以添加多个任务; 2,有很多的用户和很多的任务; 3,每个用户添加的任务必须有序串行执行,即在同一时刻不能有同时执行一个用户的两个任务; 4,实时性:只要线程池线程有空闲的,那么用户提交任务后必须立即执行;尽可能提高线程的利用率。 代码比较简洁,基本满足上述要求:public class SerialThreadExecu...2014-09-04 15:30:08 · 534 阅读 · 0 评论