- 浏览: 890547 次
- 性别:
- 来自: 上海
-
最新评论
-
zzuliuli:
很实用,一直关注
mysql的执行计划 -
rxin2009:
你好,最近在解决redis数据同步的问题,找到了tedis,但 ...
taobao/tedis的redis集群 -
zhangping2056:
楼主接下来要考虑页面静态化与细节上面的东西了
Nginx与Redis解决高并发问题 -
XieFuQ:
Tomcat的重启shell脚本 -
jovinlee:
jovinlee 写道 jov ...
Tomcat的重启shell脚本
文章列表
JAVA LOCK代码浅析
- 博客分类:
- java基础
JAVA LOCK总体来说关键要素主要包括3点: 1.unsafe.compareAndSwapXXX(Object o,long offset,int expected,int x)2.unsafe.park() 和 unsafe.unpark()3.单向链表结构或者说存储线程的数据结构第1点主要为了保证锁的原子性,相当于一个锁是否正在被使用的标记,并且比较和设置这个标记的操作是原子的(硬件提供的swap和test_and_set指令,单CPU下同一指令的多个指令周期不可中断,SMP中通过锁总线支持上诉两个指令的原子性),这基本等于软件级别所能达到的最高级别隔离。第2点主要将未得到锁的线程禁用 ...
<!-- left starts -->
Java内存泄露的理解与解决(转)
Java内存管理机制
在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(garbage collection)负责自动回收不再使用的内存。
上面是Java内存管理机制的基本情况。但是如果 ...
http://www.ibm.com/developerworks/cn/java/j-jtp06197.html
Brian Goetz (brian.goetz@sun.com), 高级工程师, Sun Microsystems
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile ...
http://www.yesky.com/20020603/1614140.shtml
阎宏 ··yesky
简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。 观察者模式的结构 观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-收听者(Source/Listener)模式或从属者(Dependents)模式。 ...
XSL是指可扩展样式表语言 (EXtensible Stylesheet Language),是一种用于以可读格式呈现 XML 数据的语言。
目录
简介
语法
XSL 是否与 XML 相同
用途
应用
编辑本段简介
XSL 之于 XML ,就像 CSS 之于 HTML。它是指可扩展样 ...
http://www.ibm.com/developerworks/cn/java/l-niosvr/index.html
简介: JDK1.4 提供的无阻塞 I/O(NIO)有效解决了多线程服务器存在的线程开销问题,但在使用上略显得复杂一些。许多基于 NIO 的多线程服务器程序往往直接基于选择器(Selector)的 Reactor 模式实现。这种简单的事件机制对于较复杂的服务器应用,显然缺乏扩展性和可维护性, 而且缺乏直观清晰的结构层次。本文将通过一个基于事件回调的 NIO 多线程服务器的设计,试图提供一个简洁、直观、易于扩展的 NIO 多线程服务器模型。
<!--
< ...
一.概述
1. 定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。类加载和连接的过程都是在运行期间完成的。
二.类加载的时机
1. 类加载的生命周期:加载(Loading)-->验证(Verification)-->准备(Preparation)-->解析(Resolution)-->初始化(Initialization)-->使用(Using)-->卸载(Unloading)
2. 加载:这有虚拟机自行决定。
3. 初始化阶段:
a) 遇到new、gets ...
Java开发Server最大的障碍,就是JDK1.4版之前的的串行垃圾收集机制会引起长时间的服务暂停,明白原理后,想想那些用JDK1.3写Server的先辈,不得不后怕
原本想把题目更简单的定为--《不要停》的,但还是自己YY一下就算了。 ...
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.
(2) WHERE子句中的连接顺序.:
ORACLE ...
海量数据处理:十道面试题与十个海量数据处理方法总结
作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结 ...
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。(1)Hash 索引仅仅能满足"=","IN" ...
http://www.itokit.com/2011/0405/64044.html
又拍网是一个照片分享社区,从2005年6月至今积累了260万用户,1.1亿张照片,目前的日访问量为200多万。5年的发展历程里经历过许多起伏,也积累了一些经验,在这篇文章里,我要介绍一些我们 ...
一、环境准备
使用Axis来开发Web services 需要准备 web 服务器,Axis API。本文使用的Web container 是Tomcat5.5, Axis API 的版本为Axis2_1.1.1。
1.1软件下载准备
Tomcat
使用axis2提供的两个myeclipse插件时,生成代码最后点“完成”时,老出现java_lang_reflect_InvocationTargetException错误。弄了两天时间,终于找到解决的办法。
本人的环境如下:
Myeclipse 5.1 GA
Axis2 1.4.1
插件安装略,
问题现象:
在用插件生成代码时,老是在最后点击“finish”时出现java_lang_reflect_InvocationTargetException错误。开始时以为是我本人的系统环境变量出现问题,后来查找原因,是因为插件的原因。
问题原因:
主要的问题在于 Code Generator pl ...
一.集群配置方式
ehcache提供三种网络连接策略来实现集群,rmi,jgroup还有jms。这里只说rmi方式。同时ehcache可以可以实现多播的方式实现集群。也可以手动指定集群主机序列实现集群,本例应用手动指定。
这里说点题外话,本来 ...