`
xiao_jiang51
  • 浏览: 35758 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
java.util.concurrent 包下很多类的实现用到了基于硬件的CAS算法, 不再使用synchronized关键来进行并发控制,查看相关的源码后会发现最后都指向了一个类 ,这就是SUN未开源的sun.misc.Unsafe的类,该类功能很强大,涉及到类加载机制,其实例一般情况是获取不到的。还好有个反射的机制可以变通下,因为JVM 加载rt.jar时已经加载了该类,并且初始化过。上代码   /* * Copyright 2010, the original author or authors. All rights reserved. */ package com.api ...

索引创建相关

切忌外键要创建索引,否则删除主表时,因外键所在表数据量巨大导致主表锁定时间过长
转载http://www.ibm.com/developerworks/cn/java/j-jtp06197.html Java 理论与实践: 正确使用 Volatile 变量volatile 变量使用指南 Brian Goetz (brian.goetz@sun.com), 高级工程师, Sun Microsystems Brian Goetz 作为一名专业软件开发人员已经 20 年了。他是 Sun Microsyste ...
    一个非常不错的多线程分析工具,提供方是IBM,官方上的说明貌似是中国人开发的,NB,反编译看了下 用到了AOP的东东,对死锁的诊断非常有价值,官方地址http://www.alphaworks.ibm.com/tech/mtrat    因在一个为两W人在线服务的保险销售系统中使用到了一个并非控制器,因生产环境是1.4的版本,无法使用最新的无锁定算法支持,Doug Lea 大牛的那个并发包也就是被JDK 1.5吸收的那个NB包的原子类其实还是全部锁定的(1.5及之后全部被重写为无锁定算法),本人觉得会降低该控制器的并发量,决定自己用volatile 和 synchronized 实现并发 ...
J2EE集群原理 由于是从别人给的文本汇总的,没有原作者的相关信息,本人只是汇总供查阅 个人感觉除了负载平衡生产使用的很频繁,失效备援本人还未碰到过这样的项目实施。失效备援的代价太高,考虑的问题非常复杂,感觉 ...
《程序员》杂志上有一篇文章写的非常好,这里节选一段。文章一标题是《程序员分成几种不同的境界》。对比了一下,我觉得自己看来只能属于第五流的程序员。把这篇文章引在这儿,是准备时时刻刻激励自己,往更高层次努力,或者追求更高人生境界。 五流程序员比技术和工具   五流程序员关心的是用什么工具可以产生什么结果,追逐他听过最新、最好、最时髦的技术,沉浸于一些小练习,却很少走出象牙塔和客户或市场进行真正的沟通,甚至完成大型的真实案例。 四流程序员比整合和管理   四流程序员比前者更关心在什么地方使用什么,他的心里放着集成各种技术的地图,而不偏向单一工具和技术,他在乎运作一场战役的风险,还有资金成本的考量,包含 ...
http://www.google.com.hk/gwt/x?oe=UTF-8&gl=CN&q=java+%E8%87%AA%E5%AE%9A%E4%B9%89%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5%99%A8&hl=zh_CN&ei=o7_1TLCTHsm5kgWbjIDSAQ&ved=0CAoQFjAB&source=m&rd=1&u=http://blog.sina.com.cn/s/blog_4b6047bc010008q7.html 序列化对象在Java中主要 ...
  一、冒泡排序   已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与 a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比 较a[3]与a ...
为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。 数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。 先从悲观锁开始说。在SqlServer等其余很多数据库中,数据的锁定通常采用页级锁的方式,也就是说 ...
public AbstractStringBuilder reverse() { boolean hasSurrogate = false; int n = count - 1; //小技巧 for (int j = (n-1) >> 1;j >= 0; --j) { char temp = value[j]; char temp2 = value[n - j]; if (!hasSurrogate) { hasSurrogate = (temp >= Character.MIN_SURROGATE & ...
UNION             --集合的并,不包含重复行 Union all          --集合的并,包含重复行 Intersect          --集合的交,不包含重复行 minus              --集合的差,不包含重复行 Oracle中系统时间比较熟悉 是select sysdate from dual; db2中则是 SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1 还有 select CURRENT DATE from SYSIBM.SYSDUMMY1;获得日期 select CURRENT T ...
Java 中的位运算 引用、转贴本文应注明原作者:Rosen Jiang 以及出处:http://www.blogjava.net/rosen 移位运算符     包括:     “>> 右移”;“<< 左移”;“>>> 无符号右移” 例子: -5>>3=-1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 1111 其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。 -5<<3=-40 11 ...
路径中空格处理 DOS 命令中 用引号将含空格的路径引起来即可
http://www.ibm.com/developerworks/cn/java/j-lo-ibatis-principle/index.html
java多线程设计模式 java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。 Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法: Thread t = new Thread(); t.start(); start()方法是一个native方法,它将启动一个新线程,并执行run()方法。Thr ...
Global site tag (gtag.js) - Google Analytics