摘要:
HashMap 1.HashMap的数据结构,在jdk8之前使用数组+链表,叫做链地址法,jdk8之后使用的是数组+链表+红黑树,数组容易查询难修改,链表慢查询容易修改,所以两者相结合 2.计算完key哈希值之后,要根据key计算出应该对应的数组下标,这个时候就需要对数组的长度进行取模运算,这里采用 阅读全文
posted @ 2025-12-10 20:10
Huangyien
阅读(7)
评论(0)
推荐(0)
摘要:
线程池使用 最常用直接通过Executors工具快速床架,不需要手动配置参数,但是不推荐,阿里巴巴开发手册规定了不能使用Executors直接创建,有可能大量创建线程导致OOM 手动创建的ThreadPoolExecutor需要指定7个核心参数 线程池参数 线程核心数(长期维持的最小线程数),最大线 阅读全文
posted @ 2025-12-10 20:01
Huangyien
阅读(3)
评论(0)
推荐(0)
摘要:
volatile 一个变量修饰符,只能用来修饰变量,可以保证有序性和可见性,但是不能保证原子性,最常见的问题就是i++,他分为三个操作,在主内存中拿到原始值,进行增加,然后从工作内存写回主内存,多个线程并发执行的时候可能会有回写主内存覆盖问题。想要解决可以使用Atomic类,比如AtomicInte 阅读全文
posted @ 2025-12-10 15:35
Huangyien
阅读(3)
评论(0)
推荐(0)
摘要:
sychronized sychronized主要用来给同步方法和同步代码块进行加锁,保证多线程环境下的原子性,可见性和有序性 在同步方法中会有一个ACC_SYCHRONIZED标志,如果有线程过来执行方法,就会先检查有没有这个表示,然后获得这个监视器锁,执行方法,再有线程过来的时候就无法获得这个监 阅读全文
posted @ 2025-12-10 09:36
Huangyien
阅读(6)
评论(0)
推荐(0)

浙公网安备 33010602011771号