- 博客(10)
- 收藏
- 关注
原创 java加密解密——单项加密之MD5(算法)
密码学在加密算法上大体可分为单向加密算法、对称加密算法、非对称加密算法。 MD5、SHA是单向加密算法的代表,单向加密算法是数据完整性验证的常用算法。DES是典型的对称加密算法的代表,对称加密算法是数据存数加密的常用算法。RSA算法是非对称加密算法的代表,非对称加密算法是数据传输加密的常用算法。 单向加密算法—–散列函数 单向加密算法主要用于对信息完整性的验证,这种技术就是由散列函数提供的消息
2017-08-19 13:36:58 1169
原创 银行电子回单打印中Base64使用。
最近做银行电子回单打印时存在以下Base64的使用场景: 1:银行回单打印完毕后,生成一个bmp格式的图片,然后将该回单图片作为附件上传到国网的UDS非结构化中心,并挂接到银行交易流水记录对应的凭证中去。 2:回单打印时,由于交易流水记录的摘要字段中存在%等字符导致打印异常。对于以上两种场景,均使用到了Base64编解码,首先对于第一种场景,回单打印完毕后,直接在客户端生成一个b
2017-08-19 12:02:21 1584
原创 DES三层加密工具类
package utils;import java.util.ArrayList;import java.util.List;/** * des三层加密工具类 * @author libaobao */public class EncryDesUtil { public final static String ENCRYSTRING_HEAD = "ISENCRYSTRING";
2017-08-14 19:04:20 707
原创 一个简单的线程池实现
对于服务端的程序,经常面对的是客户端传入的短小(执行时间短、工作内容较为单一)任务,需要服务端快速处理并返回结果。如果服务端每次接受到一个任务,创建一个线程,然后进行执行,当面对成千上万的任务递交进服务器,那么将会创建数以万记的线程,大量线程的创建,消亡和上下文切换很容易就拖垮了服务。 线程池技术能够很好地解决这个问题,它预先创建了若干数量的线程,并且不能由用户直接对线程的创建进行控制,在这个
2017-07-31 21:42:24 232
原创 一个简单的数据库连接池示例
一个简单的数据库连接池, 即一个通过构造函数初始化连接的最大上限,并通过一个双向队列来维护连接,调用方需要先调用fetchConnection(long)方法来指定在多少毫秒内超时获取连接,连接使用完成后,需要调用releaseConnection(Connection)方法将连接放回线程池,连接池的代码实例如下:/** * 简易连接池 */package com.lbbywyt.concur
2017-07-31 20:24:49 986
原创 ThreadLocal的使用
当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本. 如下代码所示:/** * ThreadLocal的使用 */package com.lbbywyt.concurrent;/** * @author libaobao * */public class Th
2017-07-30 19:10:13 248
原创 Thread.join()的使用
如果一个线程A执行了B.join()语句,其含义是:当前线程A等待B线程终止之后才从B.join()返回。线程Thread除了提供join()方法之外,还提供了join(long millis)和join(longmillis,int nanos)两个具备超时特性的方法。这两个超时方法表示,如果线程thread在给定的超时时间里没有终止,那么将会从该超时方法中返回。/** *Thread.join
2017-07-30 17:03:12 259
原创 wait() 和 notify()
等待/通知(wait/notify)的相关方法是任意Java对象都具备的,因为这些方法被定义在所有对象的超类 java.lang.Object上。/** * wait and notify */package com.lbbywyt.concurrent;import java.text.SimpleDateFormat;import java.util.Date;import java.
2017-07-30 16:33:43 224
原创 volatile关键字
关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量的访问均需要 从共享内存中获取,而对它的改变必须同步刷新回共享内存,它能保证所有线程对变量访问 的可见性。 举个例子,定义一个表示程序是否运行的成员变量boolean on=true,那么另一个线程可能对它执行关闭动作(on=false),这里涉及多个线程对变量的访问,因此需要将其定义成为 volati
2017-07-30 16:05:13 158
原创 第一篇文章不应该是hello world, 而是怎么使用markdowm
第一篇文章不应该是hello world, 而是怎么使用markdowm
2017-07-29 23:05:19 285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人