摘要: 1.SpringBoot 1.1 概念 SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另 阅读全文
posted @ 2020-08-07 11:35 湘北不会输的 阅读(319) 评论(0) 推荐(0)
摘要: Spring 官网:https://spring.io/ 官网下载地址:https://repo.spring.io/release/org/springframework/spring/ GitHub:https://github.com/spring-projects/spring-framew 阅读全文
posted @ 2020-08-07 11:31 湘北不会输的 阅读(239) 评论(0) 推荐(0)
摘要: 初识 MySQL MySQL 是一种 关系型数据库管理系统(RDBMS) 开源 默认端口:3306 数据库语言 DDL:Data Definition Language 数据定义语言 DML:Data Manipulation Language 数据管理语言 DQL:Data Query Langu 阅读全文
posted @ 2020-08-07 11:29 湘北不会输的 阅读(178) 评论(0) 推荐(0)
摘要: 原子类也是 JUC 包下的:java.util.concurrent.atomic 包含四个原子类: AtomicInteger AtomicLong AtomicBoolean AtomicRefence Atomic Atomic 的四个类型 基本数据类型 数组类型 引用类型 对象的属性修改类型 阅读全文
posted @ 2020-08-07 11:19 湘北不会输的 阅读(110) 评论(0) 推荐(0)
摘要: CAS 是什么? CAS (compare and swap) :: 比较并交换 如果期望的值达到了,那么就更新,否则,就不更新,CAS 是 CPU 的并发原语 unsafe 类 Java 无法操作内存,但是Java 可以调用 C++, C++ 可以操作内存。unsafe 相当于 Java 的后门, 阅读全文
posted @ 2020-08-07 11:17 湘北不会输的 阅读(157) 评论(0) 推荐(0)
摘要: Volatile 是 Java 虚拟机提供的 轻量级的同步机制; volatile 关键字保证变量的可见性以及禁止了指令重排 保证可见性 不保证原子性 禁止指令重排 禁止指令重排 什么是指令重排 你写的程序,计算机并不是按照你写的那样执行 源代码 → 编译器优化的重排 → 指令并行也可能重排 → 内 阅读全文
posted @ 2020-08-07 11:09 湘北不会输的 阅读(103) 评论(0) 推荐(0)
摘要: ForkJoin :: 分支合并 (JDK 1.7) 并行执行任务,提高效率。 使用场景:大数据量 将大任务拆成小任务 ForkJoin 特点:工作窃取 这个里面维护的都是双端队列,如果一方执行完了,获取另外一方的未完成的任务进行执行 ForkJoin 的操作 package pers.vincen 阅读全文
posted @ 2020-08-07 11:08 湘北不会输的 阅读(143) 评论(0) 推荐(0)
摘要: 什么是 Stream 流式计算 计算都应该交给流来操作! java.util.stream // 代码示例 package pers.vincent.matrix.subject.streamdemo; import java.util.Arrays; import java.util.List; 阅读全文
posted @ 2020-08-07 11:05 湘北不会输的 阅读(100) 评论(0) 推荐(0)
摘要: 新时代程序员:lambda 表达式、链式编程、函数式接口、Stream流式计算、(旧:泛型、枚举、反射) 函数式接口:只有一个方法的接口 @FunctionalInterface public interface Runnable { public abstract void run(); } // 阅读全文
posted @ 2020-08-07 11:04 湘北不会输的 阅读(135) 评论(0) 推荐(0)
摘要: 池化技术 程序的运行,本质:占有系统的资源!优化资源的使用 池化技术:事先准备好一些资源,有人要用,就过来取,用完之后还给我。 线程池的好处 降低资源消耗 提高响应的速度 方便管理 线程可复用,可以控制最大并发数,管理线程 线程池:三大方法 package pers.vincent.matrix.s 阅读全文
posted @ 2020-08-07 11:03 湘北不会输的 阅读(90) 评论(0) 推荐(0)
摘要: BlockingQueue 使用场景:多并发处理,线程池 阻塞队列的使用 四组API 方式 抛出异常 有返回值,不抛异常 阻塞等待 超时等待 添加 add offer put offer( , , ) 删除 remove poll take poll( , ) 检测队列首部 element peek 阅读全文
posted @ 2020-08-07 11:02 湘北不会输的 阅读(67) 评论(0) 推荐(0)
摘要: ReadWriteLock: 一个用于只读操作,一个用于写入操作;读的时候可以由多个线程进行,写的时候只能有一个。 读-读:可以共存 读-写:不可共存 写-写:不可共存 读锁:共享锁 写锁:独享锁 代码示例 package pers.vincent.matrix.subject.readwrite; 阅读全文
posted @ 2020-08-07 11:01 湘北不会输的 阅读(77) 评论(0) 推荐(0)
摘要: CountDownLatch 减法计数器 代码测试 package pers.vincent.matrix.subject.callable; import java.util.concurrent.CountDownLatch; public class CountDownLatchDemo { 阅读全文
posted @ 2020-08-07 10:59 湘北不会输的 阅读(65) 评论(0) 推荐(0)
摘要: @FunctionalInterface (函数式接口) public interface Callable返回结果并可能引发异常的任务。 实现者定义一个没有参数的单一方法,称为call 。 Callable接口类似于Runnable ,因为它们都是为其实例可能由另一个线程执行的类设计的。 然而,A 阅读全文
posted @ 2020-08-07 10:57 湘北不会输的 阅读(90) 评论(0) 推荐(0)
摘要: List 不安全 List<String> list = new ArrayList<>(); List<String> list2 = Collections.synchronizedList(new ArrayList<>()); // CopyOnWrite 写入时复制; /** * Copy 阅读全文
posted @ 2020-08-07 10:56 湘北不会输的 阅读(70) 评论(0) 推荐(0)
摘要: 关于锁的8个问题 范例1: package pers.vincent.matrix.subject.lock8; import java.util.concurrent.TimeUnit; public class Test1 { public static void main(String[] a 阅读全文
posted @ 2020-08-07 10:54 湘北不会输的 阅读(81) 评论(0) 推荐(0)
摘要: 生产者和消费者问题:Synchronized 版 Synchronized:wait 、notify package pers.vincent.matrix.subject.juc; public class JucTest3 { public static void main(String[] a 阅读全文
posted @ 2020-08-07 10:53 湘北不会输的 阅读(80) 评论(0) 推荐(0)
摘要: Lock 锁(*) 传统 synchronized package pers.vincent.matrix.subject.juc; public class JucTest1 { public static void main(String[] args) { // 获取CPU核数 // Syst 阅读全文
posted @ 2020-08-07 10:50 湘北不会输的 阅读(121) 评论(0) 推荐(0)
摘要: 在此之前呢,我们先对 JUC 有个简单了解:所谓 JUC 即 Java 的一个并发编程的类包:java.util.concurrent 包含有: java.util.concurrent.atomic java.util.concurrent.locks 进程 进程是一个程序,比如QQ、WeChat 阅读全文
posted @ 2020-08-07 10:48 湘北不会输的 阅读(98) 评论(0) 推荐(0)
摘要: 注解 注解:Java.Annotation Annotation 的作用 非程序本身,可以对程序做出解释 可以被其他程序读取 Annotation 的格式 "@注释名" (可带参数名) Annotation 使用范围 可附加在 package, class, method, field 等上面,可通 阅读全文
posted @ 2020-08-07 10:36 湘北不会输的 阅读(115) 评论(0) 推荐(0)