随笔分类 -  java技术

1

java线程系列---读写锁ReentrantReadWriteLock
摘要:获取顺序此类不会将读取者优先或写入者优先强加给锁定访问的排序。但是,它确实支持可选的公平 策略。当公平地构造线程时,线程利用一个近似到达顺序的策略来争夺进入。当释放写入锁定后,将写入锁定分配给等待时间最长的单个写入者,如果有一个等待时间比所有写入者更长的读取者,则将读取锁定分配给读取者 set。当非公平地构造线程时,则不需要按照到达顺序进入锁定。不管是哪一种情况,如果读取者处于活动状态,而某个写入者进入锁定状态,那么在获取写入者并释放写入锁定之前,不会将读取锁定授予任何后续的读取者。重入此锁定允许读取者和写入者按照 ReentrantLock 的样式重新获取读取锁定或写入锁定。在写入线程保持的 阅读全文

posted @ 2012-06-26 15:48 c语言源码 阅读(196) 评论(0) 推荐(0)

java处理加密文件---实现RSA算法
摘要:1RSA算法的原理如下:1.1原理假设我们需要将信息从机器A传到机器B,首先由机器B随机确定一个Key,我们称之为密匙private_key,将这个可KEY始终保存在机器B中而不发出来;然后,由这个private_key计算出另一个Key,我们称之为公匙Public_key。这个Public_key的特性是几乎不可能通过该Key计算生成它的private_key。接下来通过网络把这个Public_key传给机器A,机器A受到Public_key后,利用该key,将信息加密,并把加密后的信息通过网络发送到机器B,最后机器B利用已知的private_key,就可以解开加密信息。1.2步骤RSA算法 阅读全文

posted @ 2012-06-20 17:57 c语言源码 阅读(484) 评论(0) 推荐(0)

