![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java技术
iteye_3921
这个作者很懒,什么都没留下…
展开
-
java阻塞队列学习(转帖)
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; /** 本例介绍一个特殊的...原创 2010-06-06 11:50:00 · 90 阅读 · 0 评论 -
多线程中使用静态方法
终于把内存泄漏问题解决了,不是多线程访问静态函数的问题,事实证明只要在静态函数中没有处理多线程共享数据,就不存在着多线程访问同一个静态方法会出现资源冲突的问题,如果在静态方法中有访问多线程共享数据,就要小心多线程同步问题。同时,在使用线程池进行开发时,要特别注意线程实例的资源释放问题,不要想当然的认为没有创建变量名来引用所创建的线程实例,线程在运行完就会自动释放资源,事实证明并没有释放。如果没有显...原创 2009-05-14 19:54:28 · 381 阅读 · 0 评论 -
java 可变参数
vararg的意思是变量参数,它是与Java语言语法非常不同的一个概念。常见情况下,我们通过限制输入参数的个数和类型、返回数据类型和抛出的异常来定义方法签名来与方法的调用者实现契约。使用动态参数特性,我们可以部分的克服该限制,使得签名变得动态化。你可能会说动态签名并不新鲜。如下两点你已经使用过多次来避免添加或删除方法签名中参数对客户端调用的影响。使用数组或集合作为输入参数...原创 2009-12-14 20:50:57 · 97 阅读 · 0 评论 -
java中的string
从javaeye的论坛里看到这篇文章,感觉不错,转过来供自己学习 镜头1】 String对象的创建 1、关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外: String s=new String("Hello world"); 问题:参数"Hello world"是什么东西,也是字符串对象吗?莫非用字符串对象创建一个字符串对象??? ...原创 2009-11-25 14:45:55 · 79 阅读 · 0 评论 -
使用JDBC对BLOB和CLOB进行处理
从网上看到这篇文章,转过来做为学习用设有表:create table blobimg (id int primary key, contents blob);一、BLOB入库的专用访问: 1) 最常见于Oracle的JDBC示例中 一般是先通过select ... for update锁定blob列,然后写入blob值,然后提交。要用到特定的Oracle BLOB类。Clas...原创 2009-11-12 20:33:31 · 120 阅读 · 0 评论 -
jdk5.0 多线程学习笔记(八)
前面已经介绍过future模式和jdk5中的future,在jdk5中对future有个基本实现,这个实现就是类futuretask。对于future模式,每个人都有自己的理解。这里引用他人的话,做个理解:“Future 模式就是在主线程中当需要进行比较耗时的作业,但不想阻塞主线程的作业时,将耗时作业交由 Future 对象在后台中完成,当主线程将来(这个 Future 的意义也就体现...2008-09-22 20:19:15 · 90 阅读 · 0 评论 -
jdk5.0 多线程学习笔记(七)
在前面的学习中,我们已经学了java多线程编程中的future模式。从future模式,我们可以知道,future模式的线程会有返回值。而在jdk5中为我们提供了future接口。下面我们就来看看他的用法。 jdk5中Future的重要方法包括get()和cancel(),get()获取数据对象,如果数据没有加载,就会阻塞直到取到数据,而 cancel()是取消数据加载。另外一个ge...2008-09-17 18:47:17 · 96 阅读 · 0 评论 -
jdk5.0 多线程学习笔记(六)
从前面的文章可以看出,jdk1.5为我们提供了很多线程池这里做一下简要的说明:类Executors,提供了一些创建线程池的方法 newFixedThreadPool(int nThreads)创建一个可重用固定线程集合的线程池,以共享的无界队列方式来运行这些线程。如果在关闭前的执行期间由于失败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。 newCached...2008-09-03 20:42:53 · 88 阅读 · 0 评论 -
jdk5.0 多线程学习笔记(五)
今天,我们来学学worker模式,大家也好对jdk5.0的线程池有一个更好的理解。先来看看代码:public class Main { public static void main(String[] args) { Channel channel = new Channel(5); // 工人线程的數量,即线程池内的线程数目 channel.sta...2008-08-26 21:41:53 · 93 阅读 · 0 评论 -
jdk5.0 多线程学习笔记(四)
学了这么久,终于进入jdk5.0的线程编程了。先来看一段代码:public class ThreadPoolTest { public static void main(String[] args) { int numWorkers = 10;//工作线程数 int threadPoolSize = 2;//线程池大小 ExecutorServ...2008-08-25 21:12:58 · 84 阅读 · 0 评论 -
xmlbean 生成带包路径的jar
因为使用xmlbean生成的jar找到了这篇文章,转过来作为自己的学习记录。 当我们初步了解XSD后,我们就可以来制造 XML BEAN 了。 要制造 XML BEAN , 需要作如下的准备:(1) 下载 XML BEAN。下载网址 http://www.apache.org 下载后解压后的目录应该是这样: xmlbean2....原创 2009-05-23 23:12:04 · 286 阅读 · 0 评论 -
java虚拟机的一些概念
从网上看到这篇文章,感觉适合初学jvm,就转来作为以后学习参考。 Java虚拟机(JVM)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 Java虚拟机(JVM)是可运行Java代码的假...原创 2009-05-24 10:22:52 · 172 阅读 · 0 评论 -
log4j使用
从网上看到得,发现写的比较全,就转过来做参考 在了解Log4J的使用方法之前,先编写一个简单的示例,以对Log4J有个感性认识。如果使用的是Eclipse,请点击"文件"->"新建"->"类",打开"新建Java类"对话框,设置包为 piv.zheng.log4j.test,名称为Test,并确保"public static void main(String[] args)"原创 2009-06-19 21:08:49 · 97 阅读 · 0 评论 -
避免或最小化 Servlet 中的同步
servlet 是多线程的。基于 servlet 的应用程序必须认识并适当地处理这一点。如果应用程序有很多大段的代码是同步的,那么这个应用程序实际上就变成单线程的,而且吞吐量会显著下降。 在 servlet 中不出现同步是最佳选择,然而,如果应用程序设计无法避免同步,那么请使用“锁对象(lock Object)”并且锁定可用性最小的代码路径。请不要同步 servlet 的 service 方法或 ...原创 2009-09-24 21:02:56 · 121 阅读 · 0 评论 -
httpclient 使用小记
最近学习apache的httpclient在使用postmethod时,当使用httpclient执行executeMethod(POSTMETHOD)时发现,该方法会调用HttpMethodBase.execute(HttpState, HttpConnection) 该方法又会调用HttpMethodBase.writeRequest(HttpState, HttpConnec...2009-09-03 21:05:54 · 120 阅读 · 0 评论 -
httpclient 学习笔记
前阵子,学习了一下APACHE 的httpclient,感觉httpclient还是比较好用的,就是传输汉字的时候有默认的编码问题。 在使用 httpClient.executeMethod(PostMethod);时,httpclient会调用 protected RequestEntity generateRequestEntity() { if (!th...2009-08-23 16:52:01 · 211 阅读 · 0 评论 -
httpclient链接关闭问题(转帖)
HttpClient client = new HttpClient();HttpMethod method = new GetMethod("http://www.apache.org");try { client.executeMethod(method); byte[] responseBody = null; responseBody = method.g...2010-03-11 22:09:36 · 118 阅读 · 0 评论 -
J2EE集群原理(转贴)
J2EE集群原理 什么是集群呢?总的来说,集群包括两个概念:“负载均衡”(load balancing)和“失效备援”(failover) 图一:负载均衡 如图一所示,多个客户端同时发出请求,位于前端的负载均衡器根据特定算法,将请求分担给比较空闲的机器,从而实现较高性能和较好的扩展性 图二:失效备援 如图二所示,当客户端连续向某个服务器发出请求时,该服务器可能处理到一半就宕...2010-03-09 19:57:35 · 130 阅读 · 0 评论 -
Spring 实现ibatis事务回滚
网上发现这篇文章,转过来学习一下,好不好用还没有实践,需要自己检验一下。web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in...2010-03-05 20:34:46 · 180 阅读 · 0 评论 -
jvm内存模型
<script type="text/javascript"></script><script type="text/javascript"></script>JVM内存模型(转)JVM内存由 Perm 和 Heap 组成. 其中 Heap = {Old + NEW = { Eden , from, to } }(图片如附件) JVM内存...原创 2008-12-08 21:31:12 · 75 阅读 · 0 评论 -
dom4j 使用记录
最近,突然感到可能要解析xml,所以就又复习了一下dom4j,当然解析xml的包以及方法很多,dom4j只是其中的一种,也不知道现在都用些什么。写点程序就当是笔记了。package com.xml.dom4j.test;import java.util.Iterator;import org.dom4j.Attribute;import org.dom4j.Document;impo...2008-12-01 22:01:55 · 89 阅读 · 0 评论 -
FCKeditor与struts框架结合使用点滴
富客户的编辑器,已经使用很广泛了,我也好奇的想感受一把,学习学习。于是,就去down了最新的fckeditor我使用的是:fckeditor_2.6.3使用的java开发包是fckeditor-java-core-2.4.1.jar 我首先按照fckeditor给例子,下了所有的jar包,然后拷贝了fckeditor_2.6.3里的fckeditor,当然按照提供的d...2008-11-26 21:05:38 · 90 阅读 · 0 评论 -
jdk5.0 多线程学习笔记(三)
在进一步学习jdk5.0的多线程编程以前,先介绍一下生产者--消费者模式(producer-consumer)生产者是指:生产数据的线程消费者是指:使用数据的线程生产者和消费者是不同的线程,他们处理数据的速度是不一样的,一般在二者之间还要加个“桥梁参与者”,用于缓冲二者之间处理数据的速度差。下面用代码来说明://生产者public class MakerThread extends T...2008-08-22 00:25:08 · 130 阅读 · 0 评论 -
jdk5.0多线程学习笔记(二)
在学习jdk5的新特性之前,先看一个多线程的模式:Future Pattern 去蛋糕店买蛋糕,不需要等蛋糕做出来(假设现做要很长时间),只需要领个提货单就可以了(去干别的事情),等到蛋糕做好了,再拿提货单取蛋糕就可以了。future模式与这个场景类似。 假设有一个需要执行一段时间的方法,我们可以不必等待结果出来,而是获取一个替代的“提货单”。因为获取“提货单”不需要花...2008-08-14 22:17:10 · 83 阅读 · 0 评论 -
cas在tomcat中的配置
cas在tomcat上配置时,需要打开tomcat的ssl功能,并且要生成证书(为了实现SSL,一个Web服务必须对每一个接受安全连接的外部接口或者IP地址有一个相关联的证书) 在<TOMCAT_HOME>目录下创建证书 首先生成服务端的证书:1. 生成密钥对keytool -genkey -alias tomcat-server -keyalg ...2009-02-25 21:22:35 · 194 阅读 · 0 评论 -
SSO 原理浅谈
SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方式的 SSO ,即基于 Windows 域的 SSO ,还有就是从 2005 年开始一直兴旺不衰的 SAML 。 如果将这些免费的 SS...原创 2009-02-25 19:41:07 · 73 阅读 · 0 评论 -
ajax iframe 无刷新上传文件
首先要说的就是 ajax 是无法实现上传文件的,可以想一下ajax与后台通信都是通过传递字符串,怎么能传递文件呢?其实出于安全考虑js是不能操作文件的,所以就不要再说用ajax来实现文件的上传了,这是不可能的。 而本文实现的文件上传也是无页面刷新的,可以说是一种"类似AJAX"方法。 开始之前先说两句无关的,其实在ajax出现之前,web应用也可以是无刷新的,那时大多通过IFr...原创 2009-02-04 09:53:54 · 82 阅读 · 0 评论 -
深入研究java对String字符串对象的创建以及管理
经常看到很多人讨论java中关于String的问题,我也就有点兴趣了,鉴于网上很多人写的都差别很大,同样的问题都是不同的说法,我很迷糊,花了一晚上读了Java Virtual Machine Specification和The Java Language Specification的一些章节,做了很多试验,总结了一下关于String的内容,还有很多内容我也不确定,在下面也都提出来了,希望高手能指正...原创 2009-01-14 20:49:23 · 93 阅读 · 0 评论 -
Java基于Socket文件传输示例
最近看到些文件传输的例子,感觉有代码有注释的,就转过来了,虽然是老代码,但也可作为参考。 1.服务器端public class ServerTest { int port = 8821; void start() { Socket s = null; try { ServerSocket ss = new Server...原创 2009-01-14 20:44:55 · 60 阅读 · 0 评论 -
serverlet文件上传
很久没用过serverlet了,看了一篇稍微详细的例子就转了过来! Java Servlet 在网络上的编程应用,如利用Servlet 上传和下载文件、Servlet 的数据库编程、在Servlet 中发送和接受邮件以及Java Servlet 在RMI和XML等方面的应用,由于篇幅有限,在这里就不在多介绍了,下面再举一个Servlet 上传的例子。 在Web 应用程序中,用户向服务器上传文...原创 2009-01-12 21:40:23 · 781 阅读 · 0 评论 -
struts2学习记录2
因为一直使用的是struts1,没有接触过struts2,接触后发现二者的区别还是很大的。 自己对strtus2也是初学,对struts2的验证进行了一下了解。上struts2的官网,发现对于struts2的验证,只需要对相应的类写*-validation.xml就可以了。一时好奇,因为官网的文档上有写说验证用的xml需要用以下的两种格式之一:Per Action class: in...2009-01-06 22:15:10 · 67 阅读 · 0 评论 -
Java NIO原理和使用
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。 Java NIO非堵塞...原创 2008-12-30 19:28:33 · 92 阅读 · 0 评论 -
Struts2学习记录1
此处是摘自struts2的官方网站 一个请求在Struts2框架中的处理大概分为以下几个步骤1 .客户端初始化一个请求,并发送给serverlet容器2 .这个请求将经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 .接着FilterD...2008-12-29 20:49:51 · 78 阅读 · 0 评论 -
portal之SSO开发文档
前两天看到别人写的,感觉不错,就转了过来做为参考 为了满足portal门户与各个子系统统一登录的需求,从而使用CAS进行SSO单点登录的配置开发。 开发资源 开发中所使用的资源版本如下说明,不同的版本所使用的配置方法及开发步骤不同,请注意相应的版本号。Liferay portal&nbs...原创 2009-03-02 20:12:16 · 653 阅读 · 0 评论 -
snmp4j简单示例
利用snmp4j开源包来获取指定OID的信息(SNMPv3) 第一步测试Main方法: Java codepublic class MainSnmpWalk{ static Logger log = Logger.getLogger(MainSnmpWalk.class); public MainSnmpWalk(){ } public ...原创 2008-07-16 13:22:27 · 516 阅读 · 0 评论 -
dwr理解
第一部分 DWR是什么,如何使用 DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码(javascript)使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet(小应用程序)中获取数据.另外一方面一个JavaScript库可以帮助网站开...原创 2008-07-25 19:43:48 · 511 阅读 · 0 评论 -
jdk5.0多线程学习笔记(一)
先来复习一下什么是线程: 线程有时称为 轻量级进程。与进程一样,它们拥有通过程序运行的独立的并发路径,并且每个线程都有自己的程序计数器,称为堆栈和本地变量。然而,线程存在于进程中,它们与同一进程内的其他线程共享内存、文件句柄以及每进程状态。一个进程中的线程是在同一个地址空间中执行的,所以多个线程可以同时访问相同对象,并且它们从同一堆栈中分配对象。 在 JDK 5.0 之前,确保线程安全的...2008-08-13 21:31:30 · 105 阅读 · 0 评论 -
snmp trap的接收(jdmk方式)
snmp中告警的接收可以使用jdmk中的SnmpTrapListener,采用jdmk接收snmp trap的方式如下,先定义接收的线程,再用继承自SnmpTrapListener的类处理snmp的trap。详细内容见代码。代码如下:public class SnmpListener { /** * Main entry point. */ p...2008-08-05 21:06:33 · 1015 阅读 · 0 评论 -
SNMP4J开发trap监听实例
使用snmp4j监听trap,也可以不用这样的方式/** * * 测试snmp4j 中trap的接收方法.这里只测试了v1和v2的trap. * trap接收原理:snmp实例在注册了实现CommandResponder的listener之后,可以通过异步调用的方法 * 将收到内容输出. * listen()启动监听线程,该线程中的操作是监听指定端口,在收到trap告警之后将调用...原创 2008-08-05 12:40:03 · 313 阅读 · 0 评论 -
JDBC 中的Batch
在jdbc2.0里增加了批量处理的功能(batch),其允许将多个sql语句作为一个单元送至数据库去执行,这样做可以提高操作效率。 在操作大量的数据时, 先Prepare一个INSERT语句再多次的执行, 会导致很多次的网络连接. 要减少JDBC的调用次数改善性能, 可以使用PreparedStatement或是Statement 的AddBatch()方法一次性发送多个给...2008-08-04 22:21:06 · 158 阅读 · 0 评论