摘要:
代理是啥?就是代替你执行你持有的主要功能,并且能在你的基础之上完成一些其他的功能。代理的目的就是生成一个和原对象具有同样功能的对象。在Java中,代理是一种设计模式。在Spring的面向切面编程(AOP)中,主要就是利用动态代理来实现代码的织入。 代理分为动态代理和静态代理。顾名思义,动态代理比静态 阅读全文
摘要:
单例模式是一种设计模式,是在整个运行过程中只需要产生一个实例。那么怎样去创建呢,以下提供了几种方案。 一、创建单例对象 懒汉式 public class TestSingleton { // 构造方法私有化 private TestSingleton(){} // 声明实例 private stat 阅读全文
摘要:
1、关于Java数据类型 基本数据类型 基本数据类型有8种,每种基本数据类型都有对应的引用类型。 类型 描述 长度 可表示数据 包装类型 boolean 布尔型 1 true、false Boolean byte 字节型 1 2-7~27-1 Byte char 字符型 2 2-15~215-1 C 阅读全文
摘要:
一、AQS概述 AQS全名AbstractQueuedSynchronizer,意为抽象队列同步器,JUC(java.util.concurrent包)下面的Lock和其他一些并发工具类都是基于它来实现的。AQS维护了一个volatile的state和一个CLH(FIFO)双向队列。 二、分析 st 阅读全文
摘要:
一、前言 了解CAS,首先要清楚JUC,那么什么是JUC呢?JUC就是java.util.concurrent包的简称。它有核心就是CAS与AQS。CAS是java.util.concurrent.atomic包的基础,如AtomicInteger、AtomicBoolean、AtomicLong等 阅读全文
摘要:
一、目的 针对不同地区,设置不同的语言信息。 SpringBoot国际化配置文件默认放在classpath:message.properties,如果自定义消息配置文件,需要application.properties或application.yml中设置spring.messages.basena 阅读全文
摘要:
一、简述 配置多数据源意思就是在一个项目中使用多个数据库,在项目使用中可以不用手动切换数据库来实现不同数据库的数据获取和更新。 源码地址: https://github.com/hanguilin/boot-security 项目环境: SpringBoot 2.1.9、Spring Data Jp 阅读全文
摘要:
一、简介 什么是线程池? 池的概念大家也许都有所听闻,池就是相当于一个容器,里面有许许多多的东西你可以即拿即用。java中有线程池、连接池等等。线程池就是在系统启动或者实例化池时创建一些空闲的线程,等待工作调度,执行完任务后,线程并不会立即被销毁,而是重新处于空闲状态,等待下一次调度。 线程池的工作 阅读全文
摘要:
一、前言 闭锁与栅栏是在多线程编程中的概念,因为在多线程中,我们不能控制线程的执行状态,所以给线程加锁,让其按照我们的想法有秩序的执行。 闭锁 CountDownLatch,实例化时需要传入一个int类型的数字(count),意为等待count个线程完成之后才能执行下一步动作。 如今天要做的事情是吃 阅读全文
摘要:
一、开篇 Stream?其实就是处理集合的一种形式,称之为流,在Java8中被引入,可被Collection中的子类调用。 作用?简化代码,提升你的开发效率。 不会?看完这篇你就能自己上手了! 二、实例 首先将你的集合处理成流,才可以使用此API。 Stream<String> stream = l 阅读全文