上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 40 下一页
摘要: 上图是 set 家族整体的结构, set 继承于 Collection 接口,是一个「不允许出现重复元素,并且无序的集合」. HashSet 是「基于 HashMap 实现」的,底层「采用 HashMap 来保存元素」 元素的哈希值是通过元素的 hashcode 方法 来获取的, HashSet 首 阅读全文
posted @ 2023-03-31 00:13 CodeWhisperer001 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 1.ArrayList 是实现了基于「数组」的,存储空间是连续的。LinkedList 基于「链表」的,存储空间是不连续的。(LinkedList 是双向链表) 2.对于「随机访问」 get 和 set ,ArrayList 觉得优于 LinkedList,因为 LinkedList 要移动指针。 阅读全文
posted @ 2023-03-31 00:11 CodeWhisperer001 阅读(11) 评论(0) 推荐(0) 编辑
摘要: java 是一门「开源的跨平台的面向对象的」计算机语言. 跨平台是因为 java 的 class 文件是运行在虚拟机上的,其实跨平台的,而「虚拟机是不同平台有不同版本」,所以说 java 是跨平台的. 面向对象有几个特点: 1.「封装」 两层含义:一层含义是把对象的属性和行为看成一个密不可分的整体, 阅读全文
posted @ 2023-03-31 00:09 CodeWhisperer001 阅读(27) 评论(0) 推荐(0) 编辑
摘要: JMM 就是 「Java内存模型」(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)「屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都 阅读全文
posted @ 2023-03-31 00:07 CodeWhisperer001 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 在 Java1.6 之前的版本中,synchronized 属于重量级锁,效率低下,「锁是」 cpu 一个「总量级的资源」,每次获取锁都要和 cpu 申请,非常消耗性能。 在 「jdk1.6 之后」 Java 官方对从 JVM 层面对 synchronized 较大优化,所以现在的 synchron 阅读全文
posted @ 2023-03-31 00:05 CodeWhisperer001 阅读(20) 评论(0) 推荐(0) 编辑
摘要: ReentrantLock 意为「可重入锁」,说起 ReentrantLock 就不得不说 AQS ,因为其底层就是「使用 AQS 去实现」的。 ReentrantLock有两种模式,一种是公平锁,一种是非公平锁。 公平模式下等待线程入队列后会严格按照队列顺序去执行 非公平模式下等待线程入队列后有可 阅读全文
posted @ 2023-03-30 23:59 CodeWhisperer001 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 1、「继承Thread类」,重写run()方法 public class Demo extends Thread{ //重写父类Thread的run() public void run() { } public static void main(String[] args) { Demo d1 =  阅读全文
posted @ 2023-03-30 23:57 CodeWhisperer001 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 判断线程池中的线程数「是否大于设置的核心线程数」 如果「没有满」,则「放入队列」,等待线程空闲时执行任务 如果队列已经「满了」,则判断「是否达到了线程池设置的最大线程数」 如果「没有达到」,就「创建新线程」来执行任务 如果已经「达到了」最大线程数,则「执行指定的拒绝策略」 如果「小于」,就「创建」一 阅读全文
posted @ 2023-03-30 23:54 CodeWhisperer001 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ​ 「强引用 StrongReference」 Object obj = new Object(); //只要obj还指向Object对象,Object对象就不会被回收 垃圾回收器不会回收被引用的对象,哪怕内存不足时,JVM 也会直接抛出 OutOfMemoryError,除非赋值为 null。 「 阅读全文
posted @ 2023-03-30 23:52 CodeWhisperer001 阅读(37) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal其实就是「线程本地变量」,他会在每个线程都创建一个副本,那么在线程之间访问内部副本变量就行了,做到了线程之间互相隔离。 ThreadLocal 有一个「静态内部类 ThreadLocalMap」,ThreadLocalMap 又包含了一个 Entry 数组,「Entry 本身是 阅读全文
posted @ 2023-03-30 23:50 CodeWhisperer001 阅读(9) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 40 下一页