- 博客(119)
- 收藏
- 关注
原创 并发编程陷阱系列(八)不要吞食CountDownLatch的线程异常
之前的文章中已经介绍了无处不在的InterruptedException的处理方式了,使用CountDownLatch也会有类似的问题(正确的处理方式见下面代码: Thread.currentThread().interrupt()),顺便复习下CountDownLatch的使用方法。 在一些应用中,有多个线程,某个线程会在其他线程执行完毕之后才开始执行。比如,想象有一个程序先下...
2013-05-23 19:58:49
1864
原创 并发编程陷阱系列(七)读多写少使用synchronized导致性能下降
对并发读的情况进行测试:public class SynchronizedDemo { static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void main(String[] args) throws Exception { Data data ...
2013-05-07 19:19:28
411
原创 webservice复习-helloworld
什么是webservice基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求,从而实现远程调用。为了符合WebService标准,所有你使用的数据类型都必须被转换为XSD类型(Xml Schema Definition)。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如 SOAP。 目前标准的WebServic...
2013-05-01 17:07:02
206
原创 并发编程陷阱系列(六)高并发环境下使用性能较低的Map
hashtable是线程安全的,但为了保障线程安全,get, put, contains等多个方法都被添加了synchronized,源码片段如下: public synchronized V get(Object key) { Entry tab[] = table; int hash = key.hashCode(); int index = (hash & 0...
2013-04-25 21:02:03
228
原创 并发编程陷阱系列(五)double check
public static Singleton getInstance(){ if (instance == null) { synchronized(Singleton.class) { //1 if (instance == null) //2 instance = new Singleton(); //3...
2013-04-02 10:28:17
160
原创 并发编程陷阱系列(四)volatile与变量脏读
预备知识:每一个线程运行时都有一个线程栈,线程栈保存了线程运行时候变量值信息。当线程访问某一个对象时候值的时候,首先通过对象的引用找到对应在堆内存的变量的值,然后把堆内存变量的具体值load到线程本地内存中,建立一个变量副本,之后线程就不再和对象在堆内存变量值有任何关系,而是直接修改副本变量的值,在修改完之后的某一个时刻(线程退出之前),自动把线程变量副本的值回写到对象在堆中变量。这样在堆...
2013-04-02 10:27:01
625
原创 并发编程陷阱系列(三)使用Thread.interrupt()中断线程
Thread.interrupt()方法不会中断一个正在运行的线程。这一方法实际上完成的是,在线程受到阻塞时抛出一个中断信号,这样线程就得以退出 阻塞的状态。更确切的说,如果线程被Object.wait, Thread.join,Thread.sleep三种方法之一阻塞,那么,它将接收到一个中断异常(InterruptedException),从而提早地终结被阻塞状态。 建议使用外部的...
2013-04-02 10:26:32
566
原创 并发编程陷阱系列 (二)InterruptException无处不在
当一个方法抛出 InterruptedException 时,它是在告诉您,如果执行该方法的线程被中断,它将尝试停止它正在做的事情而提前返回,并通过抛出 InterruptedException 表明它提前返回。一旦你catch了中断异常,默认你就会处理它,所以JVM会清除中断状态,以防止方法退出后上层调用代码再处理一次异常。如果你只是简单地catch住,并不打算处理,那么就需要恢复被清除...
2013-04-02 10:25:32
323
原创 并发编程陷阱系列 (一)同步不完全
同步块未覆盖到所有场景。 import java.util.HashMap;import java.util.Map;public class CacheManage { private Map<String, String> cache = new HashMap<String, String>(); public static int...
2013-04-02 10:24:21
156
原创 jstat,jmap,jconsole,jvisualvm,jps,jinfo等JDK系统监控、性能调优工具
转自:http://www.blogjava.net/toby/archive/2012/02/07/369544.html工具名称:IBM HeapAnalyzerJProfiler在java程序性能调试方便表现优越,推荐使用。也可使用下面jdk自己的一些工具。所有工具都在JDK/bin目录下, jconsole和jvisualvm为GUI图形化工具,其他为命令行。jvisua...
2013-03-08 15:06:59
149
原创 死锁的例子
/** * Description: * <br/>Copyright (C), 2008-2010, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author Y...
2012-12-07 11:12:49
110
原创 页面屏蔽右键、F5等快捷键
// 系统按键触发事件document.onkeydown = function(){ // Ctrl+N、Shift+F10、F11、F5刷新 if ((event.altKey)&& ((event.keyCode==37)|| // 屏蔽 Alt+ 方向键 ← ...
2012-10-09 15:23:26
189
原创 <script>标签的for属性和event属性
<script language="javascript" for="window" event="onload"> event 设置或获取脚本编写用于的事件 for 设置或获取绑定到事件脚本的对象。 可以这样理解。 <script language="javascript" for="window" event=&quo
2012-09-07 15:06:28
312
原创 Ant 的 javac标签
<javac>任务和javac命令是相似,它编译两种类型的java文件1)没有被编译的java文件2)曾经编译过,但是class文件版本和当前对应的java文件版本不匹配的java文件。 1)javac命令支持的参数: Attributes Description srcdir :必须的,除非嵌套有<src>标签。包含源文件的文件夹 bootclasspa...
2012-06-15 11:51:37
103
原创 提高网站速度的最佳实践
原版见:http://developer.yahoo.com/performance/rules.html,是Yahoo 人写的《提高网站速度的最佳实践》共有 14 条。以下是中文版 相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实现的功能。比如Google机会已经把最基本的office应...
2012-05-28 13:40:15
122
原创 单例模式与线程安全
请看如下的单例类:class Singleton{ private static Singleton singleton = null; public static Singleton getSingleton() { if (null == singleton) { singleton = new Singleton(); } re...
2012-04-13 16:04:41
96
原创 ORACLE的隔离级别
隔离级别(isolationlevel)两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。2、不可重复读取:事务T1读取一行记录,紧接着...
2012-04-12 09:42:12
132
原创 LCA问题:求二叉树中任意两个节点的最近公共祖先
http://blog.youkuaiyun.com/tianliang0123/article/details/7172396
2012-04-11 23:36:18
168
原创 单链表反转(Singly Linked Lists in Java)
package dsa.linkedlist;public class Node<E>{ E data; Node<E> next;} package dsa.linkedlist;public class ReverseLinkedListRecursively { public static void main(String ...
2012-04-11 22:55:50
108
原创 SpringSecurity源码赏析
SpringSecurity源码赏析http://www.cnblogs.com/hzhuxin/category/342072.html
2012-04-07 23:34:58
121
原创 tapestry
tapestryhttp://tapestry.apache.org/tapestry3/doc/api/index.htmlhttp://archive.apache.org/dist/jakarta/tapestry/Tapestry-3.0.2-bin.zip Mock Table utility for CRUD operationsWhile le...
2012-02-20 22:32:08
127
原创 knocokout教程
http://archive.cnblogs.com/a/2257154/http://tapestry.apache.org/introduction.html
2012-02-17 14:04:14
113
原创 单例模式-双重检查锁定
单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java 内存模型的一些隐秘细节。这些...
2011-12-19 15:42:52
116
原创 仿163网盘无刷新文件上传-jsp版
代码见附件,转载自:http://www.cnblogs.com/cloudgamer/archive/2008/10/20/1314766.html
2011-11-24 16:39:26
119
原创 Mybatis-There is no getter for property named 'id' in 'class java.lang.String'
<select id="findNoteByID" parameterType="string" resultType="note"> SELECT * FROM TABLE <where> <choose> <when test="id != null and id !='
2011-11-23 20:48:43
373
原创 mybatis-spring-1.0.3-SNAPSHOT及mybatis3.0.6 jar文件
mybatis-spring-1.0.3-SNAPSHOT及mybatis3.0.6 jar文件
2011-11-06 14:47:19
246
原创 Oracle中的rownum不能使用大于>的问题
一、对rownum的说明 关于Oracle 的 rownum 问题,很多资料都说不支持SQL语句中的“>、>=、=、between...and”运算符,只能用如下运算符号“<、<=、!=”, 并非说用“>、>=、=、between..and”时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来。 其实,只要理...
2011-11-06 13:47:31
104
原创 Jquery对动态生成的元素绑定事件
查询 Jquery api中的 .live()事件;很多时候我们对一个对象绑定一个事件的时候老是发现绑定不成功,这时你可以查查看这个对像是不是你通过Jquery动态生成的。jQuery的html()可以给现在元素附加新的元素,innerHTML也可以,那么,如何给这些新生成的元素绑...
2011-10-19 21:24:26
273
原创 JSTL-map中key值为数字的处理方式
最好显示转化成Long型:boardMap.put((Long)b.getId(), bclist);如果写成boardMap.put(b.getId()+"", bclist);页面上写成 <c:set var="boardKey" value="${board.id}"/> <c:forEach items="${boardMap[boardKe...
2011-10-07 23:28:52
584
原创 mybatis在oracle库插入clob对象异常
在使用mybatis进行insert操作时,出现异常。 异常信息:uncategorized SQLException for SQL []; SQL state [null]; error code [17023]; 不支持的特性; nested exception is java.sql.SQLException: 不支持的特性 之前换了三次数据库驱动,1.1M和1.3M的都出现异...
2011-09-26 21:17:04
410
原创 在resin服务器上,firefox显示js乱码的解决方案
通过firefox的查看源文件得知,jsp文件使用规定的utf-8编码,而通过<script>导入的js文件则使用GBK编码,无论在页面上如何设置均不能修改js编码为UTF-8编码。所以,导致乱码的存在。2、解决方案:第一步:修改conf/app-default.xml文件部分配置如下:将: <servlet servlet-name="resin-f...
2011-09-24 09:30:40
135
spring3学习笔记(1)-----RequestMapping与页面路径
@RequestMapping的参数如下/** * @see RequestMapping 参数 * @param value * 需要跳转的地址 * @param mehtod * 基于RestFul的跳转参数,有RequestMethod.get post,put 等...
2011-09-23 22:28:37
130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人