- 浏览: 422622 次
- 性别:
- 来自: 北京
最新评论
-
masuweng:
好好好,有时间了练习下
使用Java混淆工具yguard -
shengshihouzhe:
第一个eg实现的应该是循环栅栏,不是计数器
Java Phaser使用 -
yukaizhao:
推荐一个很全的guava教程 http://outofmemo ...
google guava cache 处理 -
yanqingluo:
谢谢分享,已关注.
BTrace入门及使用实例 -
luoxiaohui_java:
谢谢分享!
这么好的文章,怎么没人回复呢。
ibm was nd websphere 集群
文章列表
MySQL索引背后的数据结构及算法原理
- 博客分类:
- MySQL
摘要
本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文 ...
Javascript作用域原理
- 博客分类:
- JavaScript
作者: Laruence
本文地址: http://www.laruence.com/2009/05/28/863.html
转载请注明出处
问题的提出
首先看一个例子:
var name = 'laruence';
function echo() {
alert(name);
var name = 'eve';
alert(name);
alert(age);
...
【解惑】Java方法参数是引用调用还是值调用?
- 博客分类:
- JAVA
方法调用(call by) 是一个标准的计算机科学术语。方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) 。江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用。这其实很不恰当,这种 这些说法很容易让我们联想到Java的对象参数传递是引用调用,实际上,Java的对象参数传递仍然是值调用 。 我们首先用一段代码来证实一下为什么Java的对象参数传递 是值调用。
Java代码
public class Employee {
...
1、JavaScript的作用域链
2、函数体内部,局部变量的优先级比同名的全局变量高。
3、JavaScript没有块级作用域。
4、函数中声明的变量在整个函数中都有定义。
5、未使用var关键字定义的变量都是全局变量。
6、全局变量都是window对象的属性
在学习JavaScript的变量作用域之前,我们应当明确几点:
JavaScript的变量作用域是基于其特有的作用域链的。
JavaScript没有块级作用域。
函数中声明的变量在整个函数中都有定义。
1、JavaScript的作用域链
首先看下下面这段代码:
view plaincopy ...
【原文:http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/】
本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4。Tomcat 的基本设计思路和架构是具有一定连续性的。
Tomcat 总体结构
Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化 ...
声明:本篇文章是根据memcached-session-manager官方配置方法wiki页面翻译整理,关于memcached-session-manager的介绍,具体参见官网:http://code.google.com/p/memcached-session-manager/,也可以参考:http://gong1208.iteye.com/blog/1596120
Introduction
如果为了简单使用,你只需要安装一个tomcat(6或者7)和memcached,在生产环境中可能会有多台tomcat服务器以及多台可用的memcached节点,并安装在不同的机器上,我 ...
JDK1.5 开始关于多线程加了很多特性。如:
ConcurrentHashMap: 放弃使用公用锁同步每一个方法,使用了更细化的锁机制,分离锁。对于大数据量的 HashMap 同步操作效率有了较大提升。
CopyOnWriteArrayList: 是同步 List 的一个并发替代品。其线程安全性来源于这样一个事实:只要有效的不可变对象被正确发布,那么访问它将不再需要更多的同步。在每次需要修改时它们会创建并重新发布一个信的容器拷贝,以此来实现可变性。
增加了 Callable 和 Future 。 Callable 是 runnable 的一个可选替代。我们之前用的 Runnable 是 ...
出处:http://gearever.iteye.com Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到。在开发app时,我们只是获取一个session,然后向 session中存取数据,然后再销毁session。那么如何产生session,以及session池如何维护及管理,这些并没有在app涉及到。这 些工作都是由容器来完成的。 Tomcat中主要由每个context容器内的一个Manager对象来管理session。对于这个manager对象的实现,可以根据tomcat提供的接口或基类来自己定制,同时,tomcat也提供了标准实现。 在tomcat架构分析 ...
【原文:http://blog.codinglabs.org/articles/consistent-hashing.html】
摘要
本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借 ...
一致性 hash 算法( consistent hashing )
张亮
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;
1 基本场景
比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个
实际生产环境里边,如果并发量不大,完全可以使用悲观锁定的方法,这种方法使用起来非常方便和简单。但是如果系统的并发非常大的话,悲观锁定会带来非常大的性能问题,所以就要选择乐观锁定的方法。
悲观锁假定其他用户企图访问或者改变你正在访问、更改的对象的概率是很高的,因此在悲观锁的环境中,在你开始改变此对象之前就将该对象锁住,并且直 到你提交了所作的更改之后才释放锁。悲观的缺陷是不论是页锁还是行锁,加锁的时间可能会很长,这样可能会长时间的限制其他用户的访问,也就是说悲观锁的并 发访问性不好。
乐观锁则认为其他用户企图改变你正在更改的对象的概率是很小的,因此乐观锁直到你准备提交所作的更改时才将对象锁住 ...
当学习了Java NIO和IO的API后,一个问题很快进入心中:
我应该在何时使用IO,何时使用NIO呢?
在本文中,我会尽量清晰地阐明Java NIO和IO的差异、它们的用例,以及它们如何影响您的代码设计。
Java NIO和IO的主要差异
下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。
IO
NIO
面向流
面向缓冲
阻塞的IO
非阻塞IO
选择器
面向流与面向缓冲
Java NIO和IO之间第一个最大的区别是,IO是面向流的,其中NIO是 ...
Java 内存模型及GC原理
- 博客分类:
- JAVA
一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的 ...
网站持久代引发Full GC问题分析
- 博客分类:
- JAVA
现状:
Dragoon(监控系统)的日报显示trade_us_wholelsale(美国wholesale集群),日均Young GC次数25w次左右,应用暂停295w毫秒(相当于40多分钟),Full GC次数600次左右,应用暂停190w毫秒(相当于30多分钟)。
GC,尤其是Full GC,每次都会导致JVM暂停工作,处理垃圾回收任务,短时间内无法响应用户请求,大量的Full GC会导致系统响应速度降低,而且引来OOM的巨大风险。
分析:
启动参数:
trade_us_wholesale应用的JVM启动参数如下:
-Xmx2g -Xms2g -Xmn256m -XX:Per ...
jvm内存管理之java堆溢出 -实例分析
- 博客分类:
- JAVA
java堆用于存储对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清楚这些对象,就会在对象数量达到最大堆的容量限制后产生内存溢出异常。
下面给出例子代码体验一下java堆溢出的过程:
1.通过jvm参数(-Xms20M -Xmx20M -Xmn10M ),限制java 堆的大小
2.通过jvm参数(-verbose:gc -XX:+PrintGCDetails )打印GC的过程信息
3.通过jvm参数(-XX:+HeapDumpOnOutOfMemoryError),可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照。
...