JavaSE
文章平均质量分 87
Kevin_Opt
这个作者很懒,什么都没留下…
展开
-
Executor框架——Java并发编程的艺术读书笔记
Executor框架1 Executor框架简介1.1 Executor框架的结构1.2 Executor框架的成员2 ThreadPoolExecutor2.1 FixedThreadPool2.2 SingleThreadPool2.3 CachedThreadPool3 ScheduledThreadPoolExecutor3.1 ScheduledThreadPoolExecutor的执行机制4 FutureTask4.1 FutureTask的使用参考书籍:《Java并发编程的艺术》 从JD原创 2022-06-23 15:43:43 · 83 阅读 · 0 评论 -
jar包双击打不开或者闪退的解决办法
jar包双击打不开或者闪退的解决办法配置环境变量选择打开方式修改注册表 有些时候需要双击打开jar包,这时候有可能双击后命令窗口一闪而过,闪退,查看错误信息为无法加载主类。配置环境变量 运行jar包需要安装JDK或者JRE,JDK包含JRE,只要有JRE就能运行。注意配置环境变量前需要卸载干净之前安装过的JDK或者JRE,可以在程序与功能里卸载。 卸载之后,配置JDK参考另外一篇博客选择打开方式 右击jar包,选择属性,打开方式更改为安装的java.exe,注意这里的路径要和下面注册表原创 2022-05-13 18:39:02 · 17487 阅读 · 15 评论 -
Java中的线程池——Java并发编程的艺术读书笔记
Java中的线程池1 线程池的实现原理2 线程池的使用2.1 线程池的创建2.2 向线程池提交任务2.3 关闭线程池2.4 合理配置线程池2.5 线程池的监控参开书籍:《Java并发编程的艺术》 Java中的线程池是运用场景非常多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池,线程池主要有三个好处:**1、降低资源消耗。**通过重复利用一创建的线程会降低线程创建和销毁带来的消耗。**2、提高响应速度。**当任务到达时,任务可以不需要等到线程创建就能立即执行。**3、提高线程的可原创 2022-04-09 21:48:21 · 147 阅读 · 0 评论 -
Java中的12个原子操作类——Java并发编程的艺术读书笔记
Java中的13个原子操作类1 原子更新基本类型类2 原子更新数组3 原子更新引用类型4 原子更新字段类参考书籍:《Java并发编程的艺术》 Java从JDK5开始提供了java.util.concurrent.atomic包(简称Atomic包),包含了12个原子操作类(书中说有13个类,但其实原子更新数组类并没有书中说的4个,而是3个),提供了用法简单,性能高效,线程安全地更新变量的方式,而不是只能使用synchronized解决多线程的变量更新问题。这12个类属于4种类型,分别是原子更新基本类型原创 2022-04-08 11:13:27 · 103 阅读 · 0 评论 -
Java并发容器和框架——Java并发编程的艺术读书笔记
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2022-04-07 09:04:32 · 142 阅读 · 0 评论 -
Java中的锁--Java并发编程的艺术读书笔记
Java中的锁1 Lock接口2 队列同步器AQS2.1 AQS的接口与示例2.2 AQS的实现分析2.2.1 同步队列2.2.2 独占式同步状态获取与释放2.2.3 共享式同步状态获取与释放2.2.4 独占式超时获取同步状态2.2.5 自定义同步组件——TwinsLock3 重入锁3.1 实现重进入3.2 公平与非公平获取锁的区别4 读写锁4.1 读写锁的接口与示例4.2 读写锁的实现分析4.2.1 读写状态的设计4.2.2 写锁的获取与释放4.2.3 读锁的获取与释放4.2.4 锁降级5 LockSup原创 2022-04-06 08:38:14 · 152 阅读 · 0 评论 -
TwinsLock——自定义同步组件
TwinsLock——自定义同步组件设计目的设计方案代码实现参考书籍:《Java并发编程的艺术》设计目的 设计一个同步工具,该工具在同一时刻,只允许至多两个线程同时访问,超过两个线程访问将被阻塞,将这个同步工具命名为TwinsLock。设计方案 首先,确定访问模式。分为独占式访问和共享式访问,由于TwinsLock需要同一时刻至多两个线程能访问,因此属于共享式访问。因此需要使用同步器提供的acquireShared(int args)方法和Shared相关的方法,这就要求重写AQS的tryAc原创 2022-04-05 09:09:52 · 209 阅读 · 0 评论 -
Java内存模型--Java并发编程的艺术读书笔记
Java内存模型1 Java内存模型的基础1.1 从源代码到指令序列的重排序1.1.1 happens-before1.2 重排序1.2.1 数据依赖性1.2.2 as-if-serial1.2.3 程序顺序规则1.2.4 重排序对多线程的影响1.3 顺序一致性1.3.1 数据竞争1.3.2 顺序一致性内存模型1.3.3 同步程序的顺序一致性1.3.4 未同步程序的执行特性1.4 volatile的内存语义1.4.1 volatile的特性1.4.2 volatile写-读建立的happens-before原创 2022-04-04 09:06:08 · 221 阅读 · 0 评论 -
Java并发机制的底层实现原理--Java并发编程的艺术读书笔记
Java并发机制的底层实现原理1 volatile的实现原理2 synchronized的实现原理2.1 Java对象头2.2 锁的升级与对比2.2.1 偏向锁2.2.1.1 偏向锁的撤销2.2.1.2 关闭偏向锁2.2.2 轻量级锁2.2.2.1 轻量级锁加锁2.2.2.1 轻量级锁解锁2.2.3 锁的优缺点对比3 原子操作的实现原理3.1 处理器实现原子操作3.1.1 总线锁3.1.2 缓存锁3.2 Java实现原子操作3.2.1 锁机制3.2.2 循环CAS参考书籍:《Java并发编程的艺术》Ja原创 2022-04-03 15:48:42 · 381 阅读 · 0 评论 -
注解和动态代理详解
参考书:《Java核心技术·卷Ⅱ》1. 注解注解的作用是对Java中类,方法,成员变量做标记,然后进行特殊处理。例如,Junit框架中,@Test加在方法上,该方法可以被当成测试方法执行,而没有标记的就不能当作测试方法执行。1.1 自定义注解自定义注解就是自己设计一个注解来使用。书写的格式如下:public @interface 注解名称 { public 属性类型 属性名() default 默认值;}在注解中,如果只有一个value属性,在使用该属性时可以省略value名称不写,但是如原创 2022-03-08 19:48:41 · 660 阅读 · 0 评论 -
Java反射详解及作用
参考视频链接: 哔哩哔哩视频.1. 反射概述能够分析类能力的程序叫做反射(reflective),对于任何一个Class类,反射可以在运行时直接得到这个类的全部成分,包括构造器,成员方法,成员变量。获得的构造器对象为Constructor,成员方法对象为Method,成员变量对象为Field。这种在运行时动态获取类信息以及动态调用类中成分的能力叫做Java语言的反射机制。2. 获取编译后的Class类对象反射的关键,或者说第一步,是获取编译后的Class类对象。2.1 通过java.lang.C原创 2022-03-08 13:03:30 · 3837 阅读 · 0 评论