日常总结

六眼飞鱼酱① 提交于 2019-12-16 03:00:51

集合:List(列表)存储元素有序,就可以重复(ArrayList,LinkedList,Vector) ArrayList:10 2n 不安全 LinkedList: 不安全 Vector:10 2n 安全 Set(集合)存储元素无序,不可以重复(HashSet,LinkedHashSet,TreeSet,) HashSet:16 0.75 2n 不安全 底层是HahsMap TreeSet:会对存入的元素进行排序(升序) 不安全 Queue(队列)先进先出的原则 映射Map: HashMap 安全 底层数组+链表+红黑二叉树,桶:数组里的每个元素空间叫做桶 当我们需要放入元素,通过put方法传入键值对,首先回去计算键的哈希码值,算出hash码值后,对桶数(默认初始容量)进行取余,这样会保证键值对会放到每个桶中,得到桶值,会把键值对放入桶中,完成元素的添加,当需要删除元素时,调用get方法回去键的eauals方法找到正确的值,进行返回。 如果计算出key的hash值一样时,会产生hash冲突,俩个元素要放入同一个桶中,此时有四种解决办法: 链地址法:会把hash值相同的元素链接起来, 新对象会和桶里面的所有元素用equals比较, 相同,会不存储, 不同,会链接起来,形成链表,当链接的数量多于8个,会转换成红黑树进行存储。 建立公共溢出区:将hash表分为俩部分,基本表和溢出表,凡是hash冲突的,都放到溢出表,进行存储。 开放地址法:以产生冲突的hash值为基础,在产生一个,一直到不冲突为止。 再hash法:再产生一个hash值,直到不冲突为止。 TreeMap:不安全,底层红黑树实现。 红黑树: 特性:根节点黑色,新节点红色,叶子节点是黑色NULL节点,红儿黑,黑儿红黑,黑色节点的高度一致。 任何不平衡都会在3次旋转之内解决 插入删除节点会产生红黑树不平衡, 修正:变色,左旋和右旋 变色:根据特性进行变色 左旋:大兄弟节点变为父节点,兄弟节点的小子节点变为另一个兄弟的大子节点 右旋:父节点变为大兄弟节点,大子节点变为另一个兄弟的小子节点 线程: 线程和进程的区别,

    进程系统资源分配和调度的基本单位,而线程是cpu调度和分配的基本单位
    一个进程可以有多个至少一个线程。
    进程资源不共享,同类线程资源共享。
   
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!