自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Nacos+Gateway+Springdoc 集中管理API

Spring cloud Gateway 基于使用 Netty 作为内嵌服务器,而 Netty 基于 WebFlux 实现,因此如果想要 springdoc 的 Swagger UI 显示在网关微服务中,需要用到它的 WebFlux UI 库。

2021-12-18 20:46:31 3357 6

原创 IDEA配置:EasyCode插件+lombok+SpringDoc快速生成代码

EasyCode 是一个可以从数据库表中快速生成代码的插件,但是原有的默认配置已经不太适用了。以下配置是笔者自用的,记录下来作备忘,也供大家借鉴。

2021-12-12 21:51:56 539

原创 Swagger2 迁移至 SpringDoc openapi

由于`springfox swagger`在最新的`springboot 2.6.x`版本中频频报错无法使用,因此计划迁移至`springdoc`。

2021-12-12 21:49:41 979

原创 设计模式——单例模式

文章目录单例模式一、概述1. 定义2. 特点3. 优点4. 缺点5. 主要应用场景二、懒汉式1. 线程不安全2. 线程安全3. 双重检验锁三、饿汉式四、静态内部类五、枚举单例模式一、概述1. 定义​ 一个类只有一个实例,且该类能够自行创建这个实例。2. 特点单例类只有一个实例对象单例对象必须由单例类自行创建单例类对外提供一个访问该单例的全局访问点3. 优点单例模式可以保证内存里只有一个实例,减少了内存的开销可以避免对资源的多重占用单例模式设置全局访问点,可以优化和共享资源的访问

2021-08-16 22:15:58 123

原创 十、生产者消费者问题

一、生产者消费者问题1. 问题假设仓库中只能放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中的产品取走消费如果仓库中没有产品,则生产者将产品放入仓库。否则停止生产并等待,直到仓库中的产品被消费者取走为止如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止2. 分析生产者和消费者共享同一个资源,并且两者之间相互依赖,互为条件对于生产者,没有生产产品之前要通知消费者等待。而生产了产品之后又需要立即通知消费者对于消费者,在消费之后要通知生产

2021-08-02 16:49:03 776

原创 九、Lock 锁

Lock 锁1. 概要从 JDK5 开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用 Lock 对象充当java.util.concurrent.locks.Lock接口是控制多个线程对共享资源访问的工具锁提供了对共享资源的独占访问,每次只能有一个线程对 Lock 对象加锁,线程开始访问共享资源前须先获得 Lock 对象ReentrantLock类(可重入锁)实现了 Lock ,它拥有与synchronized相同的并发性和内存语义在实现线程安全的控制中

2021-08-02 16:46:45 48

原创 八、死锁

