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 ...
随机推荐
- 大数据面试——HDFS
一.Hadoop1.0 与 Hadoop2.0的区别
- 德国坦克傲龙7.1PCIe | 魔音师 声源PCIe MaX 声卡驱动皮肤
适用于德国坦克傲龙7.1PCIe和魔音师 声源PCIe MaX 声卡驱动皮肤的皮肤. 皮肤使用方法:退出声卡驱动程序(托盘图标右键退出),之后删除声卡驱动目录里面的TERRATECAudioCente ...
- odoo 开发入门教程系列-一些用户界面
一些用户界面 数据文件 (XML) 参考: 该主题关联文档可以查看Data Files. 上一章,我们通过CSV文件添加了数据.当需要添加数据格式简单时,用CSV格式还是很方便的,当数据格式更复杂时( ...
- Trie树结构
PrefixTree 208. 实现 Trie (前缀树) Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键.这一数据结构 ...
- hyperf协程免费查询快递物流
https://blog.csdn.net/lin5188230/article/details/124920474
- Django之admin后台管理
目录 创建超级用户 向页面中添加表 admin管理页面表名中文显示 创建超级用户 python manage.py createsuperuser 向页面中添加表 登录后,页面中是什么都没有的,还需要 ...
- AndroidBanner - ViewPager 03
AndroidBanner - ViewPager 03 上一篇文章,描述了如何实现自动轮播的,以及手指触摸的时候停止轮播,抬起继续轮播,其实还遗留了一些问题: 当banner不可见的时候,也需要停止 ...
- @property、关联关系、继承、多继承
1.@property使用来修饰属性的,将属性私有化改为公有化,但是可以设置属性条件 格式: class Person: def __init__(self,name,age): self.name ...
- 多态 polymorphic
多态是同一个行为具有多个不同表现形式,多态实现需要以下条件 继承父类并重写方法 父类引用指向子类对象:Animal a = new Cat(); 多态实例: //测试类 public class Te ...
- day40:MySQL:python操作mysql:pymysql模块&SQL注入攻击
目录 part1:用python连接mysql 1.用python连接mysql的基本语法 2.用python 创建&删除表 3.用python操作事务处理 part2:sql注入攻击 1.s ...