自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 Date 时间拼接以及比较

Date 时间拼接以及比较。

2024-04-11 19:44:37 100

原创 groupBy分组

{"李四-30":[{"age":30,"money":6000,"name":"李四"}],"张三-30":[{"age":30,"money":4000,"name":"张三"}],"张三-20":[{"age":20,"money":3000,"name":"张三"}]}方式三:分组后的value是取某个字段的集合(set/list)输出:{"李四":[30],"张三":[20,30]}方式一:对某个字段分组。方式二:对多个字段分组。

2024-03-21 10:45:37 198

原创 map分组操作

第三个参数(e, f) -> e ,如果e与f的key值相同,选择e作为那个key所对应的value值。第一个参数(User::getName 表示选择User的getName作为map的key值;使用stream流对list中某个字段分组映射成map,如果key重复会报错。第二个参数e -> e表示选择将原来的对象作为map的value值;对于key相同的请求,要添加响应的处理策略。

2024-03-07 11:18:59 373 1

原创 map多个字段分组聚合

{{"age":20,"name":"张三"}:7000,{"age":30,"name":"李四"}:6000}{"张三_20":7000,"李四_30":6000}方式一:map的key使用DTO对象判断唯一。3.测试多字段唯一聚合,根据名称和年龄聚合。2.定义一个需要判断多字段唯一的DTO类。方式二:多字段拼接成字符串。1.定一个User类。

2024-03-07 11:00:26 406

原创 rocketMQ

1.安装下载地址:Downloading the Apache RocketMQ Releases - Apache RocketMQToday, more than 100 companies are using the open source version of RocketMQ in their business.Compatibility GuideThe table below shows the supported jre environment for components of eac

2022-03-19 17:32:51 478

原创 阿波罗(apollo)配置改成本地

1.修改server.properties在C:\opt\settings找到server.properties修改env=Local2.找到本地缓存的配置注意888888355011 是appIdappId在后台可以看到,如下图所示3.修改配置文件对应属性如修改888888355011+gray+application.properties中server.port...

2022-02-21 11:07:42 2357

原创 idea报错cannot access com.*.*

在开发过程中偶尔会碰到以下情况明明包、类都存在,就是无法引用到对应包,报cannot access com.*.* 异常解决方式:File -> Invalidate caches /restart

2022-02-16 15:05:29 1655

原创 6支队伍进行比赛,要求进行5场比赛,比赛队伍不能重复

6支队伍进行比赛,要求进行5场比赛,比赛队伍不能重复思路:固定第一支队伍不动,其他队伍循环一圈,两两队伍组队比赛package algorithm.all;public class BiSai { public static void main(String[] args) { int[] a ={1,2,3,4,5,6}; int length = a.length; for (int i = 0; i < a.length-1

2022-02-10 11:05:02 392

原创 java根据权重随机抽奖

如某次抽奖活动需求中将概率分布:一等奖:二等奖:三等奖:四等奖=1:2:3:4中将的概率分布:代码实现package algorithm.zhongjiang;import java.util.ArrayList;import java.util.List;public class ChoosePrize { public static int getPrize(List<Prize> list){ double sum = list.s..

2022-02-09 19:57:59 922

原创 Lambda--方法引用

一、类的静态方法:我们在重写方法的时候,方法体中“只有一行代码”,并且这行代码是“调用了某个类的静态方法”,并且我们把要重写的抽象方法中“所有的参数都按照顺序传入了这个静态方法中”,这个时候我们就可以引用类的静态方法package lambda;import java.util.function.Supplier;public class SupplierImpl implements Supplier<Test1> { @Override public Tes

2022-02-08 10:42:57 434

原创 算法--动态规划

1.给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案package algorithm.dtgh;/** * @version BiTeWei.java, v 0.1 2022年01月27日 16:09 * 给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。.

2022-02-06 15:41:23 559

原创 创建型设计模式-工厂模式

创建型设计模式1.简单工厂package design.factory.factorySimple;/** * 抽象图标接口 */public interface Chart { public void display();}柱状图实现/* */package design.factory.factorySimple;/** * @version PieChart.java, v 0.1 2022年01月13日 17:05 */public c.

2022-01-25 17:01:16 309

原创 LockSupport使用,以及与wait/notify await/signal的比较

LockSupport通过pack 和 unpark 的方法来实现阻塞和唤醒线程的操作Locksupport l类使用了一种名为permit 许可证的概念来做到阻塞和唤醒线程的功能,每个线程都有一个许可证permit,Permit只有两个值 1 和0 默认是0使用Locksupport 的pack 和unpark方法 实现wait/notify await/signal的阻塞 唤醒功能1.使用wait/notify阻塞唤醒package com.example.starter;pu..

2021-11-14 21:59:57 282

原创 死锁定位分析

死锁:两个 或两个以上的线程执行过程中因抢夺资源而互相等待的过程package com.example.starter;import java.util.concurrent.TimeUnit;class HoldLockThread implements Runnable{ private String lockA; private String lockB; public HoldLockThread(String lockA, String lockB) { .

2021-11-14 13:56:27 184

原创 线程池的使用

结果 1.Executors.newFixedThreadPool固定线程数package com.example.starter;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class MyThreadPoolDemo { public static void main(String[] args) { ExecutorService thr

2021-11-14 13:37:53 65

原创 多线程Callable使用

多线程情况下 使用callable的好处是 可以获取到结果注意使用callable时 要结合 FutureTask使用,因为FutureTask类继承runnbale接口,Thread类实例化时必须要传runnable或其子类。FutureTask实例化时 要传callable类,所以callable和FutureTask要结合使用class CallableThread implements Callable<Integer>{ @Override public Inte.

2021-11-09 23:16:25 632

原创 Lock在多线程模式下的应用

Lock多线程模式下的使用记住三个步骤a.判断 while条件判断 多线程模式下一定是whileb.干活 执行业务代码c.通知 唤醒下一个要运行的线程还得记住 线程操作资源类,资源类要定义好 condition条件别忘了1.一个初始值为0的变量 两个线程对其交替操作一个加1 一个减1 来5轮/** * 一个初始值为0的变量 两个线程对其交替操作 * 一个加1 一个减1 来5轮 */public class ProdConsumer { public static...

2021-11-07 23:15:57 158

原创 Java 队列的使用

BlockQueue 的核心方法add方法实例,队列大小是3 当add第四个元素时报错package com.example.starter;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/** * 阻塞队列 * 阻塞队列有没有好的一面 * * 不得不阻塞 如何管理 */public class BlockingQueueDe...

2021-11-07 22:07:20 198

原创 Java 单例模式

1.懒汉式package com.example.starter;/*** * 懒汉式 */public class SilgletonDemo1 { private static SilgletonDemo1 instance = null; private SilgletonDemo1(){ System.out.println(Thread.currentThread().getName()+"构造方法调用"); } public static Silglet

2021-11-07 15:07:40 82

原创 volatile的使用,如何保证原子性

volatile特性:1.保证可见性2.不保证原子性3.禁止指令重排如下代码所示package com.example.starter;public class VolatileDemo { public static void main(String[] args) throws InterruptedException { Mydata data = new Mydata(); for (int i = 1; i <= 20 ; i++) {

2021-11-07 14:13:27 765

原创 Java 多线程售票

方式一:继承thread 类每个线程100张票package com.example.starter;public class SellTickets extends Thread{ public static void main(String[] args) { Thread t1 = new SellTick1(); Thread t2 = new SellTick1(); Thread t3 = new SellTick1(); t1.start(.

2021-11-05 22:02:02 3179 2

原创 git提交初始化项目

使用git提交本地项目至gitee1.本地项目--右键--Git Bash Here2.Git全局设置git config --global user.name "张三"git config --global user.email "[email protected]"3.输入 git init4.输入git add .5.输入 git commit -m "first commit"6.输入 git remote add originhttps://gitee.com...

2021-09-27 14:35:01 449

原创 postman查询ElasticSearch数据

1.192.168.56.10:92002.查看ES节点192.168.56.10:9200/_cat/nodes如下图所示看到的节点就是图1 中的name3.192.168.56.10:9200/_cat/health查看ES的健康状况4.192.168.56.10:9200/_cat/master查看主节点信息5.192.168.56.10:9200/_cat/indices查看ES 的索引信息6.索引一个文档PUT 请求http://192...

2021-08-08 22:33:05 6071 1

转载 递归算法的时间复杂度

同一道题目,同样使用递归算法,有的同学会写出了O(n)的代码,有的同学就写出了O(logn)的代码。这是为什么呢?如果对递归的时间复杂度理解的不够深入的话,就会这样!那么我通过一道简单的面试题,模拟面试的场景,来带大家逐步分析递归算法的时间复杂度,最后找出最优解,来看看同样是递归,怎么就写成了O(n)的代码。面试题:求x的n次方想一下这么简单的一道题目,代码应该如何写呢。最直观的方式应该就是,一个for循环求出结果,代码如下:intfunction1(intx,intn)...

2021-07-29 11:53:42 11760 3

原创 数组相关算法题(二)

1.数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3方式一class Solution { public int findRepeatNumber(int[] nums) { int[] num = new int[nums.leng.

2021-07-28 17:17:36 164

原创 算法中时间复杂度和空间复杂度的计算

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,

2021-07-28 16:17:23 534

原创 docker 安装Elasticsearch、Kibana

1.安装Elasticsearchdocker pull elasticsearch:7.4.22.安装完成后查看是否成功sudo docker images3.可视化检索数据kibanadocker pull kibana:7.4.24.配置挂载数据文件夹# 创建配置文件目录 mkdir -p /mydata/elasticsearch/config# 创建数据目录 mkdir -p /mydata/elasticsearch/data# 将/mydata/e

2021-07-25 20:10:23 189 1

原创 Object 划分

1.PO(persistant object) 持久对象PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包 含任何对数据库的操作。2.DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体。 3.TO(Transfer Object) ,数据传输对象 不同的应用程序之间传输的对象4.DTO(Data Transfer Object)数据传输对象 这个概念来源于 J2EE 的设计模式原来的目的是为了 EJB 的分布式应

2021-07-25 19:21:45 136

原创 springboot界面日期格式化

界面显示如下日期,将其格式化成想要的格式在application.yml配置文件中加入如下配置spring: jackson: date-format: yyyy-MM-dd HH:mm:ss

2021-07-17 18:15:59 135

原创 idea 一次启动多服务配置

1.idea 中 Edit Configurations2. 点击加号3.选择Compound4.把要启动的服务都加进来5.再启动gulimall 会将第4步加入的服务全部启动

2021-07-17 16:49:11 277

原创 A表数据跟新到B表数据的sql

UPDATE settlement_sdk_sync sJOIN trade_order t ON s.order_id = t.trade_code AND s.company_id = 0 AND t.company_id IS NOT NULL AND t.shop_id IS NOT NULL SET s.company_id = t.company_id,s.shop_id = t.shop_id;

2021-07-06 17:48:53 83

原创 post请求 传递json对象和json字符串

1.post请求方式一,指定contentTypecontentType为application/json时,data的类型要转换成json字符串的形式$.ajax({ type : "POST", url : "/mailbox/sendMail/resend", dataType : "json", data : JSON.stringify(ids), contentType:"application/json;charset=utf-8", succes

2021-07-05 11:59:50 14227

原创 空字段不返回到界面的设置@JsonInclude

当数据库查询到数据为空时字段会还回空到界面,如下图所示children属性。如果数据库还回null 属性不还回到界面如何处理?可以在实体类的属性中增加如下注解:@JsonInclude//不为空时才返回这个字段 @JsonInclude(JsonInclude.Include.NON_EMPTY) @TableField(exist = false) private List<CategoryEntity> children;当实体中对应数据库无属性时 可以使用 ...

2021-07-04 20:07:34 342

原创 JAVA后端校验统一异常处理

1.实体类增加校验规则/** * 检索首字母 */ @NotEmpty @Pattern(regexp = "/^[a-zA-Z]$/",message = "检索首字母必须是一个字母") private String firstLetter;2.增加统一异常处理类package com.atguigu.gulimall.product.exception;import com.atguigu.common.exception.BizCodeEnume;import co

2021-07-04 14:55:37 951

原创 JSR303后台校验

关于JSRJSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。关于 JSR-303JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 .

2021-07-04 14:49:33 93

原创 linux目录结构

1.bin是binary的缩写 ,存放经常使用的命令2.sbins就是super user的意思,存放系统管理员使用的系统管理程序3.home存放普通用户的主目录 linux系统中每个用户都有自己的一个目录 一般该目录名是以用户的账号命名的4.root该目录为系统管理员,也称作超级权限者的用户主目录5.boot存放启动linux时的一些核心文件 包括一些连接文件和镜像文件6.proc是个虚拟的目录 它是系统的映射文件 可以获取系统信息7.srvser...

2021-06-23 14:25:37 47

原创 文件上传(四)

通过以下方式去上传文件:后台代码:import com.aliyun.oss.OSS;import com.aliyun.oss.common.utils.BinaryUtil;import com.aliyun.oss.model.MatchMode;import com.aliyun.oss.model.PolicyConditions;import com.atguigu.common.utils.R;import org.springframework.beans.facto

2021-06-20 20:47:29 89

原创 文件上传(三)

使用SpringCloud Alibaba-OSS上传文件spring-cloud-alibabahttps://github.com/alibaba/spring-cloud-alibaba

2021-06-20 18:58:24 137

原创 文件上传(二)

文件管理--帮助可以看到sdk api的使用

2021-06-20 18:28:56 145

原创 文件上传(一)

文件上传的方式:

2021-06-20 16:54:58 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除