Java学习笔记
文章平均质量分 69
学习
崔同学提了个桶
提桶跑路
展开
-
JUC学习笔记:AQS原理
AQS框架首先对于syncronized,锁对象的对象头指向了一个管程,由管程负责维护EntryList和WaitSet的队列。同样的,对于我们自定义的锁,除了线程安全地获取和释放锁之外,也需要做维护这些等待队列的工作。而AQS提供的就是一个这样的维护等待队列的机制,用户只需要关注于自己的锁的释放和获取的逻辑就可以了。这就是AQS的基本功能。AQS内部维护了一个volatile修饰的state表示锁的占有状态,同时维护了一个线程等待的CLH队列。AQS将资源分为独占和共享的,因此自定义同步器只需要原创 2022-03-15 15:05:57 · 593 阅读 · 0 评论 -
Juc学习笔记:自定义线程池
线程池结构可以分成以上的三部分,分别是用于执行任务的线程池,一个基于生产者消费者模式的、用于平衡生产消费速率关系、存放任务的阻塞队列、以及给出任务的线程,下面对每个部分的代码进行编写阻塞队列首先思考阻塞队列中的成员变量队列的数据结构队列的最大大小用于解决并发问题的锁分别用于读写线程阻塞的条件变量所应该具有的方法获取队列大小存放任务(并发环境下,核心方法)获取任务(并发环境下,核心方法)下面给出代码,该段代码的核心是阻塞添加和阻塞获取的两个方法/** * 线程池阻塞队列原创 2022-03-14 16:09:04 · 795 阅读 · 0 评论 -
juc学习笔记:三种实现交叉打印的方式
使用wait/notify、await/signal、park/unparkpackage com.cui.juc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.LockSupport;import java.util.concurrent.locks.ReentrantLock;public class ThreeWays2PrintInOrder { static Thr原创 2022-03-11 13:54:18 · 259 阅读 · 0 评论 -
Java学习笔记:代理模式
代理模式代理模式有三个主要的角色,分别是接口、委托类与代理类。委托类与代理类继承了同样的接口,保证他们的功能是一致的,这样在想调用委托类的时候就可以通过代理类间接地进行调用。这种间接调用带来的好处是可以使得代理类在将任务交给委托类之前可以进行一些先验的操作或者委托类实现之后实现后续的操作,就起到了方法增强的作用。根据实现方式的不同,可以分为静态代理和动态代理静态代理之所以称之为静态代理,是因为在javac编译代码之前程序就已经确定了,下面给出一个实例我们想要实现一个将两个字符串类型的数字求和并原创 2022-03-09 22:09:08 · 303 阅读 · 0 评论 -
微服务架构
layout: pagestitle: JavaWeb学习笔记——微服务架构date: 2021-10-01 20:05:25categories: JavaWeb学习笔记tags: JavaWeb微服务架构介绍微服务的概念微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦**概念:**把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服.原创 2021-12-13 16:30:48 · 168 阅读 · 0 评论 -
Java编程笔记——基于Comparator与sort的自定义排序
Arrays中有一个双参的的sort方法 public static <T> void sort(T[] a, Comparator<? super T> c) { if (c == null) { sort(a); } else { if (LegacyMergeSort.userRequested) legacyMergeSort(a, c);原创 2021-05-30 10:58:25 · 608 阅读 · 0 评论 -
Java编程笔记——Properties配置文件的加载
为什么要使用配置文件之所以要使用配置文件,目的在于降低代码的耦合性,提高代码的复用性,即争取做到代码敲好之后不再需要进行更改,只对配置文件修改就可以达成修改代码功能的目的。下面就细说一下Jedis线程池工具类的开发,来说一下Properties配置文件的使用配置文件如下:host=localhostport=6379maxTotal=50maxIdle=10如下是一个线程池工具类的开发过程,首先以一个static代码块进行了必要的配置。因为static代码块中的语句会随着类的加载一起加载,因原创 2021-04-07 16:25:30 · 304 阅读 · 0 评论