1、HashMap 源码解读(TreeMap. LinkedHashMap)
hashmap 允许空值和空key, 非线程安全的,不保证存储顺序
初始容量和负载因子(0.75)
结构化改变,增加或者删除必须是同步的, 单纯的改变值不需要同步
获取遍历器的时候,多线程的结构的改变,不是通过遍历器的remove方法的结构改变,都是在遍历器的时候 抛出异常,但是这个不能保证,只能是测试使用
根据hashcode排序,相同comparable的根据comparable排序
treeNode是正常节点的2倍 .
树节点往往是根节点, iterator.remove才可能不是根节点,但是可以根据treenode.root恢复
容量必须是2的倍数,默认为16,最大为2^30
一个桶的元素>=8 就从list 变为 tree,<=6就从tree变为list
桶数量到64的时候里面的桶才会被树形化
4*8的元素在同一个节点的时候,会被重新更新size大小
hashBinNode hashCode是key和value的异或
2、heap 和 stack 的区别
stack: 先进后出
函数调用栈,有结构,查询快,线程独占的,存储引用和基本类型
heap:
先进先出,没有结构,查询慢,线程共享的,存储数值,等待垃圾回收
方法区, 存储static唯一变量, 被所有线程共享
java内存模型--JMM(Java Memory Model)
http://www.cnblogs.com/lewis0077/p/5143268.html
在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步?
在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。
线程之间通过共享程序公共的状态,通过读-写内存中公共状态的方式来进行隐式的通信。同步指的是程序在控制多个线程之间执行程序的相对顺序的机制,在共享内存模型中,同步是显式的,程序员必须显式指定某个方法/代码块需要在多线程之间互斥执行。
Java的内存结构,也就是运行时的数据区域:
Java虚拟机在执行Java程序的过程中,会把它管理的内存划分为几个不同的数据区域,这些区域都有各自的用途、创建时间、销毁时间。
Java运行时数据区分为下面几个内存区域:
1.PC寄存器/程序计数器:
严格来说是一个数据结构,用于保存
相关推荐
软件开发使用的技术内容,包含这里一年多里涉及到的技术及其原理。
微店项目技术内容.doc
参考资料-14招标文件要求的其他技术内容或投标人认为需要补充的资料.zip
油田开发动态分析的基本技术内容和要求PPT课件.pptx
电子设计自动化技术内容讲解.docx
电子设计自动化技术内容讲解.doc
计算机三级嵌入式开发技术内容整理.pdf
1项目目标及主要技术内容.pdf
策略性商务谈判技术内容及答案.docx
建筑业十项新技术内容解析.doc
小额贷款风控技术内容及调查方法.ppt
共赢领导力提升领导力种技术内容.docx
XXXXX项目配电工程施工组织方案技术内容.doc
共赢领导力--提升领导力5种技术内容.docx
本文介绍的是高级配电自动化的基本概念及技术内容
输入输出接口技术内容第七稿PPT学习教案.pptx
微机原理与接口技术内容重点难点PPT学习教案.pptx
100项资源节约推广技术内容介绍-附件:.doc