随笔分类 -  源码 / JDK

jdk
摘要:1 前言 本文小看一下 Thread 类里的优先级。 2 优先级 在Thread类中有一个实例属性和两个实例方法,专门用于进行线程优先级相关的操作,与线程 优先级相关的成员属性为: private int priority;//该属性保存一个Thread实例的优先级,即1~10之间的值 与Threa 阅读全文
posted @ 2024-07-16 08:42 酷酷- 阅读(14) 评论(0) 推荐(0) 编辑
摘要:1 前言 前面我看过了 ThreadLocal的实现机制和原理 以及 InheritableThreadLocal的实现机制和原理 两种类型的 ThreadLocal,前者是普通的,后者是在前者的基础上套了一层父子线程关系,当使用后者的时候,会在线程创建的时候,浅拷贝一份父线程的变量值。那么今天空了 阅读全文
posted @ 2024-05-12 20:18 酷酷- 阅读(2726) 评论(0) 推荐(1) 编辑
摘要:1 前言 最近复习 AQS,回顾下其中的知识哈。 2 概述 2.1 AQS——锁的底层支持 AbstractQueuedSynchronizer 抽象同步队列简称 AQS,它是实现同步器的基础组件, 并发包中锁的底层就是使用 AQS 实现的。另外,大多数开发者可能永远不会直接使用 AQS,但是知道其 阅读全文
posted @ 2024-02-09 21:16 酷酷- 阅读(37) 评论(0) 推荐(0) 编辑
摘要:1 前言 LockSupport 工具类最近复习到这个类了,之前也没做笔记,这里简单回顾下哈。 JDK 中的 rt.jar 包里面的 LockSupport 是个工具类,它的主要作用是挂起和唤醒线程, 该工具类是创建锁和其他同步类的基础。 LockSupport 类与每个使用它的线程都会关联一个许可 阅读全文
posted @ 2024-02-09 15:05 酷酷- 阅读(38) 评论(0) 推荐(0) 编辑
摘要:1 前言 我们平时使用随机数大家可能会用到 Random,但是它的问题大家知道吗?以及该如何解决呢?这节我们就来看看。 2 Random 类及其局限性 在 JDK 7 之前包括现在,java.util.Random 都是使用比较广泛的随机数生成工具类, 而且 java.lang.Math 中的随机数 阅读全文
posted @ 2024-02-09 11:41 酷酷- 阅读(48) 评论(0) 推荐(0) 编辑
摘要:1 前言 最近比较好奇,Lombok、MapStruct 里的注解,会在打包的时候会给我们的字节码文件里,写入一些东西甚至生成一些转换的字节码文件,不知道人家是如何做到的,所以抽空看了看,自己写了一个小Demo,来体验下。我们的目标就是引入自己的 AbstractProcessor 的 maven依 阅读全文
posted @ 2023-10-19 09:40 酷酷- 阅读(165) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们来看看 Java SPI,SPI 是一种用于动态加载服务的机制。它的核心思想就是解耦,属于典型的微内核架构模式。SPI 在 Java 世界应用非常广泛,如:Dubbo、Spring Boot 等框架。本文从源码入手分析,深入探讨 Java SPI 的特性、原理,以及在一些比较经典领 阅读全文
posted @ 2023-09-11 08:21 酷酷- 阅读(172) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们来看另一个Java基础知识,内部类相关的东西。 2 内部类 2.1 分类 Java 类中不仅可以定义变量和方法,还可以定义类,这样定义在类内部的类就被称为内部类。根 据定义的方式不同,内部类分为静态内部类,成员内部类,局部内部类,匿名内部类四种。 2.2 静态内部类 定义在类内部的 阅读全文
posted @ 2023-04-24 06:51 酷酷- 阅读(29) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们来看另一个Java基础知识,就是注解哈。 2 注解 2.1 概念 Annotation(注解)是 Java 提供的一种对元程序中元素关联信息和元数据(metadata)的途径 和方法。Annatation(注解)是一个接口,程序可以通过反射来获取指定程序中元素的 Annotatio 阅读全文
posted @ 2023-04-23 08:01 酷酷- 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1 前言 本节我们来看一个Java利器就是反射,反射很重要是开发框架的基础核心,主要就是从类元数据信息中解析各种信息,我们就来看看。 2 反射简介 2.1 动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结 构上的变化。比如常见的 JavaScript 就 阅读全文
posted @ 2023-04-23 07:25 酷酷- 阅读(85) 评论(0) 推荐(0) 编辑
摘要:1 前言 关键字 volatile 大家平时可能会用到,或者看源码的时候都会遇到,在看这个关键字之前,我们先看点别的,先了解一下系统的CPU多级缓存,方便我们更好的理解。 2 CPU缓存 2.1 CPU缓存的来历 CPU是计算机的大脑,它负责执行程序的指令,而内存负责存数据, 包括程序自身的数据。在 阅读全文
posted @ 2023-03-27 06:44 酷酷- 阅读(191) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们主要讲解下我们平时使用的 Synchronized,它的使用大家应该并不陌生。我们知道 Java 中的锁分为内置锁和显示锁,Synchronized 就是我们的内置锁,内置可以理解为我们只需要标记即可,加锁释放啥的JVM都帮我们做了,那么我们这节就好好来看看这个关键字。 另外我们的 阅读全文
posted @ 2023-03-24 08:04 酷酷- 阅读(726) 评论(0) 推荐(1) 编辑
摘要:1 前言 Java 本身是面向 OOP 编程的,我们代码中创建的对象经过编译装载进我们的 JVM 中,那么我们的实例对象在 JVM 中具体表现的结构是什么样的呢,就是我们这节要看的东西。 2 工具 在了解之前我们要看到实际的东西,就是我们可能知道有对象头、实例数据、对齐,但是这毕竟是概念,我们怎么看 阅读全文
posted @ 2023-03-24 07:06 酷酷- 阅读(186) 评论(0) 推荐(0) 编辑
摘要:1 前言 大家经常看源码会发现这个关键字,那么我们这节我们讲一下 transient 关键字,先看看它的的用法和作用: 用法:只能用于修饰成员变量 作用:Java 的 Serilizable 提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用序列化机制来保存它, 阅读全文
posted @ 2023-03-21 15:53 酷酷- 阅读(153) 评论(0) 推荐(0) 编辑
摘要:1 前言 上节我们看了下 ThreadLocal 的实现原理,这节我们来看下 InheritableThreadLocal 是用来干什么的呢? 我们首先看个简单的现象: 那我们把 ThreadLocal 换成 InheritableThreadLocal 的再来看下呢: 可以看到我们开辟的新线程里也 阅读全文
posted @ 2023-03-18 15:20 酷酷- 阅读(182) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们看下 ThreadLocal ,这个东西大家应该不陌生,经常在一些同步优化中会使用到它。很多地方叫线程本地变量,ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。也就是对于同一个ThreadLocal,每个线程通过get、set、re 阅读全文
posted @ 2023-03-17 07:23 酷酷- 阅读(299) 评论(0) 推荐(0) 编辑
摘要:1 前言 这节我们聊聊 WeakReference 弱引用的作用,因为我们平时看源码的时候会发现一些对象是继承了这个类的,那么这个类是干什么的? 我的理解哈这个类是专门给 GC 标识用的,当一个类 A 继承了 WeakReference 就表示 A 如果没有别的强引用的话,我 GC 的时候是可以回收 阅读全文
posted @ 2023-03-16 08:18 酷酷- 阅读(864) 评论(0) 推荐(0) 编辑
摘要:1 前言 以前看源码的时候都是在依赖包中看的没做笔记也没记录,今天试着单独整个环境把 JDK 源码跑起来,这也既能方便调试还能写笔记注释。我用的版本是:jdk1.8.0_202,IDEA是:2021版本的哈,那么让我们开始搭建吧。 前提哈:首先你电脑上需要装了 JDK 的奥 2 搭建过程 2.1 创 阅读全文
posted @ 2023-03-15 16:24 酷酷- 阅读(312) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示