一、死锁1. 原因​ 多个线程同时被阻塞,其中一个或全部都在等待某个资源被释放。由于线程被无限期的阻塞,因此程序无法正常终止。如图线程A占有资源1,线程B占有资源2,双方同时申请对方的资源,就会互相等待而进入死锁状态。例:public class DeadLock { public static void main(String[] args) { Makeup girl1 = new Makeup(0, "第一个女孩"); Makeup girl2 =

2021-08-02 16:45:39 45

原创 七、线程同步

一、并发与并行并发:同一时间段内,多个任务都在执行。CPU可以把执行时间分成若干份,每个线程执行一段时间后记录当前工作状态并行:单位时间内多个任务同时执行二、线程同步注:锁的对象一定要是属性有增删改的对象!!!所谓线程同步并不是使线程同时执行,而是将线程排队!!!1. 形成条件:队列 + 锁为保证数据在方法中被访问时的正确性,在访问时加入锁机制synchronized, 当一个线程获得对象的排它锁独占资源时,其它线程必须等待。使用后释放锁即可。会产生以下问题:一个线程持有锁会导

2021-08-02 16:43:37 39

原创 六、守护线程

守护(Daemon)线程线程分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不必等待守护线程执行完毕使用setDaemon()方法将线程设置为守护线程(默认为用户线程)守护线程的默认优先级比较低如:后台日志、监控内存、垃圾回收等等例:public class TestDaemon { public static void main(String[] args) { God god = new God(); You you = new Yo

2021-08-02 16:42:13 38

原创 五、线程优先级

一、线程优先级Java 提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行线程优先级用数字标识,范围从1~10Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRIORITY = 5;使用以下方法获取或改变优先级getPriority()setPriority(<整数>)CPU调度会考虑优先级,但只是提高优先调度的权重,并不一定会先执行

2021-08-02 16:41:40 54

原创 四、线程状态

一、线程状态操作系统中,线程被视为轻量级的进程,因此操作系统的线程状态与操作系统的进程状态是一致的1. 线程五大状态创建状态Thread t = new Thread() 线程对象一旦创建就进入到了新生状态就绪状态当调用start() 方法,线程会进入就绪状态,但不意味着立即执行运行状态进入运行状态,线程才会真正去执行线程体的代码阻塞状态当调用sleep()、wait()或同步锁定时,线程进入阻塞状态,代码不会继续执行。等待阻塞事件解除后,重新进入就绪状态,等待CPU调度

2021-08-02 16:41:02 230

原创 三、静态代理模式

静态代理模式​ 静态代理是多线程底部的原理,在 Java 中线程的设计就使用了静态代理设计模式,其中自定义线程类及Thread类都是实现了Runnable接口。​ 在创建子线程的时候,传入了自定义线程类的引用,再通过调用start()方法,调用自定义线程对象的run()方法。实现了线程的并发执行。概要真实对象和代理对象都要实现同一个接口代理对象要代理真实角色真实对象只专注于自己的功能,代理对象可以帮忙做其他的事步骤定义抽象接口定义真实对象的类定义代理对象的类通过代理对象调用实

2021-08-02 16:38:22 38

原创 二、线程的创建

一、创建方式线程的创建有三种方式:继承Thread类实现Runnable接口实现Callable接口注:线程开启不一定立即执行,由CPU调度决定1. 继承Thread类继承Thread类创建线程可分为以下几步:自定义线程类继承Thread类重写run() 方法,编写线程执行体创建线程对象,调用start()方法启动线程例:public class TestThread extends Thread { @Override public void run()

2021-08-02 16:37:20 268

原创 一、进程与线程

一、进程和线程的定义1. 进程进程是执行程序的一次从创建到消亡的过程。程序本身只是指令和数据的有序集合,是一个静态概念。而进程是一个动态的概念,是系统资源分配的单位。注:一个进程只能对应一个程序,而一个程序可以对应多个进程2. 线程线程是一个比进程更小的执行单位,一个进程在执行过程中可以产生多个线程,当然也至少会存在一个线程,否则进程就没有存在的意义。线程是CPU调度和执行的单位。注:真正的多线程是指有多个CPU,即多核。很多多线程是模拟出来的,即在一个CPU的情况下,在同一个时间点,CP

2021-08-02 16:35:27 78

原创 Git使用简记

记录一下平时会用到的 git 命令

2019-03-19 20:42:33 94

原创 《第一行代码》学习笔记——探究活动(未完待续)

《第一行代码》学习笔记一、探究活动手动创建活动,不勾选 Generate Layout File 和 Launcher Activity重写onCreate()方法**(每个活动都应该重写)**protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);}...

2018-12-02 09:48:23 137

原创 Java - 类和对象

一、 构造方法构造方法是定义在 Java 类中的一个用来初始化对象的方法,构造方法与类名相同且没有返回值;  格式:  public 构造方法名() { // 初始化代码 } /*没有返回值类型,可以指定参数*/当没有指定构造方法时,系统会自动添加无参的构造方法;当有指定的构造方法时,无论是有参、无参的构造方法

2017-10-18 20:21:12 121

原创 Java - 方法

一、 定义方法二、 无参无返回值方法三、 无参带返回值方法四、 带参无返回值方法五、 带参带返回值的方法六、 方法的重载

2017-10-18 19:25:01 114

原创 Java - 数组

一、 定义数组的方法 二、 使用 foreach 遍历数组三、 使用 Arrays 类操作数组

2017-10-17 15:57:52 146

原创 Java - 变量的类型转换

一、 自动类型转换二、 强制类型转换

2017-10-17 14:37:48 255

原创 Java 环境的搭建

(一) JDK 的下载与安装1. 在 Oracle 官网内下载 JDK (注意选择适合自己系统的版本)下载地址:Java SE 82. 安装 JDK与其他软件的安装方法类似,按自己的需求进行安装(二) 配置 Java 环境(这里以Windows系统为例)1.“我的电脑”  —— 右键 “属性” —— “高级系统

2017-09-03 19:23:11 141

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除