java处理加密文件---RSA加密和解密
摘要:public class RSA {public static void main(String []args)throws Exception {String ptext = "he";//获取公钥生成参数KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");kpg.initialize(1024);KeyPair keyPair = kpg.genKeyPair();RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();R 阅读全文

posted @ 2012-06-20 17:56 c语言源码 阅读(500) 评论(0) 推荐(0)

java处理加密文件---数字证书文件格式(cer和pfx)的区别
摘要:java处理加密文件中常见的两种数字证书文件格式(cer和pfx)数字证书文件格式(cer和pfx)的区别1.带有私钥的证书由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。2.二进制编码的证书证书中没有私钥,DER 编码二进制格式的证书文件,以cer作为证书文件后缀名。3.Base64编码的证书证书中没有私钥,BASE64 编码格式的证书文件,也是以cer作为证书文件后缀名。由定义可以看出,只有pfx格式的数字证书是包含有私钥的,cer格式的数字证书里面只有公钥没有私钥。在 阅读全文

posted @ 2012-06-20 14:39 c语言源码 阅读(3816) 评论(0) 推荐(0)

java线程系列---线程范围内共享变量(二)
摘要:通过调用ThreadLocal来实现线程范围内共享变量源代码如下:public class ThreadLocalTest {private static ThreadLocal<Integer> map = new ThreadLocal<Integer>();public static void main(String[] args) {for(int i=0;i<2;i++){new Thread(new Runnable(){public void run(){int data = new Random().nextInt();map.set(data); 阅读全文

posted @ 2012-06-05 20:33 c语言源码 阅读(180) 评论(0) 推荐(0)

java线程系列---线程范围内共享变量(一)
摘要:在java开发中,有时会遇到这种情况,有一变量,其中有三个模块去访问,在多个线程中,确保,在同一线程内,其访问的是同一变量,这时就要实现线程范围内共享变量源代码如下:public class ThreadSharaDate {private static Map<Thread,Integer> map = new HashMap<Thread,Integer>();public static void main(String[] args) {for(int i=0;i<2;i++){new Thread(new Runnable(){public void ru 阅读全文

posted @ 2012-06-05 20:29 c语言源码 阅读(161) 评论(0) 推荐(0)

java搜索---网络爬虫实现
摘要:搜索方面的东西,需要了解网络爬虫方面的知识首先介绍每个类的功能:DownloadPage.java的功能是下载此超链接的页面源代码.FunctionUtils.java 的功能是提供不同的静态方法,包括:页面链接正则表达式匹配,获取URL链接的元素,判断是否创建文件,获取页面的Url并将其转换为规范的Url,截取网页网页源文件的目标内容。HrefOfPage.java 的功能是获取页面源代码的超链接。UrlDataHanding.java 的功能是整合各个给类,实现url到获取数据到数据处理类。UrlQueue.java 的未访问Url队列。VisitedUrlQueue.java 已访问过的 阅读全文

posted @ 2012-05-16 20:24 c语言源码 阅读(545) 评论(0) 推荐(0)

常见的注册界面实现的效果
摘要:我们经常在网上注册的时候,当输入错误的用户名的时候,右边会自动出现相应的警告信息,那么今天我们就介绍一下如何使用jquery实现上述功能!我们先看上面的截图第一:注册页面代码<%@pagelanguage="java"contentType="text/html; charset=GBK"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">< 阅读全文

posted @ 2012-05-16 15:34 c语言源码 阅读(382) 评论(0) 推荐(0)

java线程系列---java5中的线程池
摘要:public class ThreadPoolsTest {public static void main(String[] args) {//ExecutorService threadpools = Executors.newFixedThreadPool(3);//固定线程池//ExecutorService threadpools = Executors.newCachedThreadPool();//缓冲线程池,来多少就开多少线程ExecutorService threadpools = Executors.newSingleThreadExecutor();//单个线程池,死掉了就 阅读全文

posted @ 2012-05-13 14:18 c语言源码 阅读(165) 评论(0) 推荐(0)

系统登录界面的验证码
摘要:一、java后台生成随机验证码package com.code;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;impor 阅读全文

posted @ 2012-05-10 14:27 c语言源码 阅读(423) 评论(0) 推荐(0)

java线程系列---关于线程同步与互斥问题
摘要:例如:子线程运行10次,然后主线程运行100次,按照这样循环50次,如何设计public class ThreadCommunication {public static void main(String[] args) {final Output output = new Output();//子线程new Thread(new Runnable(){public void run(){for(int i=1;i<=50;i++){output.sub(i);}}}).start();//主线程for(int i=1;i<=50;i++){output.main(i);}}}cl 阅读全文

posted @ 2012-04-06 22:35 c语言源码 阅读(198) 评论(0) 推荐(0)

java线程系列---synchronized详解
摘要:记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。 三、尤其关键的是,当一个线程访问object的一个synchronized(thi. 阅读全文

posted @ 2012-04-05 23:09 c语言源码 阅读(460) 评论(0) 推荐(0)

java线程系列---类中的定时器Timer
摘要:常用的定时用法为:new Timer().schedule(new MyTimerTask(), 2000);表示为:2秒之后执行MyTimerTask里的方法new Timer().schedule(new MyTimerTask(), 2000,1000);表示为:2秒之后执行MyTimerTask里的方法并每隔1秒执行一次具体示例如下:private static int count = 0;public static void main(String[] args) {class MyTimerTask extends TimerTask{public void run(){count 阅读全文

posted @ 2012-04-05 23:04 c语言源码 阅读(196) 评论(0) 推荐(0)

关于javaMail邮件发送系统
摘要:javaMail邮件发送系统,大家可以写个通用的底层方法去实现代码如下 //邮件系统添加附件 public static MimeBodyPart createAttachment(String fileName) throws Exception { MimeBodyPart attachmentPart = new MimeBodyPart(); FileDataSource fds = new FileDataSource(fileName); attachmentPart.setDataHandler(new DataHandler(fds)); ... 阅读全文

posted @ 2012-03-30 14:35 c语言源码 阅读(180) 评论(0) 推荐(0)

java线程系列---Runnable和Thread的区别
摘要:在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: package org.thread.demo; class MyThread extends Thread{ private String name; public MyThread(String name) { super(); this.name = name; } public vo... 阅读全文

posted @ 2012-03-01 11:15 c语言源码 阅读(285) 评论(0) 推荐(0)

Hibernate缓存管理
摘要:1、Cache简介缓存(Cache )是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特定时刻按照缓存中的数据来同步更新数据存储源。缓存的物理介质通常是内存,而永久性数据存储源的物理介质通常是硬盘或磁盘,应用程序读写内在的速度显然比读写硬盘的速度快,如果缓存中存放的数据量非常大,也会用硬盘作为缓存的物理介质。缓存的实现不仅需要作为物理介质的硬件,同时还需要用于管理缓存的并发访问和过期等策略的 阅读全文

posted @ 2012-02-27 16:11 c语言源码 阅读(149) 评论(0) 推荐(0)

java反射机制(三)---java的反射和代理实现IOC模式 模拟spring
摘要:IOC(Inverse of Control)可翻译为“控制反转”,但大多数人都习惯将它称为“依赖注入”。在Spring中,通过IOC可以将实现类、参数信息等配置在其对应的配置文件中,那么当需要更改实现类或参数信息时,只需要修改配置文件即可,这种方法在上例的基础上更进一步的降低了类与类之间的耦合。我们还可以对某对象所需要的其它对象进行注入,这种注入都是在配置文件中做的,Spring的IOC的实现原理利用的就是Java的反射机制, Spring还充当了工厂的角色,我们不需要自己建立工厂类。Spring的工厂类会帮我们完成配置文件的读取、利用反射机制注入对象等工作,我们可以通过bean的名称获取对 阅读全文

posted @ 2012-02-23 13:55 c语言源码 阅读(329) 评论(0) 推荐(0)

Spring文件上传
摘要:public void create(HttpServletRequest request, HttpServletResponse response) throws Exception { try { Process process = new Process(); List list = new ArrayList(); try { MultipartHttpServletRequest multipartRequest = null; multipartRequest = (MultipartHttpServletRequest)request; ... 阅读全文

posted @ 2012-02-20 16:22 c语言源码 阅读(150) 评论(0) 推荐(0)

linux下建ftp用户,并限制用户访问路径
摘要:目的是:在linux系统上建立ftp用户,并限制其通过ftp访问时,只能访问用户主目录;其主目录显示路径也是“/”,看不到上级目录。例如,我要建立用户usertest,密码为usertest,主目录为/home/mpsp/ftp/usertest操作系统:RedHatEnterpriseLinuxServerrelease5.4(Tikanga)ftp:vsftp首先,建立linux系统用户usertest:1、以mpsp用户登陆系统,建立usertest的主目录/home/mpsp/ftp/usertest2、以root用户登录linux系统,建立带有主目录的用户,输入命令:[root@-h 阅读全文

posted @ 2012-02-16 10:23 c语言源码 阅读(250) 评论(0) 推荐(0)

如何在Linux环境下安装JDK1.6和Tomcat6
摘要:1、 首先到官方网站下载JDK1.6和Tomcat6JDK下载地址:http://download.java.net/jdk6/Tomcat6下载地址:http://tomcat.apache.org/download-60.cgi由于服务器远在机房,人在公司。如果下载到本地再传到服务器上,这实在是个大工程啊,特别是JDK就70多M。所以可以使用wget直接再服务器下载。于是上网搜索了一把,wget这玩意的功能的确是传说中的很强大。但只需要下载两个文件,所以下载的方法还是很简单的。#wget http://xxx.xxx.xxx/xxx.zip直接在终端输入这个命令就行了。后面的url是要下载 阅读全文

posted @ 2012-02-08 10:43 c语言源码 阅读(179) 评论(0) 推荐(0)

1

导航