- 博客(281)
- 资源 (10)
- 收藏
- 关注
原创 jdk8_Stream流使用-映射
map()实现类型转换接收一个函数作为方法参数,这个函数会被应用到集合中每一个元素上,并最终将其映射为一个新的元素案例:将List 转换Listpublic class MapDemo { static class KeyValue { private Integer key; private String value; public KeyValue(Integer key, String value) { thi
2021-07-26 10:46:03
448
原创 jdk8_Stream流-自定义收集器
介绍对于自定义收集器实现,需要对Collector接口中的方法进行实现Collector接口需要三个参数。T:流中要收集的元素类型、A:累加器的类型、R:收集的结果类型public interface Collector<T, A, R> { Supplier<A> supplier(); BiConsumer<A, T> accumulator(); BinaryOperator<A> combiner(); F
2021-07-26 10:45:52
423
原创 jdk8_Stream流使用-收集器
简介通过使用收集器,可以让代码更加方便的进行简化与重用。其内部主要核心是通过Collectors完成更加复杂的计算转换,从而获取到最终结果。并且Collectors内部提供了非常多的常用静态方法,直接拿来就可以
2021-07-25 23:44:29
420
2
原创 jdk8_Stream流使用-归约
reduce()进行累积求和用于对集合累加求和案例-对数据进行求和:public class ReduceDemo { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(); numbers.add(3); numbers.add(2); numbers.add(1); numbe
2021-07-25 23:41:46
114
原创 jdk8_Stream流使用-构建流
基于值创建流Stream中提供了一个静态方法of,它可以接收任意数量参数,显式的创建一个流。并且会根据传入的参数类型,构建不同泛型的流public class BuildStream { public static void main(String[] args) { //自动推断类型 Stream<String> stream = Stream.of("a", "b", "c"); stream.forEach(s -> S
2021-07-25 23:41:03
115
原创 jdk8_Stream流使用-查找
findAny()查找元素用于获取流中随机的某一个元素,并且利用短路在找到结果时,立即结束案例:public class FindAnyDemo { public static void main(String[] args) { List<Student> studentList = new ArrayList<>(); studentList.add(new Student("张三", 23)); studentLi
2021-07-25 23:40:21
627
原创 jdk8Stream介绍
概述流操作是Java8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中,能让代码更加简洁,极大地简化了集合的处理操作,提高了开发的效率和生产力。同时stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。在Stream中的操作每一次都会产生新的流,内部不会像普通集合操作一样立刻获取值,而是惰
2021-07-25 23:39:45
128
原创 jdk8函数式接口
在Java8中为现在有的函数能够友好的使用Lambda表达式,因此引入了函数式接口,其中一个接口仅有一个抽象方法的普通接口。如果声明多个抽象方法则会报错,但是默认方法和静态方法在接口中可以定义多个声明接口为函数式接口,需要在接口上添加@FunctionalInterface注解
2021-07-25 14:35:54
1047
原创 Post提交JSON数据自动转为实体对象
在SpringBoot中,post提交的JSON数据时候,自动将参数信息转为实体对象,并且校验字段信息
2021-07-15 22:16:19
951
1
原创 MySQL锁篇-⾏级锁
⾏级锁介绍MySQL的⾏级锁,是由存储引擎来实现的,利⽤存储引擎锁住索引项来实现的。InnoDB的⾏级锁,按照锁定范围来说,分为三种: - 记录锁(Record Locks):锁定索引中⼀条记录。 id=1 - 间隙锁(Gap Locks):要么锁住索引记录中间的值,要么锁住第⼀个索引记录前⾯的值或者最后⼀个索引记录后⾯的值 - Next-Key Locks:是索引记录上的记录锁和在索引记录之前的间隙锁的组合InnoDB的⾏级锁,按照功能来说,分为两种: RR - 共享锁(S):允许
2021-06-24 22:33:34
293
1
原创 MySQL锁篇-表级锁
表级锁介绍由MySQL SQL layer层实现MySQL的表级锁有两种:表锁元数据锁(meta data lock,MDL)MySQL 实现的表级锁定的争⽤状态变量: show status like 'table%';table_locks_imm diate:产⽣表级锁定的次数;table_locks_waited:出现表级锁定争⽤⽽发⽣等待的次数;表锁介绍表锁有两种表现形式:表共享读锁(Table Read Lock)表独占写锁(Table Write Lock
2021-06-24 22:11:55
892
1
原创 MySQL锁篇-锁介绍
按照锁的粒度来看,MySQL主要包含三种类型(级别)的锁定机制:全局锁锁的是整个database。由MySQL的SQL layer层实现的表级锁锁的是某个table。由MySQL的SQL layer层实现的⾏级锁锁的是某⾏数据,也可能锁定⾏之间的间隙。由某些存储引擎实现,⽐如InnoDB表级锁和⾏级锁的区别:表级锁: 开销⼩,加锁快;不会出现死锁;锁定粒度⼤,发⽣锁冲突的概率最⾼,并发度最低;⾏级锁: 开销⼤,加锁慢;会出现死锁;锁定粒度最⼩,发⽣锁冲突的概率最低,并发度也最⾼;按照
2021-06-24 21:47:30
95
原创 SpringBoot基础-Environment解析监听器发布事件
SpringBoot基础-Environment解析监听器发布事件listeners.environmentPrepared
2021-01-16 22:02:19
1384
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人