post_img

如何停止一个正在运行的进程

摘要

有三种方式可以停止线程 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止 使用stop方法强行终止(不推荐,方法已作 …

post_img

线程状态之间是如何变化的

摘要

线程状态之间是如何变化的 创建线程对象是新建状态 调用了start()方法转变为可执行状态 线程获取到了CPU的执行权,执行结束是 …

post_img

并行和并发有什么区别

摘要

单核CPU下线程实际还是串行执行的 操作系统中有一个组件叫做任务调度器,将cpu的时间片(windows下时间片最小约为 15 毫 …

post_img

进程和线程的区别

摘要

程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、 …

post_img

HashMap在1.7的死循环问题

摘要

在jdk1.7的hashmap中在数组进行扩容的时候,因为链表是头插法,在进行数据迁移的过程中,有可能导致死循环 比如说,现在有两 …

post_img

HashMap的寻址算法

摘要

计算对象的 hashCode() 再进行调用 hash() 方法进行二次哈希, hashcode值右移16位再异或运算,让哈希分布 …

post_img

HashMap的扩容机制

摘要

在添加元素或初始化的时候需要调用resize方法进行扩容,第一次添加数据初始化数组长度为16,以后每次每次扩容都是达到了扩容阈值( …

post_img

HashMap的put方法执行流程

摘要

判断键值对数组table是否为空或为null,否则执行resize()进行扩容(初始化) 根据键值key计算hash值得到数组索引 …

post_img

HashMap的底层原理

摘要

底层使用hash表数据结构,即数组+(链表 | 红黑树) 添加数据时,计算key的值确定元素在数组中的下标 key相同则替换 不同 …