- 博客(11)
- 收藏
- 关注
转载 ArrayList的实现原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量
2017-11-22 21:44:43
178
转载 HashTable底层代码及与HashTable的差别
Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。 Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneabl
2017-11-22 21:31:46
3018
转载 HashMap的原理及实现
一.JDK 1.7 1.基本属性 继承关系 public class HashMapextends AbstractMap implements Map, Cloneable, Serializable 基本属性 static final int DEFAULT_INITIAL_CAPACITY = 1 static final
2017-11-21 21:04:33
169
转载 Mysql索引实现
MySQL索引实现 在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎(MySQL数据库MyISAM和InnoDB存储引擎的比较)的索引实现方式。 MyISAM索引实现 MyISAM引擎使用B+Tree作为索引结构,叶结点的data域存放的是数据记录的地址。下面是MyISAM索引的原理图: 图
2017-11-17 15:42:45
170
转载 B-和B+树
B-Tree和B+Tree 关于B树和B+树请参考关于B树的一些总结,这篇文章介绍的比较详细,同时容易理解。 目前大部分数据库系统及文件系统都采用B-Tree或其变种B+Tree作为索引结构,在本文的下一节会结合存储器原理及计算机存取原理讨论为什么B-Tree和B+Tree在被如此广泛用于索引,这一节先单纯从数据结构角度描述它们。 B-Tree 为了描述B-Tree,首先定义一条数据记录为
2017-11-17 15:37:59
247
转载 JVM虚拟机参数配置
堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统 下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。 典型设置: java -Xmx3550m -Xms35
2017-11-16 22:58:15
164
转载 StackOverflow和OutOfMemory
1、stackoverflow: 每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。 如果方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终导致这个线程的栈中的所有栈帧的大小的总和大于-Xss设置的值,而产生生St
2017-11-16 22:31:15
11547
1
转载 Mysql数据库引擎区别
1.如何选择数据库引擎? 为了做出选择哪一个存储引擎的决定,我们首先需要考虑每一个存储引擎提供了哪些不同的核心功能。这种功能使我们能够把不同的存储引擎区别开来。我们 一般把这些核心功能分为四类:支持的字段和数据类型、锁定类型、索引和处理。一些引擎具有能过促使你做出决定的独特的功能,我们一会儿再仔细研究这些具体 问题。 (1)字段和数据类型 虽然所有这些引擎都支持通用的
2017-11-15 22:47:21
396
转载 ConcurrentHashMap原理
本文所有源码都是基于jdk1.6 首先说明一点,ConcurrentHashMap并不是可以完全替换Hashtable的,因为ConcurrentHashMap的get、clear函数是弱一致的(后面会说到),而Hashtable是强一致的。有作者是这么解释的:我们将“一致性强度”和“扩展性”之间的对比交给用户来权衡,所以大多数集合都提供了synchronized和concurrent两个版本
2017-11-15 22:30:12
165
转载 ConcurrentModificationException
异常产生 当我们迭代一个ArrayList或者HashMap时,如果尝试对集合做一些修改操作(例如删除元素),可能会抛出java.util.ConcurrentModificationException的异常。 import java.util.Iterator; import java.util.List; public class AddRemoveListElement { pu
2017-11-15 22:04:22
415
转载 UML图及其含义
1.先做个总结: UML图的标志: (1)实现, 虚线 + 三角; (2)泛化(继承),实线 + 三角; (3)依赖,虚线 + 箭头; (4)关联,实线 + 箭头; (5)聚合,实线 + 空心菱形; (6)组合,实线 + 实心菱形。 2.相互间关系 组合>聚合>关联>依赖 2.1 依赖(Dependency): 元素A的变化会影响元素B,但反之
2017-11-14 22:31:07
2016
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人