摘要:
1 Vector基础实现为数组 object[] synchronized线程安全 2 扩容使用 System.arraycopy(original, 0, copy, 0,Math.min(original.length, newLength)); native方法 3 add elementDa 阅读全文
摘要:
volatile保证线程间的数据是可见的(共享的),但不保证数据同步 volatile相当于synchronized的弱实现,也就是说volatile实现了类似synchronized的语义,却又没有锁机制。它确保对volatile字段的更新以可预见的方式告知其他的线程。 volatile包含以下语 阅读全文
摘要:
1 NioSocketAcceptor类关系图 1.1 NioSocketAcceptor acceptor = new NioSocketAcceptor(5); NioSocketAcceptor 初始化顺序 AbstractIoService构造函数 AbstractPollingIoAcce 阅读全文
摘要:
http://blog.csdn.net/fenglibing/article/details/6321453 GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里。 一、GC特性以及各种GC的选择 1、垃圾回收器的特性 2、对垃圾回收器的选择 2. 阅读全文
摘要:
http://blog.csdn.net/fenglibing/article/details/6411953 1、介绍 打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。 阅读全文
摘要:
jstat的用法 用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。 Jstat 是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistic 阅读全文
摘要:
mvn install:install-file -Dfile=D:/asm-1.5.3.jar -DgroupId=asm -DartifactId=asm -Dversion=1.5.3 -Dpackaging=jar 阅读全文
摘要:
死锁检测方法 1 JConsole 找到需要查看的进程,打开线程选项卡,点击检测死锁 2 jps查看java进程ID,使用jstack 7412输出信息 3 使用jvisualvm连接java虚拟机,查看线程检测死锁 解决方法: 四个条件打破一个即可,但是代价不同,最简单的编码就是顺序加锁和解锁 现 阅读全文
摘要:
TreeMap 内部定义了一个类 static final class Entry<K,V> implements Map.Entry<K,V>,(自平衡红黑二叉树)作为数据存储节点。 put方法先判断根节点是否为空,为空则在跟节点放置数据。 不为空,(调用比较器)将put的key循环比较paren 阅读全文
摘要:
我已经解决了这个问题,在eclipse中有一个打包工具,可以将程序打包成.jar文件: 右键要打包的 project >Export >Java >JAR file >Next >Browse设 置.jar文件存放的目的路径 >Next >Next >点Main class 边上的Browse,选择 阅读全文