流处理Stream Map中去除重复映射键,一个IllegalStateException执行收集操作时被抛出。 如果映射的密钥可能有重复,请改用toMap(Function, Function, BinaryOperator)Map eventMap = missionFinishEventList.stream().collect(Collectors.toMap(CronusMissionFissionEventDTO::getEventTy...............
序列化对象实战处理 ObjectMapperUtils 是一个对Jackson的封装。 推荐直接使用Jackson,或者提供自己项目内部的Jackson工具封装。Jackson是性能优秀,同时功能也非常丰富的Java json序列化/反序列化工具,常用的模块有数十个,提供的序列化/反序列化配置也有几十个。 而每个使用者使用Jackson可能都有不同的需求,所以用统一的封装解决所有的问题是不可能的。toJson二、Serializable对象实现Serializable接口总结...
多线程异步并发处理写法 多线程异步并发处理核心类介绍方法1方法2核心类介绍你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。方法1 //线程池1 ExecutorService executor1 = Executors.newFixedThreadPool(5); //方法返回Future CompletionService&
总结面试问题 %%%%%%%java8新特性lambda表达式,(java代码更简洁紧凑->)stream(集合的操作,类似数据库的复杂操作,特性:不存储,不改变源数据,延迟执行 流程: 创建stream,中间操作,终止操作(只有它执行,中间操作才执行),optional(null),方法引用和构造器引用,接口的默认方法(default,有具体实现)与静态方法%%%%%%%%%jvm调优工具 cpu/内存高调整jvm参数,监控GC状态,分析内存泄漏,分析dump文件(arthas(dashboard看哪个
Mysql存储引擎介绍及对比 Mysql存储引擎InnoDB存储引擎MyISAM存储引擎MEMORY存储引擎mysql中几个存储引擎的综合对比存储引擎的选择InnoDB和MyISAM的区别InnoDB存储引擎InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,InnoDB是默认的MySQL引擎。InnoDB主要特性有:InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些
JVM重点快速总结 JVM重点快速总结JVM内存模型以及分区堆的分区,以及各个分区的特点:对象的创建方法,对象的内存布局,对象的访问定位对象的创建:对象的内存布局:垃圾回收的判定方法:引用计数法,引用链法Java的四种引用类型及特点:GC的三种收集算法的原理和特点,用途,优化思路GC收集器有哪些?CMS和G1收集器的特点Minor GC和Full GC分别发生在什么时候?类加载过程:加载、验证、准备、解析、初始化什么时候进行类的初始化?双亲委派模型:JVM内存模型以及分区JVM内存分为:1.方法区:线程共享的区域,存储已
CDN之初步认识 CDN之初步认识CDN定义CDN特点CDN例子传统的未加缓存服务的访问过程加缓存的访问(CDN)CDN定义CDN:内容分发网络(Content Delivery Network),建立并覆盖在承载网络之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。CDN特点CDN网络一般分为中心与边缘节点两部分,中心负责全局负载均衡管理与内容管理;CDN节点由两部分组成:负载均衡设备和高速缓存服务器分布式存储通过DNS解析实现内容分发的负载均衡全局负载均衡管理和内容管理CDN例子传统的未加
Thymeleaf之standard Expression Syntax Thymeleaf之standard Expression Syntax${...} 变量表达式*{...} 选择变量表达式#{...}消息表达式~{...} 片段表达式fragments${…} 变量表达式上下围包含的变量映射上执行的OGNL表达式<span th:text="${today}"></span>相当于ctx.getVariable(“today”)#ctx:上下文对象。#vars: 上下文变量。#locale:上下文语言环境。#request:(仅
HashMap相关知识 HashMap相关知识红黑树知识红黑树与avl树区别(为什么用红黑树,不用bst,avl,保持o(logn)AVL树红黑树红黑树知识首先是一种特殊的二叉搜索/查找树,其性质如下:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;任意节点的左、右子树也分别为二叉查找树。没有键值相等的节点(no duplicate nodes)二叉查找树在某些情况下退化成线性链表,但红黑树一直保持o(logn)红黑树的5个
面试准备之必问知识点 面试准备之必问知识点OOM不要重写finialze方法,垃圾回收会自动调用强引用 软引用 弱引用 虚引用强引用:M m=new M()m=null;主线程阻塞才会垃圾回收软引用:SoftReference<byte[]> m=new SoftReference<>(new byte[1024102410]);new byte[]为软引用 ,m为强引用heap堆放不下,会垃圾回收,如果不够,会把软引用干掉适合于缓存使用弱引用:WeakReference m=
OJ-归并排序 归并排序掌握非递归与递归逆序交换次数的思想就是归并排序package Week1;import java.util.Scanner;public class Test21 { static int count=0;////静态变量最后要清零 public static void main(String[] args) { Scanner in=new Scanner(System.in); int a=in.nextInt(); for(int i=0;i<a;i++){
OJ-希尔排序 increment为每次相隔的距离,此过程是中间过程,可以把外循环改一下就变成希尔排序希尔排序就是有递减间隔的插入排序import java.util.Scanner;public class shellTest { public static void main(String[] args) { Scanner inScanner=new Scanner(System.in); int n=Integer.parseInt(inScanner.nextLine()); for
OJ-堆排序 快速排序递归与非递归实现快速排序非递归要注意栈进出顺序,不要弄反start,end,或者改用队列实现import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Stack;public class Main{
OJ-插入排序 插入排序插入时比较元素后需要考虑向后移动元素要用temp原因是因为插入过程中a[j+1]会把a[i]里面的元素替换掉package Week1;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class bubbleS
OJ-计数排序 计数排序用空间换时间import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { B
OJ-冒泡排序 import java.awt.print.Printable;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class Main { public static void main(String[] args) thro.