HashMap 以及多线程基本感念
接口 Map :映射项,(键值对 ) 的容器
注意: 键 是唯一的
值 是可以重复的
实现类 HashMap :哈希表结构 允许使用null值 和 null 键 线程不安全 键唯一 无序
linkedHashMap: 保证插入顺序 和迭代顺序一致
Hashtable:数据结构:哈希表 不允许使用nullnull值 和 null 键,线程安全
pronerties 持久属性集,键和值都是字符串 可保存在流中和从流中加载
TreeMap:数据结构 :红黑树;排序
HashMap 初始容量 16,扩容时机就是加载因子控制,初始加载因子0.75
初始容量加载因子 开始扩容
增:
1. V put(K key, V value)
将指定的值与此映射中的指定键关联(可选操作)。
2.void putAll(Map<? extends K,? extends V> m)
从指定映射中将所有映射关系复制到此映射中(可选操作)。
删除:
1. void clear() 删除
从此映射中移除所有映射关系(可选操作)。
2. V remove(Object key) 根据键 来删出一个映射关系
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
改
查
1. int size() :Map中映射项的个数
返回指定键所映射的值;如果Map中没有元素,则返回 null。
2. int hashCode()
返回此映射的哈希码值。
3.Set<K> keySet() 将键 存入 Set中 然后将set结合返回
返回此映射中包含的键的 Set 视图。
4. Collection<V> values()
返回此映
3. Set<Map.Entry<K,V>> entrySet():将所有的硬设项,作为元素存入set集合中,再将set集合返回
判断
1.boolean isEmpty() :是否为空
2. boolean equals(Object o)
比较指定的对象与此映射是否相等。
3.boolean containsKey(Object key) :是否包含键
4.boolean containsValue(Object value):是否包含值
5.V get(Object key) 根据键 获取值
(先继承 再实现)
Arrays 数组
Collections 集合
1.static int binarySearch (int[] a, int key) 二分法查找 :升序
多线程基础
1.程序 (Program) 是一个静态的概念 , 一般对应与操作系统中的一个可执行的文件
2.执行中的程序叫做 进程 Process 是一个动态的概念, 其实进程就是一个内存中独立运行的 程序空间
3.LInux 是服务器 Windows : ”多任务“的操作系统 操作系统可以同时运行多个任务
4.时间片轮转调度算法
单核的话 你们这些软件 只能运行5毫秒 然后下一个 进行线程切换
5.线程 进程的分支 我们称为线程
总结 1 .程序 没有开始运行的代码
2进程 开始执行的程序
3.多线程 Thread 一个程序内部 需要做多任务
一条生产线 多个工人 单进程多线程
多个生产线 多个工人 多进程 多线程
线程是程序执行的最小单位
一个进程 由一个或多个线程组成
线程是一个进程中代码的不同执行路线
进程之间是相互独立的 ,同一个进程下 线程是共享内存空间的 包括 (代码段, 数据集堆等)
并发 多个线程同时运行 一个CUP下 计算机采用时间片 算法 其他线程处于就绪状态 这种方式我们称为并发
串行 一个cup 任务 A ->B ->C
并行 任务数量小于CPU核数 就是任务真的是一起执行的
一个cpu A 执行一会儿 B 执行一会儿 C 执行一会儿 轮着来 称为 并发
HashMap 以及多线程基本感念的更多相关文章
- 你是否听说过 HashMap 在多线程环境下操作可能会导致程序死循环?
作者:炸鸡可乐 原文出处:www.pzblog.cn 一.问题描述 经常有些面试官会问,是否了解过 HashMap 在多线程环境下使用时可能会发生死循环,导致服务器 cpu 100% 的线上故障? 关 ...
- Java之HashMap在多线程情况下导致死循环的问题
PS:不得不说Java编程思想这本书是真心强大.. 学习内容: 1.HashMap<K,V>在多线程的情况下出现的死循环现象 当初学Java的时候只是知道HashMap<K,V& ...
- java中HashMap在多线程环境下引起CPU100%的问题解决(转)
最近项目中出现了Tomcat占用CPU100%的情况,原以为是代码中出现死循环,后台使用jstack做了dump,发现是系统中不合理使用HashMap导致出现了死循环(注意不是死锁). 产生这个死循环 ...
- java中HashMap在多线程环境下引起CPU100%的问题解决
最近项目中出现了Tomcat占用CPU100%的情况,原以为是代码中出现死循环,后台使用jstack做了dump,发现是系统中不合理使用HashMap导致出现了死循环(注意不是死锁). 产生这个死循环 ...
- 【JAVA】HashMap的原理及多线程下死循环的原因
再次翻到以前工作中遇到的一个问题,HashMap在多线程下会出现死循环的问题,以前只是知道会死循环,导致CPU100%把机器拖跨,今天来彻底看看 首先来看下,HashMap的原理:HashMap是一个 ...
- HashMap的resize方法中尾部遍历出现死循环问题 Tail Traversing (多线程)
一.背景介绍: 在看HashMap源码是看到了resize()的源代码,当时发现在将old链表中引用数据复制到新的链表中时,发现复制过程中时,源码是进行了反序,此时是允许反序存储的,同时这样设计的效率 ...
- 关于HashMap多线程下环形链表的总结
目录 1. 概述 2. 敲黑板的点 3. 为什么会出现循环链表的情况呢?(jdk1.7) 4. jdk1.8中改进了resize方法 5. HashMap的线程安全问题 6. 总结 1. 概述 本文主 ...
- HashMap多线程并发的问题
---恢复内容开始--- 前言:大多数javaer都知道HashMap是线程不安全的,多线程环境下数据可能会发生错乱,一定要谨慎使用.这个结论是没错,可是HashMap的线程不安全远远不是数据脏读这么 ...
- 图解集合5:不正确地使用HashMap引发死循环及元素丢失
问题引出 前一篇文章讲解了HashMap的实现原理,讲到了HashMap不是线程安全的.那么HashMap在多线程环境下又会有什么问题呢? 几个月前,公司项目的一个模块在线上运行的时候出现了死循环,死 ...
- HashMap在并发下可能出现的问题分析
我们都知道,HashMap在并发环境下使用可能出现问题,但是具体表现,以及为什么出现并发问题,可能并不是所有人都了解,这篇文章记录一下HashMap在多线程环境下可能出现的问题以及如何避免. 在分析H ...
随机推荐
- JVM Dump分析
Thread Dump介绍 Thread Dump是非常有用的诊断 Java应用问题的工具.每一个 Java虚拟机都有及时生成所有线程在某一点状态的 thread-dump的能力,虽然各个 Java虚 ...
- LabVIEW之同步——集合点vi
这是一个对我来讲比较偏的工具,做过很多项目,没有用它也能完成各种各样的项目. 今天我们一起来了解下这个工具,所以称之为工具,因为它属于NI LabVIEW的白色节点,一般是有官方利用LabVIEW代码 ...
- PDF打开后显示的名称不是其文件名怎么办?
本文介绍打开PDF文件时,PDF阅读器所显示的文件名称与文件实际名称不一致的解决办法. 就在刚刚准备一篇空间三维建模相关的博客时,偶然发现了如下一个问题: 在打开这个图中名称为空间三维建模 ...
- 迁移学习《Asymmetric Tri-training for Unsupervised Domain Adaptation》
论文信息 论文标题:Asymmetric Tri-training for Unsupervised Domain Adaptation论文作者:Kuniaki Saito, Y. Ushiku, T ...
- @property、关联关系、继承、多继承
1.@property使用来修饰属性的,将属性私有化改为公有化,但是可以设置属性条件 格式: class Person: def __init__(self,name,age): self.name ...
- Disruptor-简单使用
前言 Disruptor是一个高性能的无锁并发框架,其主要应用场景是在高并发.低延迟的系统中,如金融领域的交易系统,游戏服务器等.其优点就是非常快,号称能支撑每秒600万订单.需要注意的是,Disru ...
- LeeCode 316周赛复盘
T1:判断两个事件是否存在冲突 思路:判断两个区间是否有交集 public boolean haveConflict(String[] event1, String[] event2) { // 比较 ...
- Poe – Fast AI Chat 一款集成AI工具
前言 Poe – Fast AI Chat是由知名问答社区 Quora 开发的 AI 产品,提供实时在线与多个 AI 机器人交流的功能.在去年12月,Quora首次推出Poe作为封闭测试版,并于2月份 ...
- 搭建CTF动态靶场
前言 本文借鉴文章:https://www.yuque.com/dengfenglai-esbap/kb/mc4k41?#xOxNG 在此基础上修改了一点(照着原来的做没成功),感谢这位师傅给的资源. ...
- 在void 中使用return的意思
在定义的void函数里如果想要提前终止函数 格式为 return; 如果 在有返回值的函数中 格式为: return+值(0 -1 ......) 但如果在void 函数中写return 0 ; 则会 ...