1.1.1.22 内存管理
文章平均质量分 97
ajian005
这个作者很懒,什么都没留下…
展开
-
内存管理内幕
2004 年 11 月 29 日本文将对 Linux? 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存,以及如何使用垃圾收集自动管理内存。为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如转载 2012-10-30 13:37:00 · 2000 阅读 · 0 评论 -
Java concurrent Framework并发容器之ConcurrentLinkedQueue(1.6)源码分析 ??
1. ConcurrentLinkedQueue简介public class ConcurrentLinkedQueue extends AbstractQueue implements Queue,Serializable一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。新的元原创 2014-02-01 12:16:46 · 1012 阅读 · 0 评论 -
Java concurrent Framework并发容器之concurrent.atomic包源码分析
concurrent.atomic包简介类的小工具包,支持在单个变量上解除锁的线程安全编程。事实上,此包中的类可将volatile值、字段和数组元素的概念扩展到那些也提供原子条件更新操作的类,其形式如下: boolean compareAndSet(expectedValue, updateValue);如果此方法(在不同的类间参数类型也不同)当前保持expectedValue,则以原创 2014-02-01 15:07:33 · 1225 阅读 · 0 评论 -
Java Collections Framework之Stack源码分析缺陷,栈改进版(通过LinkedList实现)(基于JDK1.6)
栈是重要的数据结构,从数据结构角度看,栈也是线性表,其特殊性在栈的基本操作是线性表的子集。Stack作为最基本的数据结构,在JDK代码中,也有它的实现,java.util.Stack类是继承了Vector类,来实现了栈的基本功能。1.栈的基本原理栈(Stack)是限定仅在表尾进行插入或者删除操作的线性表。因此,对于栈来说,表尾端有特殊含义,成为栈顶,表头称之为栈底。由下图可以看出,栈的原创 2014-01-15 21:58:46 · 1836 阅读 · 0 评论 -
操作系统内存管理——分区、页式、段式、段页式管理
1. 内存管理方法 内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。2.1 单一连续存储管理 在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可转载 2014-01-13 22:19:42 · 5406 阅读 · 0 评论 -
Java concurrent Framework并发之Executor框架分析(核心的地方要多次研究)
ThreadPoolExecutor简介public class ThreadPoolExecutor extends AbstractExecutorService一个ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用Executors工厂方法配置。线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增原创 2014-02-01 18:45:32 · 2190 阅读 · 0 评论 -
java.lang包之String,StringBuffer,StringBuilder分析(设个坑,有时间补充)
参考:【总结】String in Java : http://hxraid.iteye.com/blog/522167原创 2014-03-05 10:27:15 · 1194 阅读 · 0 评论 -
深入java虚拟机第二版阅读笔记(不断整理中)
1 class文件是如何被调入内存执行的? 加载原理? 深入探讨 Java 类加载器:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/ 深入Java虚拟机JVM类加载初始化学习笔记 http://developer.51cto.com/art/201103/249613.htm2 类的静态方法和静态变量的初始化是原创 2014-03-05 11:25:30 · 2475 阅读 · 0 评论 -
Cache高速缓存guava-libraries Cache
Guava缓存器源码分析——CacheBuilder CacheBuilder作为LoadingCache 与 Cache实例的创建者,具有以下特征: 1、自动载入键值至缓存; 2、当缓存器溢出时,采用最近最少使用原则进行替换。 3、过期规则可基于最后读写时间。 4、设置键值引用级别。 5、元素移转载 2014-01-31 10:15:40 · 2753 阅读 · 1 评论 -
Bloom Filter概念和原理 & 从哈希存储到Bloom Filter
注: Bloom Filter 系列 : http://blog.csdn.net/jiaomengBloom Filter概念和原理焦萌 2007年1月27日 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于转载 2014-04-02 10:09:24 · 1186 阅读 · 0 评论 -
Java Collection Framework扩展Apache Common Collections介绍
http://www.cnblogs.com/forstudy/archive/2012/04/05/2433853.html原创 2014-01-16 18:32:11 · 1697 阅读 · 0 评论 -
Java Collections Framework之TreeMap源码分析(基于JDK1.6)
红黑树数据结构简介红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(l原创 2014-01-15 09:44:46 · 1433 阅读 · 0 评论 -
堆内内存(in heap cache/memory)还是堆外内存(off heap cache/memory)
堆内内存(in heap cache/memory)还是堆外内存(off heap cache/memory)? 没有GC的map OpenHFT公司提供三个开源库:Chronicle Queue、Chronicle Map和Thread Affinity,这些库可以帮助开发人员使用堆外内存来保存数据。采用堆外内存有很多好处,同时也带来挑战 堆内内存(in h原创 2016-12-01 17:40:26 · 3677 阅读 · 0 评论 -
Java concurrent Framework之util.concurrent(包括atomic and locks)包概述
Package java.util.concurrent DescriptionUtility classes commonly useful in concurrent programming. This package includes a few small standardized extensible frameworks, as well as some classes that原创 2014-01-20 09:30:56 · 1895 阅读 · 0 评论 -
The j.u.c Synchronizer Framework翻译
Java concurrent Framework concurrent.lock并发之AbstractQueuedSynchronizer源码分析 (先设个坑,研读源码后补充)转载 2014-03-02 10:28:21 · 1537 阅读 · 0 评论 -
Java concurrent Framework并发容器之ConcurrentHashMap(JDK5,6,7,8)源码分析&ConcurrentSkipListMap
ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMap转载 2014-01-29 15:27:59 · 1273 阅读 · 0 评论 -
Java concurrent Framework并发容器之ArrayBlockingQueue(1.6)源码分析
ArrayBlockingQueue简介public class ArrayBlockingQueue extends AbstractQueue implements BlockingQueue, Serializable一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元原创 2014-02-01 11:27:29 · 1191 阅读 · 0 评论 -
Java concurrent Framework并发之fork-join框架分析
学习如何使用 Java 7 中的 fork-join 框架实现细粒度并行性硬件趋势驱动编程语言语言、库和框架形成了我们编写程序的方式。Alonzo Church 早在 1934 年就曾表明,所有已知的计算性框架对于它们所能表示的程序集都是等价的,程序员实际编写的程序集是由特定语言形成的,而编程模型(由语言、库和框架驱动)可以简化这些语言的表达。另一方面,一个时代的主流硬转载 2014-02-02 22:41:19 · 1334 阅读 · 0 评论 -
分布式系统的数据结构
常用的数据结构包括:数组,队列,堆栈,链表,树(平衡二叉树,B树,Trie树,堆),哈希表,图,后缀数组,等等。其中,堆,图结构,Trie树及后缀数组解决特定问题,其它数据结构解决通用的查找,更新,删除操作。Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度转载 2012-06-27 16:33:38 · 1331 阅读 · 0 评论 -
Boost C++ Libraries
下载地址:http://sourceforge.net/projects/boost/files/boost/1.51.0/Boost C++ 库(Libraries)是一组扩充C++功能性的经过同行评审(Peer-reviewed)且开放源代码程序库。大多数的函数为了能够以开放源代码、封闭专案的方式运作,而授权于Boost软件授权条款(Boost Software Licen原创 2012-11-01 14:08:15 · 1215 阅读 · 0 评论 -
Java Collections Framework之HashMap源码分析(基于JDK1.6)
在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。 在看HashMap源码之前先复习一下数据结构。 Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表恰好相反,转载 2014-01-14 22:46:40 · 1518 阅读 · 0 评论 -
Java Collections Framework之ArrayList源码分析(基于JDK1.6)
该类是JDK1.2中添加的类,可用于替代Vector(1.1中包含的类库) 其内部持有的也是一个数组。Hierarchy的结构如下: 该类并非线程安全的,主要含有两个字段: elementData:内部持有的数组 size:ArrayList的长度 构造函数如下: 利用该参数初始化该数组。将数组的大小设置为10,为该数组分配内存空转载 2014-01-14 18:17:51 · 1097 阅读 · 0 评论 -
Java Collections Framework之HashSet及LinkedHashSet源码分析(基于JDK1.6)
Java容器类的用途是“保存对象”,分为两类:Map——存储“键值对”组成的对象;Collection——存储独立元素。Collection又可以分为List和Set两大块。List保持元素的顺序,而Set不能有重复的元素。 本文分析Set中最常用的HashSet类,并简单介绍和对比LinkedHashSet。 首先对Set接口进行简要的说明。 存入Set的每转载 2014-01-15 17:51:27 · 1300 阅读 · 0 评论 -
Java Collections Framework之LinkedList源码分析(基于JDK1.6)
LinkedList 或 ArrayList结构改变包括:向ArrayList添加、删除元素,或者明确的手动修改数组大小。如果仅仅是给一个元素赋值,不属于结构的改变。 结构改变引起的问题: 可能导致Iterator报ConcurrentModificationException异常。 注意:当ArrayList使用了iterator()方法产生自身对应的Iterato转载 2014-01-15 17:22:24 · 1082 阅读 · 0 评论 -
Java Collections Framework之Queue(LinkedList实现)源码分析(基于JDK1.6)
Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue继承了Queue接原创 2014-01-15 22:42:38 · 1186 阅读 · 0 评论 -
C&C++之标准库
什么是C&C++的标准库?C语言被发明出来时并没有什么库函数,随着C语言的流行,越来越多的厂商或者机构组织开始提供C的编译器,并且同时把经常用到的函数封装成“库”的形式发布;不同的组织发布的库函数的接口和数量各不相同。后来,标准化组织ANSI制定了C语言的标准,同时也制定了一定数量的库(或库函数),就就成为标准库函数。(后来这个ANSI C标准上升为ISO标准,但是内容并没有变化!谁让美国是老原创 2012-11-01 13:48:52 · 1547 阅读 · 0 评论 -
Java Collections Framework之Deque(LinkedList实现)源码分析(基于JDK1.6)(已补充)
deque 是“double ended queue(双端队列)”的缩写,通常读为“deck”双端队列就是一个两端都是结尾的队列。队列的每一瑞都可以插入数据项和移除数据项。这些方法可以叫作insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),原创 2014-01-16 10:53:18 · 1109 阅读 · 0 评论 -
Java Collections Framework之Collections源码分析(基于JDK1.6)
Collections类功能:1.算法,比如排序(sort),二分查找(binarySerach),最大值(max)最小值(min),翻转(reverse),旋转(rotate),置换(shuffle),交换(swap)等。 2.提供对集合进行包装的静态方法。比如把指定的集合包装成线程安全的集合synchronizedXXX、包装成不可修改的集合unmodifiableXXX、包装成类型安原创 2014-01-16 17:40:07 · 1432 阅读 · 0 评论 -
Java Collections Framework之LinkedHashMap源码分析(基于JDK1.6)(??)
注:应用于Cache时,可以重写 removeEldestEntry(Map.Entry) 方法来实施策略,以便在将新映射关系添加到映射时自动移除旧的映射关系。 LinkedHashMap类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点;而在迭代访问时反而更快,因为它使用链表维护内部次序(HashMap转载 2014-01-16 15:39:09 · 1129 阅读 · 0 评论 -
Java Collections Framework之Arrays(method:sort(),binarySearch(),copyOf())部分源码分析(基于JDK1.6)
常见算法时间复杂度O(1): 表示算法的运行时间为常量O(n): 表示该算法是线性算法O(㏒2 n):二分查找算法O(n㏒2 n):快排,合并排序O(n2 ):对数组进行排序的各种简单算法,例如直接插入排序的算法。O(n3 ):做两个n阶矩阵的乘法运算O(2n ):求具有n个元素集合的所有子集的算法O(n!): 求具有N个元素的全排列的算法优O(1)2 n)原创 2014-01-16 16:56:54 · 1326 阅读 · 0 评论 -
Java collections framework(Java容器框架)(基于维基百科补充)
Java collections frameworkFrom Wikipedia, the free encyclopediaJump to: navigation, searchclass- and interface hierarchy of java.util.MapThe Java collections framework (JCF)原创 2014-01-14 13:58:18 · 2532 阅读 · 0 评论 -
Java concurrent Framework并发容器之ConcurrentHashMap(Doug Lea 非JDK版)源码分析
在7月份的那期 Java理论与实践(“并发集合类”)中,我们简单地回顾了可伸缩性的瓶颈,并讨论了怎么用共享数据结构的方法获得更高的并发性和吞吐量。有时候学习的最好方法是分析专家的成果,所以这个月我们将分析 Doug Lea 的util.concurrent 包中的 ConcurrentHashMap 的实现。JSR 133 将指定 ConcurrentHashMap 的一个版本,该版本针对转载 2014-01-28 22:40:36 · 1342 阅读 · 0 评论 -
Java concurrent Framework并发容器之CopyOnWriteArrayList(1.6)源码分析
简介CopyOnWriteArrayList是jdk concurrent包中提供的一个非阻塞型的,线程安全的List实现。CopyOnWriteArrayList是一个线程安全、并且在读操作时无锁的ArrayList。CopyOnWriteArrayList在进行数据修改时,会对数据进行锁定,每次修改时,先拷贝整个数组,然后修改其中的一些元素,完成上述操作后,用一个原子操作替换整个数原创 2014-01-31 22:54:16 · 1086 阅读 · 0 评论 -
性能调优指南--计算机系统Java应用程序V0.1
写blog和写代码一样,刚开始都是不完美的,需要不断的修正和重构,如果大家在阅读本blog中发现任何问题和疑问,都欢迎讨论或拍砖。转载请保持原链接地址:https://blog.csdn.net/ajian005/article/details/18910685本文代码示例JavaPerformanceOptimizerDemo.rar下载地址:http://download.csdn.net...原创 2014-02-03 18:34:43 · 5034 阅读 · 3 评论