- 博客(43)
- 收藏
- 关注
原创 【RabbitMQ Confirm和returns保证生产者消息可靠性】
RabbitMQ Confirm和returns保证生产者消息可靠性RabbitMQ生产者消息可靠性实验环境软件环境和版本spring boot yml 配置RabbitMQ控制台创建交换机和队列并绑定最基本的生产者代码消息生产者流程梳理消息发送流程图简单理解两种机制confirm:returns:深入confirm机制confirm返回成功但消息丢失的情况模拟confirm返回失败的情况模拟结论深入returns机制持久化失败returns触发情况模拟confirm返回成功returns不触发消息丢失模拟
2022-05-21 19:15:59
894
原创 Redis:rm_tdigest.c:5:21: 致命错误:tdigest.h:没有那个文件或目录
安装redis布隆过滤器出错。问题截图:解决方案:下载发布的版本,master不行。下载玩重新解压,然后make。成功
2021-06-10 20:52:18
1137
6
原创 java复制数组基本数据类型和引用数据类型
java复制数组基本数据类型和引用数据类型什么是基本数据类型和引用数据类型在java中,分为基本数据类型和引用数据类型。其中基本数据类型有八种。序号数据类型位数默认值取值范围举例说明1byte(位)80-2^7 - 2^7-1byte b = 10;2short(短整数)160-2^15 - 2^15-1short s = 10;3int(整数)320-2^31 - 2^31-1int i = 10;4long(长整数)
2020-09-03 09:04:07
511
原创 java.net.ConnectException_ Connection refused_ no further information
java.net.ConnectException: Connection refused: no further information开发时连接没有问题,改成服务器的连接方式没有问题。然后又改回开发时情况,发现hbase数据库无法连接。错误java.net.ConnectException: Connection refused: no further information at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
2020-09-03 09:01:47
2124
原创 java字符串转数组
java字符串转数组碰到这个问题本以为简单解决,谁知道搜索引擎结果驴头不对马嘴。特此记录。将一个字符串形式的数组转成数组。str = “[“东西”,“南北”,“前后”]”经过一番查找,发现JDK 并没有给出合适的 api 直接调用。所以我们要自己实现。/*** 该方法将字符串形式的数组转化为字符串数组* @param str 字符串* @return 返回转化完的数组*/public String[] parseStrArray(String str){ String substr
2020-08-26 18:56:31
1712
原创 tomcat的get请求有{}时报错,浏览器get请求400
tomcat的get请求有{}时报错,浏览器get请求400记录自己在开发时遇到的一个小坑。当我使用调试工具发一个get请求进行时可以正常访问,但是使用浏览器直接访问便会直接报错。可以看到此时可以正常访问。然后我们复制链接到浏览器地址直接打开最后我们对比两次请求访问 URL 来看,成功访问的将** "{"," }**"进行了编码。访问失败的没有进行编码。问题解决这个问题是高版本tomcat中的新特性:就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允
2020-08-26 18:55:17
543
原创 java.lang.IllegalArgumentException_ Invalid character found in the request target
java.lang.IllegalArgumentException: Invalid character found in the request target今天在服务器部署项目发现异常。该异常造成结果是带参数的请求后端无法获取参数。前端返回错误400。异常详情java.lang.IllegalArgumentException: Invalid character found in the request target [/searchPos?key=%E7%AE%97%E6%B3%95&am
2020-08-26 18:53:27
706
原创 hbase创建表错误ERROR_ Failed after attempts=46, exceptions_
hbase创建表错误ERROR: Failed after attempts=46, exceptions:详细错误信息hbase(main):002:0> create 'boot','testfamily'ERROR: Failed after attempts=46, exceptions:Mon Aug 24 10:37:40 CST 2020, RpcRetryingCaller{globalStartTime=1598236660462, pause=100, maxAttem
2020-08-26 18:51:46
1702
1
原创 将spring-boot项目保存至Github
将spring-boot项目保存至Github之前自己用spring-boot开发了一个小项目,但代码一直保存在自己的电脑上。一旦电脑出现异常造成的损失难以弥补。于是将代码上传至Github。Github优点更安全有效的保存代码方便多人维护方便不同办公电脑维护一个项目(比如在公司和在家)步骤如下:一、GitHub新建仓库用来存放代码1)github新建仓库。(过于简单)2)复制仓库链接二、将要保存的项目添加到本地 git安装git:https://blog.youkuaiyun.com
2020-08-10 15:39:13
339
原创 spring boot配置多个包时Consider defining a bean of type ‘你的类名‘ in your configuration.
spring boot配置多个包时Consider defining a bean of type 'com.yisen.wechat.mapper.WeChatSelectMapper' in your configuration.问题描述在平时项目开发中,因为涉及到pc端和小程序段的后台接口开发,于是将目录分为以下两个????并且此时在主启动类上添加此时启动项目进行测试Consider defining a bean of type ‘com.yisen.wechat.mapper.We
2020-08-05 16:59:13
1165
原创 JDK7新特性之try-with-resources
JDK7新特性之try-with-resources本节内容并非JDK8的新特性,而是JDK7的新特性。此处讲解是因为多数人并不知道。传统方式在资源关闭时,需要对每个需要关闭的资源进行 手动调用close 方法来关闭方法。try-with-resources 方法可以省去传统方式繁琐的步骤,使代码更加简洁。功能用于资源关闭。注意实现了AutoCloseable接口的类,在try()里声明该类实例的时候,try结束后自动调用的close方法,这个动作会早于finally里调用的方法
2020-08-01 17:18:28
196
原创 JDK8新特性之新内存空间Matespace
JDK8新特性之新内存空间MatespaceJDK8中使用元空间Matespace 替代持久代 PermGen space持久代PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen s
2020-08-01 17:16:10
826
原创 JDK8新特性处理电商订单数据之答案讲解下集
JDK8新特性处理电商订单数据之答案讲解下集案例统计两个人的分别购买订单的平均价格public class Main { public static void main(String[] args) { //总价 35 List<VideoOrder> videoOrders1 = Arrays.asList( new VideoOrder("20190242812", "springboot教程", 3),
2020-07-31 10:13:30
192
原创 JDK8新特性处理电商订单数据之答案讲解上集
JDK8新特性处理电商订单数据之答案讲解上集案例统计出同时被两个人购买的商品列表(交集)public class Main { public static void main(String[] args) { //总价 35 List<VideoOrder> videoOrders1 = Arrays.asList( new VideoOrder("20190242812", "springboot教程", 3)
2020-07-31 10:12:22
220
原创 Collection和Lambda电商数据处理实战需求说明
Collection和Lambda电商数据处理实战需求说明实战案例电商订单数据处理,根据下面的 videoOrders1 和 videoOrders2 两个订单集合统计出同时被两个人购买的商品列表(交集)8-2统计出两个人购买商品的差集8-2统计出全部被购买商品的去重并集8-2统计两个人的分别购买订单的平均价格8-3统计两个人的分别购买订单的总价格8-3订单类public class VideoOrder { private String tradeNo;
2020-07-31 10:11:11
208
原创 Java8新特性JDK8之summarizing集合统计
Java新特性玩转JDK8之summarizing集合统计summarizing 资料summarizing 是用来做统计相关的东西分类(统计类型不同,使用方式相同)summarizingInt //统计int类型summarizingLong //统计Long类型summarizingDouble //统计Double类型summarizingInt源码示例public static <T> Col
2020-07-30 14:25:29
3043
原创 Java8新特性JDK8之收集器 group by进阶
Java新特性玩转JDK8之收集器 group by进阶功能直接返回分组后各组元素的数量。Map<String,Long>类型使用使用groupingBy 分组时,多传入一个参数 Collectors.counting()示例统计各个省份的学生数量。学生类public class Student { private String province; private int age; public Student(Stri
2020-07-30 14:24:18
560
原创 Java8新特性JDK8之收集器 group by分组
Java新特性玩转JDK8之收集器 group by分组功能按照参数返回值来对元素分组,可分为多组。示例根据学生所在的省份对学生进行分组。学生类public class Student { private String province; private int age; public Student(String province, int age) { this.age = age; this.provin
2020-07-30 14:23:03
2091
原创 Java8新特性JDK8之收集器 partitioningBy分组
Java新特性玩转JDK8之收集器 partitioningBy分组parttioningBy 分组按照参数条件将数据分为两组。结果为Map<boolean, List> 类型,一组为符合条件,另一组为不符合条件。示例找出集合中长度大于四 和 长度小于等于四的元素。public class Main { public static void main(String[] args) { List<String> list = Arrays
2020-07-30 14:21:42
397
原创 Java8新特性JDK8之joining函数
Java8新特性玩转JDK8之joining函数Collectors.joining 方法介绍该方法用来对流中元素字符串拼接,后以一个字符串进行显示。该方法有三种重载Collectors.joining();Collectors.joining("param");Collectors.joining("param1", "param2", "param3");无参数时public class Main { public static void main(String[]
2020-07-30 14:20:12
1222
原创 Java8新特性JDK8之collector收集器
Java新特性玩转JDK8之collector收集器流的collect()方法一个终端操作, 用于对流中的数据进行归集操作,collect方法接受的参数是一个Collector两个重载方法方法一 ,通常用来自定义返回值类型,但在实际开发中很少使用<R> R collect(Supplier<R> supplier, BiConsumer<R, ? super T> accumulator, BiConsumer<R, R>combine
2020-07-30 14:18:42
319
原创 Java8新特性玩转JDK8之集合的foreach
Java8新特性玩转JDK8之集合的foreach功能遍历集合接口方法代码public interface Iterable<T> { ··· default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t)
2020-07-29 11:05:56
611
原创 Java8新特性玩转JDK8之reduce操作
6-2 Java新特性玩转JDK8之reduce操作功能聚合操作,中文意思是 “减少”根据一定的规则将Stream中的元素进行计算后返回一个唯一的值常用方法类型预览Optional reduce(BinaryOperator accumulator);T reduce(T identity, BinaryOperator accumulator);参数BinaryOperator accumulator中文意思累加器。继承BiFunction接口。常用方法详解Op
2020-07-29 11:04:08
1995
原创 Java8新特性JDK8之并行流parallelStream
Java新特性玩转JDK8之并行流parallelStream为什么会有这个并行流?集合做重复的操作,如果使用串行执行会相当耗时,因此一般会采用多线程来加快, Java8的paralleStream用fork/join框架提供了并发执行能力底层原理线程池(ForkJoinPool)维护一个线程队列可以分割任务,将父任务拆分成子任务,完全贴合分治思想stream和parallelStream区别public class Main { public static v
2020-07-29 11:02:22
3262
原创 Java8新特性JDK8之流操作max和min函数
Java新特性玩转JDK8之流操作max和min函数max函数功能根据条件找出集合中的最大值。代码示例返回学生对象集合中年龄最大的学生public class Main { public static void main(String[] args) { List<Student> list = Arrays.asList(new Student(32),new Student(33),new Student(21),new Studen
2020-07-28 17:44:03
1998
原创 Java8新特性JDK8之流操作allMatch和anyMatch函数
Java新特性玩转JDK8之流操作allMatch和anyMatch函数allMatch函数功能检查是否匹配所有元素,只有全部符合才返回true代码示例判断集合中是否所有元素长度大于5public class Main { public static void main(String[] args) { List<String> list = Arrays.asList("springboot", "springcloud", "red
2020-07-28 17:05:23
3168
原创 Java8新特性JDK8之流操作limit和sorted函数
Java新特性玩转JDK8之流操作limit和sorted函数sorted函数类型及功能sorted() 对流进行自然排序, 其中的元素必须实现Comparable 接口sorted(Comparator<? super T> comparator) 用来自定义升降序代码及示例sorted() 对流进行自然排序字母 a - z 升序public class Main { public static void main(String[] args) {
2020-07-28 17:03:25
1029
原创 Java8新特性JDK8之流操作map和filter函数
Java新特性玩转JDK8之流操作map和filter函数map函数功能详情将流中的每一个元素 T 映射为 R(类似类型转换)使用场景转换对象,如javaweb开发中集合里面的DO对象转换为DTO对象示例当前端需要展示所有用户时,要避免返回过多信息,并防止暴漏数据库其他字段。定义User类,该类属性和数据库字段一 一对应。(id,用户名,密码)public class User { private int id; private
2020-07-28 16:57:54
2441
原创 Java8新特性JDK8之流Stream实战
Java8新特性JDK8之流Stream实战什么是Stream?Stream 中文称为 “流”,通过将集合转换为这么一种叫做 “流”的元素队列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的流水线操作元素是特定类型的对象,所以元素集合看作一种流, 流在管道中传输, 且可以在管道的节点上进行处理, 比如 排序,聚合,过滤等操作操作详情数据元素便是原始集合,如List、Set、Map等生成流,可以是串行流stream() 或者并行流 parallelStream()中间
2020-07-28 16:50:09
187
转载 4-6 Java新特性玩转JDK8之方法与构造函数引用
4-6 Java新特性玩转JDK8之方法与构造函数引用如果您还没有阅读本章须知,请先阅读➡ 本章须知视频课程代码:User用户类public class User { private String name; private int age; public User() { } public User(String name, int age) { this.name = name; this.age = age;
2020-07-25 10:01:47
132
转载 4-5 Java新特性玩转JDK8之函数式编程 Predicate
4-5 Java新特性玩转JDK8之函数式编程 Predicate如果您还没有阅读本章须知,请先阅读➡ 本章须知资料Predicate: 断言型接口:有入参,有返回值,返回值类型确定是boolean@FunctionalInterfacepublic interface Predicate<T> { boolean test(T t);}用途接收一个参数,用于判断是否满足一定的条件,过滤数据。使用示例过滤List集合中,以a开头的字符串。public
2020-07-25 10:00:42
148
转载 4-4 Java新特性玩转JDK8之函数式编程 Supplier
4-4 Java新特性玩转JDK8之函数式编程 Supplier如果您还没有阅读本章须知,请先阅读➡ 本章须知资料Supplier: 供给型接口:无参数,有返回值该类比较少用@FunctionalInterfacepublic interface Supplier<T> { T get();}用途对于使用一个不能确定对象(可能会有变化的对象),进行包装,从而进行解耦和。泛型一定和方法的返回值类型是一种类型,如果需要获得一个数据,并且不需要传入参数,可以使用
2020-07-25 09:59:12
157
转载 4-3 Java新特性玩转JDK8 函数式编程 Consumer
4-3 Java新特性玩转JDK8 函数式编程 Consumer如果您还没有阅读本章须知,请先阅读➡ 本章须知资料Consumer 消费型接口:有入参,无返回值@FunctionalInterface 接口用处是告诉其他团队成员该接口是一个函数式接口,有且只能有一个需实现的方法@FunctionalInterfacepublic interface Consumer<T> { void accept(T t);}用途因为没有出参,常用于打印、发送短信等消费动作。
2020-07-25 09:57:23
161
转载 4-2 Java新特性玩转JDK8 函数式编程BiFunction
4-2 Java新特性玩转JDK8 函数式编程BiFunction如果您还没有阅读本章须知,请先阅读➡ 本章须知资料BiFunction 为函数型接口,有两个参数,有返回值。对比Function 多了一个可传入的参数。@FunctionalInterface 接口用处是告诉其他团队成员该接口是一个函数式接口,有且只能有一个需实现的方法@FunctionalInterfacepublic interface BiFunction<T, U, R> { R apply(T
2020-07-25 09:56:18
408
转载 4-1 Java新特性玩转JDK8 函数式编程Function
4-1 Java新特性玩转JDK8 函数式编程Function如果您还没有阅读本章须知,请先阅读➡ 本章须知资料Function 为函数型接口,有参数,有返回值。@FunctionalInterface 接口用处是告诉其他团队成员该接口是一个函数式接口,有且只能有一个需实现的方法//@param <T> 是方法传入参数//@param <R> 是方法返回类型@FunctionalInterfacepublic interface Function<T,
2020-07-25 09:55:04
164
转载 4-0 学习JDK8 函数式编程前言
4-0 学习JDK8 函数式编程前言使用Lambda表达式必须先定义接口吗?Lambda表达式先定义接口,创建相关方法之后使用,这样做十分不便。其实java8已经内置了许多接口, 例如下面四个功能型接口,所以一般很少会由用户去定义新的函数式接口**Java8的最大特性就是函数式接口,所有标注了@FunctionalInterface注解的接口都是函数式接口Java8内置的四大函数接口。Consumer<T> : 消费型接口:有入参,无返回值 void accept(T t);--
2020-07-25 09:52:33
134
原创 3-2 JDK8 之自定义函数式编程实战
3-2 JDK8 之自定义函数式编程实战Lambda 表达式在实际开发中应该如何使用呢?接下来将使用自定义函数式接口与Lambda表达式来实现一个简易的加、减、乘、除。并借此展示Lambda表达式在实际开发中的应用。1)、定义加、减、乘、除函数式接口@FunctionalInterface 接口用处是告诉其他团队成员该接口是一个函数式接口,有且只能有一个需实现的方法@FunctionalInterfacepublic interface OperFunction<R,T> {
2020-07-24 16:10:25
286
原创 3-1 JDK8 Lambda表达式
3-1 JDK8 Lambda表达式什么是 Lambda 表达式?在JDK8之前,Java是不支持函数式编程的,所谓的函数编程,即可理解是将一个函数(也称为“行为”)作为一个参数进行传递,面向对象编程是对数据的抽象(各种各样的POJO类),而函数式编程则是对行为的抽象(将行为作为一个参数进行传递)与传统方式的对比1)、新建线程传统方式:public class Main { public static void main(String[] args) { new Thre
2020-07-24 16:09:08
92
原创 2-5 JDK8之Optional类
2-5 JDK8之Optional类本小节内容将包含一定的Lambda表达式可先跳过观看第三章产生背景:空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。注意:Optional是为了避免传统空指针异常,而并非是返回null一、三种构造方式1)、返回一个值为空的Optional对象public class Main {
2020-07-23 11:35:18
221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人