摘要: 我们关注的操作有:get,put,remove 这3个操作。 对于哈希表,Java中采用链表的方式来解决hash冲突的。一个HashMap的数据结构看起来类似下图: 实现了同步的HashTable也是这样的结构,它的同步使用锁来保证的,并且所有同步操作使用的是同一个锁对象。这样若有n个线程同时在ge 阅读全文
posted @ 2022-03-04 11:38 高压锅里的大萝卜 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 前言 ​ 提到双重检查锁(Double-Checked Locking)通常简称为DCL,肯定很多人第一时间想到的就是单例模式。 ​ 单例模式通常有两种方式:饿汉与懒汉模式。那么懒汉模式采用了延迟初始化来降低类创建造成的消耗,DCL是常见的延迟初始化技术,但它是一个错误的用法。下面来详细分析以下这种 阅读全文
posted @ 2022-03-03 10:46 高压锅里的大萝卜 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 前言我们常用的创建线程方式一般有下面 2 种: 继承Thread,重写run方法实现Runnable接口,重新run方法其实在 Executor 框架中还有一种方法可以实现异步,那就是实现 Callable 接口并重写call方法。虽然是实现 Callable ,但是在 Executor 实际运行时 阅读全文
posted @ 2022-03-01 11:45 高压锅里的大萝卜 阅读(734) 评论(0) 推荐(1) 编辑
摘要: hreadPoolExecutor提供了四个构造方法: 我们以最后一个构造方法(参数最多的那个),对其参数进行解释: public ThreadPoolExecutor(int corePoolSize, // 1 int maximumPoolSize, // 2 long keepAliveTi 阅读全文
posted @ 2022-02-28 17:33 高压锅里的大萝卜 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 多线程环境下,HashMap扩容会导致死锁,下面图解过程: 并发下的Rehash(多线程)1)假设我们有两个线程,都执行以下扩容代码。 do { Entry<K,V> next = e.next; // <--假设线程一执行到这里就被调度挂起了,执行其他操作 int i = indexFor(e.h 阅读全文
posted @ 2022-02-28 16:46 高压锅里的大萝卜 阅读(280) 评论(0) 推荐(0) 编辑
摘要: Collection | ├AbstractCollection 对Collection接口的最小化抽象实现 | │ | ├List 有序集合 | │-├AbstractList 有序集合的最小化抽象实现 | │-├ArrayList 基于数组实现的有序集合 | │-├LinkedList 基于链表 阅读全文
posted @ 2022-02-28 14:04 高压锅里的大萝卜 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 一.java io流 概况 按照技术体系分为BIO、NIO、AIO 每种技术体系都有以下分类 1. 流内容角度分类: 1.字节流 > 输入或者输出都是字节。 2.字符流 > 输入或者输出都是字符,相比字节流,其实是多做一步,自动把字符转换成字节或者把字节转换为字符(涉及到字符集或者操作系统默认字符集 阅读全文
posted @ 2022-02-25 11:56 高压锅里的大萝卜 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一.背景 java的比较器有两类,分别是Comparable接口和Comparator接口。 二.代码示例 1.Comparator代码 //构造一个排序比较器 Comparator comparator = new Comparator<String>() { @Override public i 阅读全文
posted @ 2022-02-24 16:39 高压锅里的大萝卜 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 1 length()字符串的长度 String a = "Hello Word!"; System.out.println(a.length); 输出的结果是字符串长度10。 2 charAt()截取一个字符 String a = "Hello Word"; System.out.println(a 阅读全文
posted @ 2022-02-24 15:23 高压锅里的大萝卜 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 一.背景 针对对象的某个接口,动态生成该对象的代理,增加对象被调用之前和之后的控制逻辑。 二.代码示例 public static interface Student {//接口 void exam(); } public static class MiddleSchoolStudent imple 阅读全文
posted @ 2022-02-24 14:04 高压锅里的大萝卜 阅读(22) 评论(0) 推荐(0) 编辑