`
marb
  • 浏览: 422622 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文 ...
作者: Laruence 本文地址: http://www.laruence.com/2009/05/28/863.html 转载请注明出处 问题的提出 首先看一个例子: var name = 'laruence'; function echo() {      alert(name);      var name = 'eve';      alert(name);      alert(age); ...
方法调用(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 个

乐观锁VS悲观锁

    博客分类:
  • JAVA
实际生产环境里边,如果并发量不大,完全可以使用悲观锁定的方法,这种方法使用起来非常方便和简单。但是如果系统的并发非常大的话,悲观锁定会带来非常大的性能问题,所以就要选择乐观锁定的方法。 悲观锁假定其他用户企图访问或者改变你正在访问、更改的对象的概率是很高的,因此在悲观锁的环境中,在你开始改变此对象之前就将该对象锁住,并且直 到你提交了所作的更改之后才释放锁。悲观的缺陷是不论是页锁还是行锁,加锁的时间可能会很长,这样可能会长时间的限制其他用户的访问,也就是说悲观锁的并 发访问性不好。 乐观锁则认为其他用户企图改变你正在更改的对象的概率是很小的,因此乐观锁直到你准备提交所作的更改时才将对象锁住 ...

NIO VS IO

    博客分类:
  • JAVA
当学习了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程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的 ...
现状: 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 ...
java堆用于存储对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清楚这些对象,就会在对象数量达到最大堆的容量限制后产生内存溢出异常。 下面给出例子代码体验一下java堆溢出的过程: 1.通过jvm参数(-Xms20M -Xmx20M -Xmn10M ),限制java 堆的大小 2.通过jvm参数(-verbose:gc -XX:+PrintGCDetails )打印GC的过程信息 3.通过jvm参数(-XX:+HeapDumpOnOutOfMemoryError),可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照。 ...
Global site tag (gtag.js) - Google Analytics