摘要: 1.SpringBoot 1.1 概念 SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另 阅读全文
posted @ 2020-08-07 11:35 湘北不会输的 阅读(326) 评论(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 湘北不会输的 阅读(243) 评论(0) 推荐(0)
摘要: 初识 MySQL MySQL 是一种 关系型数据库管理系统(RDBMS) 开源 默认端口:3306 数据库语言 DDL:Data Definition Language 数据定义语言 DML:Data Manipulation Language 数据管理语言 DQL:Data Query Langu 阅读全文
posted @ 2020-08-07 11:29 湘北不会输的 阅读(180) 评论(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 湘北不会输的 阅读(168) 评论(0) 推荐(0)
摘要: Volatile 是 Java 虚拟机提供的 轻量级的同步机制; volatile 关键字保证变量的可见性以及禁止了指令重排 保证可见性 不保证原子性 禁止指令重排 禁止指令重排 什么是指令重排 你写的程序,计算机并不是按照你写的那样执行 源代码 → 编译器优化的重排 → 指令并行也可能重排 → 内 阅读全文
posted @ 2020-08-07 11:09 湘北不会输的 阅读(109) 评论(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 湘北不会输的 阅读(101) 评论(0) 推荐(0)
摘要: 新时代程序员:lambda 表达式、链式编程、函数式接口、Stream流式计算、(旧:泛型、枚举、反射) 函数式接口:只有一个方法的接口 @FunctionalInterface public interface Runnable { public abstract void run(); } // 阅读全文
posted @ 2020-08-07 11:04 湘北不会输的 阅读(136) 评论(0) 推荐(0)
摘要: 池化技术 程序的运行,本质:占有系统的资源!优化资源的使用 池化技术:事先准备好一些资源,有人要用,就过来取,用完之后还给我。 线程池的好处 降低资源消耗 提高响应的速度 方便管理 线程可复用,可以控制最大并发数,管理线程 线程池:三大方法 package pers.vincent.matrix.s 阅读全文
posted @ 2020-08-07 11:03 湘北不会输的 阅读(93) 评论(0) 推荐(0)
摘要: BlockingQueue 使用场景:多并发处理,线程池 阻塞队列的使用 四组API 方式 抛出异常 有返回值,不抛异常 阻塞等待 超时等待 添加 add offer put offer( , , ) 删除 remove poll take poll( , ) 检测队列首部 element peek 阅读全文
posted @ 2020-08-07 11:02 湘北不会输的 阅读(68) 评论(0) 推荐(0)
摘要: ReadWriteLock: 一个用于只读操作,一个用于写入操作;读的时候可以由多个线程进行,写的时候只能有一个。 读-读:可以共存 读-写:不可共存 写-写:不可共存 读锁:共享锁 写锁:独享锁 代码示例 package pers.vincent.matrix.subject.readwrite; 阅读全文
posted @ 2020-08-07 11:01 湘北不会输的 阅读(78) 评论(0) 推荐(0)
摘要: CountDownLatch 减法计数器 代码测试 package pers.vincent.matrix.subject.callable; import java.util.concurrent.CountDownLatch; public class CountDownLatchDemo { 阅读全文
posted @ 2020-08-07 10:59 湘北不会输的 阅读(67) 评论(0) 推荐(0)
摘要: @FunctionalInterface (函数式接口) public interface Callable返回结果并可能引发异常的任务。 实现者定义一个没有参数的单一方法,称为call 。 Callable接口类似于Runnable ,因为它们都是为其实例可能由另一个线程执行的类设计的。 然而,A 阅读全文
posted @ 2020-08-07 10:57 湘北不会输的 阅读(92) 评论(0) 推荐(0)
摘要: List 不安全 List<String> list = new ArrayList<>(); List<String> list2 = Collections.synchronizedList(new ArrayList<>()); // CopyOnWrite 写入时复制; /** * Copy 阅读全文
posted @ 2020-08-07 10:56 湘北不会输的 阅读(71) 评论(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 湘北不会输的 阅读(81) 评论(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 湘北不会输的 阅读(123) 评论(0) 推荐(0)
摘要: 在此之前呢,我们先对 JUC 有个简单了解:所谓 JUC 即 Java 的一个并发编程的类包:java.util.concurrent 包含有: java.util.concurrent.atomic java.util.concurrent.locks 进程 进程是一个程序,比如QQ、WeChat 阅读全文
posted @ 2020-08-07 10:48 湘北不会输的 阅读(101) 评论(0) 推荐(0)
摘要: 注解 注解:Java.Annotation Annotation 的作用 非程序本身,可以对程序做出解释 可以被其他程序读取 Annotation 的格式 "@注释名" (可带参数名) Annotation 使用范围 可附加在 package, class, method, field 等上面,可通 阅读全文
posted @ 2020-08-07 10:36 湘北不会输的 阅读(118) 评论(0) 推荐(0)
摘要: 数组概述 同类型的数据的有序集合 同类型的若干个数据,按照一定的先后次序排列组合 每一个元素称为数组元素,数组元素可以通过一个下标来访问 数组声明创建 声明方式 // 声明数组 int[] nums;// 建议使用 int nums1[]; // 创建数组 int[] nums = new int[ 阅读全文
posted @ 2020-08-07 10:34 湘北不会输的 阅读(130) 评论(0) 推荐(0)
摘要: Java 面向对象 1. 什么是面向对象 Java 的核心思想就是:OOP 1.1 面向过程 与 面向对象 面向过程 步骤清晰简单,按步骤执行 面向对象 物以类聚,分类的思维模式。面对问题先分类,再单一思考,对最后的细节进行面向过程的思索 适合处理复杂的事物 宏观上,通过面向对象的思路分析;微观上, 阅读全文
posted @ 2020-08-07 10:32 湘北不会输的 阅读(166) 评论(0) 推荐(0)
摘要: 4. 方法 Java 方法是语句的集合,它们在一起处理一件事情。 方法包含于类和对象中 方法在程序中被创建,在其他地方被调用 4.1 方法的定义 Java 的方法类似于其他语言的函数,用一段完成特定任务的代码片段。 修饰符 返回值类型 方法名(参数类型 参数名){ 方法体 ... } 4.1.1 方 阅读全文
posted @ 2020-08-07 10:30 湘北不会输的 阅读(93) 评论(0) 推荐(0)
摘要: Java 是一种 强类型 语言,要求变量的使用严格规定,所有变量的使用都必须先定义 3.1 基本类型(8) 基本类型分为:数值类型:整型、浮点型、字符型;布尔型 整型 byte (1个字节) short (2个字节) int (4个字节) long (8个字节) 浮点型 float (4个字节) d 阅读全文
posted @ 2020-08-07 10:29 湘北不会输的 阅读(125) 评论(0) 推荐(0)
摘要: 2.1 注释 单行注释:// 多行注释:/* */ 文档注释:/** */ javadoc -encoding UTF-8 -charset UTF-8 2.2 变量 成员变量: 属于类 局部变量:属于方法体内的 实例变量:属于对象 类变量:跟着类走; static 修饰符(静态) 成员变量和局部变 阅读全文
posted @ 2020-08-07 10:25 湘北不会输的 阅读(111) 评论(0) 推荐(0)
摘要: 1.1 Java 语言的特点 简单易学 面向对象(封装、继承、多态) 跨平台(Windows、MacOS、Linux) 解释和编译并存 安全可靠 支持多线程编程 支持网络编程 1.2 JVM、JDK、JRE JVM : Java 虚拟机 JDK : Java 工具包 JRE : Java 运行环境 阅读全文
posted @ 2020-08-07 10:23 湘北不会输的 阅读(135) 评论(0) 推荐(0)