自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CompletableFuture&CopyOnWriteArrayList 多线程查询优化

1

2022-12-27 14:40:42 319 1

原创 两个list循环统计次数

需求:在一个list中,找到每个对象里面包含另一个lis关键词的次数。 public static void main(String[] args) { String res = "你的我的春天啊的大撒发生我爱大方,撒饭撒的方式阿多少钱dsfd324大方三分大赛的我的的好嘎嘎"; StringBuilder a = new StringBuilder(); long timeMillis1 = System.currentTimeMillis()

2022-05-23 15:48:01 393

原创 jsonStrig 带有下划线的对象转换成javabean

1.将某个string转化成对象,但是string是带有下划线:[{"item_title": "(买一送一) 浅米灰(加绒加厚)情侣鞋", "item_cnt": 182, "item_unit_price": 10058.63, "item_all_price": 1830670, "item_id": 1, "rel_item_id": 3832160003872, "source_type": 99, "rel_shop_id": 0},{"item_title": "(买一送一) 三元灰(四

2022-04-13 21:10:33 1351

原创 工具类:统一获取打点信息

1. 封住工具类,获取具体哪个方法哪个地方出问题打点。public class PerfUtils { /** * rpc方法执行异常打点 */ public static void perfRpcErr(Exception e) { String[] serviceArr = Thread.currentThread().getStackTrace()[2].getClassName().split("\\."); String

2021-11-24 17:23:28 624 1

原创 BufferTrigger分享记录

1、基本功能把多次操作合并成一次操作批量执行,类似于Hystrix的请求合并。2、基本api及使用方式// 构建一个缓冲队列private BufferTrigger<String> bufferTrigger = BufferTrigger.<String> batchBlocking() // 队列最大容量 .batchSize(5) // 每隔n秒消费一次 .li

2021-11-17 11:16:49 3172

原创 JSON- string的对象数组转对象

public static void main(String[] args) { String str = "[{\"liveId\":8676034705,\"time\":1634622000,\"gmvAmt\":141120,\"watchCnt\":1075," + "\"addFansCnt\":46,\"payItemCnt\":0,\"payBuyerCnt\":8,\"clickPayRatio\":0,\"perKWatchGmvAmt\.

2021-10-19 20:24:25 369

原创 二分查询最左侧匹配(适合list)

public static void main(String[] args) { A b = new A(2, 3); A c = new A(4, 38); A d = new A(9, 77); List<A> res = new ArrayList<>(); res.add(d); res.add(c); res.add(b); List<A&.

2021-10-13 15:37:17 124

原创 completableFutures并行执行

切记:写的用CopyOnWriteArrayList public static void main(String[] args) { ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(4, 5, 3000, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(5)); System.out.println("等等")

2021-09-10 21:47:28 888

原创 将时间做分割

按照时间做分割/** * 按照天数分割时间 * 例如:1-9 按3天分。[1-4,4-7,7-9] */ public static List<RanTime> cutRangTime(RanTime ranTime, long t) { List<RanTime> ranTimes = new ArrayList<>(); long oneDay = 1000 * 60 * 60 * 24;

2021-09-08 21:11:03 309

转载 秒杀系统设计(转)

转自大佬:https://mp.weixin.qq.com/s/Qoo5yPa5Mmzgb3_kIoTXbw高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商品(比如:手机),以极低的价格(比如:0.1元),让大量用户参与活动,但只有极少数用户能够购买成功。这类活动商家绝大部分是不赚钱的,说白了是找个噱头宣传自己。虽说秒杀只是一个促销活动,但对技术要

2021-08-24 18:23:25 308

转载 (转)轻松在java程序中使用protobuf

转自大佬:https://mp.weixin.qq.com/s/I4jXZUn9sNfoOof0uO8pSg简介Protocol Buffer是google出品的一种对象序列化的方式,它的体积小传输快,深得大家的喜爱。protobuf是一种平台无关和语言无关的协议,通过protobuf的定义文件,可以轻松的将其转换成多种语言的实现,非常方便。今天将会给大家介绍一下,protobuf的基本使用和同java结合的具体案例。为什么使用protobuf我们知道数据在网络传输中是以二进制进行的,一

2021-08-24 18:15:48 1444

原创 搭建一个springboot的web项目

一:新建一个springboot这个比较简单。就不多说。二:修改pom文件。为web项目(web的可以用postman访问)<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:

2021-08-24 11:11:46 361 1

原创 贪心算法 -判断能否满足时间填充

import java.util.Arrays;/** * @author * Created on 2021-05-01 */public class GreedyUtils { /** * 贪心算法工具类 * 实现:一个时间轴是否被其他片段时间充满 * 例如: * A:2-20 * B:中有多个片段 2-7,7-15,15-21 是否能够充满A */ public static boolean video...

2021-07-30 14:53:15 143

原创 Java必会的工具库,让你的代码量减少

Java必会的工具库,让你的代码量减少一:Java自带工具方法1.List集合拼接成以逗号分隔的字符串// 如何把list集合拼接成以逗号分隔的字符串 a,b,c List<String> list = Arrays.asList("a", "b", "c"); // 第一种方法,可以用stream流 String join = list.stream().collect(Collectors.joining(",")); System.out...

2021-07-29 14:37:44 171 1

原创 记录下好的文章-统一异常处理

转自:https://mp.weixin.qq.com/s/AtTyHIdcLo2od12FmoLYqQ前言本篇文章主要介绍的是SpringBoot项目进行全局异常的处理。SpringBoot全局异常准备说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码。开发准备环境要求 JDK:1.8 SpringBoot:1.5.17.RELEASE 首先还是Maven的相关依赖:<properties><p...

2021-06-01 10:11:04 127 1

原创 mysql索引笔记

1.B+树:因为减少io,主键递增,因为适合insert和查询使用。符合连表规则。2.存贮类型: 叶子结点连续,非叶子结点存的是索引范围。 每个结点有可以分为页:页包含指针(开始指针,结束指针指向下一个页),目录(存放数据的字典),数据(根据排序存的数据)3.主键索引查找怎么走:从root结点,到非叶子结点,到具体的叶子结点上面的页。 例如:id>3,也走索引,判断3的位置。减少叶子结点的全表扫描!!!4.联合索引查找规则:结构和主键一样,只是存的都是索引没有数...

2021-03-29 12:02:14 133

原创 时间复杂度-笔记自用

学习链接:https://haokan.baidu.com/v?pd=wisenatural&vid=28362603890635834231.概念:2.分类:

2021-03-28 22:42:28 136

原创 时间复杂度学习备注

https://blog.csdn.net/c99463904/article/details/77414163https://haokan.baidu.com/v?pd=wisenatural&vid=2836260389063583423https://www.jianshu.com/p/f4cca5ce055a

2021-03-28 22:00:17 109

原创 111-总结

1.基础面试知识汇总01:https://mp.csdn.net/editor/html/1038452852.集合面试知识汇总02:https://mp.csdn.net/editor/html/1038454333.数据库面试知识汇总03:https://mp.csdn.net/editor/html/1038658454.多线程,并发 ,volatile,threadlocal面试知识汇总04:https://mp.csdn.net/editor/html/1038440245....

2021-03-25 23:02:04 167

原创 mysql使用union做查询集合汇总

场景: 需要查每天是否有活动,前端给的是时间范围代码:public List<Integer> getTimeRangeCount(String startTIme, String endTime) throws ParseException { //计算时间差的天数:例如2020-01-01 00:00:00 到2020-01-03 02:00:00计算结果为[2020-01-01,2020-01-02] int daysBetween = DateU

2021-03-18 17:44:59 401

原创 备战

参考:https://mp.weixin.qq.com/s/SOErvCCrmPaAVUphSO2Wqw简历制作模版:https://www.polebrief.com/index算法这个该刷还是得刷,别偷懒,我个人感觉刷完下面几个已经够了,大家可以根据自己的基础情况选择1.剑指Offer:https://www.nowcoder.com/ta/coding-interviews2.刷Leetcode,刷Leetcode,刷Leetcode!重要的事情说三遍,Leetcode前20.

2021-02-23 16:15:27 388

原创 restTemplate发送put请求,postman和本地调用可以,服务器不行

HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);headers.add("Authorization", authorizationToken);headers.add("Host", host);headers.add("User-agent", agent);headers.setAccept(Arrays.asList(MediaType.APPLICATI.

2021-02-22 10:32:51 1368 1

原创 java简单的定时任务

@Scheduled 定时任务可以有很多写法,我觉得最简单的就是用注解的方式,如果你的项目用的是spring boot框架,就可以三步完成:一,添加@EnableScheduling注解到入口类声明上面 /** * 启动 * */ @SpringBootApplication @EnableScheduling public class Application { public static void ma...

2021-01-13 14:58:24 125 1

原创 redis分布式锁做切面,一个注解统一使用锁

1. 自定义注解import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME)public @interface RedisLock { String[] keyPieces(); int expireTime() default 5;}2.aop切面@Slf4j@Aspect@Compone

2020-11-27 19:34:39 607

原创 解决: 前端传值true或false后端一直为false

背景:遇到个坑, 前端传 isTop:true, 后端永远为fasle (后端用的是 private boolean isTop;)原因: 1. 后端必须使用Boolean类型 ,isTop才能正确响应; 2.修改private boolean top; 因为is会序列化掉,所以找不到isTop建议: 前后端交互字段,最好别用is***字段,或者使用int类型1.0当true/false .很多细节的坑 ...

2020-11-13 14:36:58 3010 2

原创 mac配置java环境,解决错误zsh: command not found

1)输入命令:cd ~ 即可进入/Users/**目录;【其中**表示MacOs用户的账号】2)创建.bash_profile文件: touch .bash_profile;【注:/Users/**下若有.bash_profile文件即可跳过此步骤,直接进行第3)步】3)输入命令:open .bash_profile 打开open .bash_profile文件4)在open .bash_profile文件中添加【你所需要配置的环境变量】如:JAVA_HOME=/Library/J...

2020-11-09 19:46:16 4189 3

原创 springcloud alibaba组件nacos学习笔记

注册中心:eureka、consul、nacos、zookeeper、etcdconsul、eureka、nacos对比配置中心eureka 不支持 consul 支持 但用起来偏麻烦,不太符合springBoot框架的命名风格,支持动态刷新 nacos 支持 用起来简单,符合springBoot的命名风格,支持动态刷新注册中心eureka 应用内/外:直接集成到应用中,依赖于应用自身完成服务的注册与发现, ACP原则:遵循AP(可用性+分离容忍)原则,有较强的...

2020-11-09 11:28:07 260

原创 mac下安装使用nacos

nacos:1.下载地址: https://github.com/alibaba/nacos/releases2.下载(目前版本到变化挺快,我这边使用的是1.1.4版本)3.看下载完后的地址,复制bin的位置. 然后mac下执行两个命令cd /Users/didi/Downloads/nacos/binsh startup.sh -m standalone4.输入nacos登陆地址:http://127.0.0.1:8848/nacos/#/login5.默认账号:...

2020-11-07 09:30:30 732

原创 gateway报错Parameter 0 of method websocketRoutingFilter in org.springframework.cloud.gateway.config

***************************APPLICATION FAILED TO START*************************** Description: Parameter 0 of method websocketRoutingFilter in org.springframework.cloud.gateway.config.GatewayAutoConfiguration required a bean of type 'org.springframe.

2020-11-05 14:26:34 2251

原创 2021年备战面试---多线程,并发 ,volatile,threadlocal面试知识汇总04

文章汇总:史上最全 Java 多线程面试题及答案https://mp.weixin.qq.com/s/0zUhecsvouf4D4k_nWlfdQ 深度解读 java 线程池设计思想及源码实现https://mp.weixin.qq.com/s/Tkvyaxptp0faYU1PvTFE6g1.多线程有什么用? (1)发挥多核cpu优势 (2)防止阻塞 (3)便于建模,...

2020-10-09 11:45:02 119

原创 2021===redis。本地缓存设计 05

1.redis为什么是单线程?为什么那么快? Redis为单进程单线程模式,采用队列模式将并发访问变为串行访问。第一:多线程一定比单线程效率高,这个错误的。要知道cpu,内存,硬盘的速度也是有关系。redis的核心就是我的数据存在内存中,单线程操作效率高。第二:因为多线程需要上下文切换,切换是需要时间。所以redis用单个cpu绑定一块内存的数据,针对这块内存数据读写时候,都在一个cp...

2020-10-09 11:09:12 143

原创 spring-cloud-netflix-eureka-client整合springboot启动报错

java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Object;)V如果在搭建springboot项目的时候遇到过这样的问题,那么这个问题就是版本兼容问题。还有一种情况就是关于绑定的问题。提示binder failed,问题大概类似。这个问题也困扰了我很久。上周五搭建报表项目的时候也突然又遇到这个问题了,所以周六日回去研究了一番,也参考了一些博客关.

2020-09-29 20:55:12 2138

原创 2021年备战面试---nginx,dubbo,zk,分布式事务pc,tcc ,相关知识总结10

一:Nginx总结1.正反向代理: 图解: 在正向代理中,Proxy 和 Client 同属于一个 LAN(图中方框内),隐藏了客户端信息。用途:访问原有无法访问的资源,google;对客户端访问授权上网进行认证;代理可以记录用户访问记录,对外隐藏用户信息。(请求同一个目标服务器) 在反向代理中,Proxy 和 Server 同属于一个 LAN(图中方框内),隐藏了服务...

2020-09-07 10:17:58 154

原创 2021年备战面试---集合面试知识汇总02

一.map1.map中什么桶中个数超过8才转红黑树? (1)时间和空间的权衡。TreeNodes占用空间是普通Nodes的两倍,一开始所以时普通的bucket,等到达8的时候换为红黑树结构,还有就是红黑树的平均查找长度是log(n),如果长度为8,平均查找长度为log(8)=3,链表的平均查找长度为n/2,当长度为8时,平均查找长度为8/2=4,这才有转换成树的必要;链表长度如果...

2020-09-06 23:18:57 80

原创 redis的哨兵模式。宕机后,Redis如何实现快速恢复?

作者:Kaitokaito-kidd.com/2020/07/02/redis-sentinel/这篇文章,我们来看Redis是如何实现故障自动恢复的,它的实现正是要基于之前所讲的数据持久化和数据多副本而做的。Redis作为非常火热的内存数据库,其除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis也提供了完善的故障恢复机制:哨兵。下面就来具体来看看Redis的故障恢复是如何做的,以及其中的原理。部署模式Redis在部署时,可以采用多种方式

2020-09-06 23:14:47 1106

原创 zk和eureka区别,该怎么选择

简介Eureka本身是Netflix开源的一款提供服务注册和发现的产品,并且提供了相应的Java封装。在它的实现中,节点之间相互平等,部分注册中心的节点挂掉也不会对集群造成影响,即使集群只剩一个节点存活,也可以正常提供发现服务。哪怕是所有的服务注册节点都挂了,Eureka Clients(客户端)上也会缓存服务调用的信息。这就保证了我们微服务之间的互相调用足够健壮。Zookeeper主要为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。曾经是Hadoop项目中的一个子项目,用来控制集群中

2020-09-06 23:04:55 733

原创 zookpeer面试汇总(转自大佬)

转自大佬:https://mp.weixin.qq.com/s/P0CoPvxET2ZdgRp4Vrgk4Q前言一线大厂ZooKeeper的十二连问,你顶得了嘛?本文已经收录到github❝https://github.com/whx123/JavaHome❞1. 面试官:工作中使用过Zookeeper嘛?你知道它是什么,有什么用途呢?「小菜鸡的我:」 有使用过的,使用ZooKeeper作为「dubbo的注册中心」,使用ZooKeeper实现「分布式锁」。 Zoo

2020-09-06 23:00:38 338

原创 2021面试java的内存模型happen-before,cap总结 14

1.内存模型:https://mp.weixin.qq.com/s/78eoufVBzsHX5b9cCHP69A

2020-09-03 20:22:51 67

原创 经常被问道的cap是什么

在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。一、CAP的定义Consistency (一致性):“all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时

2020-09-03 20:21:46 587

原创 2021年备战面试---jvm,类加载,tomcat,docker 面试知识汇总07

一。tomcat调优1.常见的参数配置:Tomcat根目录下的conf目录,修改server.xml文件的内容二。jvm1.常用的性能监控与问题定位工具有哪些:top命令看系统负载情况2.引用: 强引用:类似于 Object obj = new Object();只要强引用在就不回收。 软引用:SoftReference 类实现软引用。在...

2020-09-03 10:53:39 100

空空如也

空空如也

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

TA关注的人

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