摘要: 简介: 在jdk1.8中,hashmap有了较大的优化,底层实现由之前的“数组+链表”改为了“数组+链表+红黑树”。jdk1.8的hashmap的数据结构如图所示,当链表节点较少时仍然以链表形式存在,当链表节点较多时(大于8)会转化为红黑树。 重要知识点: 1、文章中头节点指的是table表上索引位 阅读全文
posted @ 2020-07-20 23:59 qumasha 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 问题 创建maven项目过后,一直卡在Generating project in Batch mode的步骤,花费了三十分钟还是在下载文件,查看下载的详情,速度为2-5k/s,令人十分郁闷。 问题解决 1、首先下载archetype-catalog.xml文件,放到本地的apache-maven目录 阅读全文
posted @ 2020-05-08 02:34 qumasha 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 一、什么是CAS? 比较并交换(compare and swap),它是一条CPU并发原语。判断内存某个位置的值是否为预期值,如果是的话则更新为新值,这个过程是原子的。 原语是操作系统的用语,是由若干条指定组成,用于完成某个功能的一个过程,并且原语的执行必须是连续的,在执行过程中不允许被中断,也就是 阅读全文
posted @ 2020-05-05 23:24 qumasha 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 概要: AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray这三个数组类型的原子类的原理和用法相似。本文章以AtomicLongArray对数组类型的原子类进行介绍。 AtomicLongArray介绍和函数列表 AtomicLongArra 阅读全文
posted @ 2020-05-04 00:55 qumasha 阅读(115) 评论(0) 推荐(1) 编辑
摘要: 概要 AtomicInteger,AtomicLong和AtomicBoolean这三个基本类型的原子类的原理和用法相似。本文章以AtomicLong对基本类型的原子类进行介绍 AtomicLong介绍和函数列表 AtomicLong的作用是对长整型进行原子操作。在32位操作系统中,64位的long 阅读全文
posted @ 2020-05-04 00:53 qumasha 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1、基本类型:AtomicInteger,AtomicLong,AtomicBoolean 2、数据类型:AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray 3、引用类型:AtomicReference,AtomicStampedRefer 阅读全文
posted @ 2020-05-04 00:49 qumasha 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 1、生产/消费者模型 生产/消费者模型是一个典型的多线程问题,涉及到的对象包括“生产者”、“消费者”、“仓库”和“产品”。它们之间的关系如下;(01)生产者仅仅在仓库未满的时候生产,仓库满了则停止生产 (02)消费者仅仅在仓库有产品的时候才能消费,仓库空则等待 (03)当消费者发现仓库没有产品的时候 阅读全文
posted @ 2020-05-04 00:48 qumasha 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1、线程优先级 Java中的线程优先级的范围是1~10,默认的优先级是5.高优先级线程会优先于低优先级线程执行。 Java中有两种线程:用户线程和守护线程。可以通过isDaemon()方法来区别它们:如果返回false,则说明是用户线程。 用户线程一般执行用户级任务,而守护线程为“后台线程”,一般用 阅读全文
posted @ 2020-05-04 00:47 qumasha 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1、join()介绍 join()定义在Thread.java中。join()的作用为:让“主线程”等待“子线程”结束之后才能继续运行。 示例: public class Father extends Thread { public static void main(String[] args) { 阅读全文
posted @ 2020-05-04 00:45 qumasha 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 1、sleep()介绍 sleep()定义在Thread.java中。sleep()的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠时间会大于/等于该休眠时间;在线程被重新唤醒时,它会由“阻塞状态”变为“就绪状态”,从而等待CPU的 阅读全文
posted @ 2020-05-04 00:42 qumasha 阅读(239) 评论(0) 推荐(0) 编辑