摘要: 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时 间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(第2版)》的规 定,Java虚拟... 阅读全文
posted @ 2015-11-14 22:46 vn2015 阅读(172) 评论(0) 推荐(0) 编辑
摘要: Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后(比如,在函数A中调用函数B,在函数B中定义变量a,变量a的作用域只是函数... 阅读全文
posted @ 2015-11-14 22:45 vn2015 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在... 阅读全文
posted @ 2015-11-14 22:40 vn2015 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 根搜索算法 在主流的商用程序语言中(Java,甚至包括前面提到的古老的Lisp),都是使用根搜索算法(GC Roots Tracing)判定对象是否存活的。这个算法的基本思路就是通过一系列的名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Refere... 阅读全文
posted @ 2015-11-14 22:38 vn2015 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 1. 事务 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务、行级锁、并发 3.Berkeley DB:支持事务 事务的特性: 只有InnoDB支持事务 事务 ACID Atomic... 阅读全文
posted @ 2015-11-13 12:31 vn2015 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1. lock And sychronized 用sychronized修饰的方法或者语句块在代码执行完之后锁自动释放,而用Lock需要我们手动释放锁,所以为了保证锁最终被释放(发生异常情况),要把互斥区放在try内,释放锁放在finally内。 sychronized demo ... 阅读全文
posted @ 2015-11-13 12:19 vn2015 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 第一章介绍 (By wind5shy:http://blog.csdn.net/wind5shy) 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动。简单地说就是程序的一次执行,有自己独立的资源(内存空间,文件句柄等)。 线程:进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的... 阅读全文
posted @ 2015-11-13 11:52 vn2015 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 线程安全 hashmap 非线程安全 concurrentHashmap为线程安全 arraylist 非线程安全 copyonwritearraylist 为线程安全 1. CopyOnWrite容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元... 阅读全文
posted @ 2015-11-13 11:51 vn2015 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但... 阅读全文
posted @ 2015-11-13 11:04 vn2015 阅读(125) 评论(0) 推荐(0) 编辑