自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 长连接和短链接的区别

长连接意味着进行一次数据传输后,不关闭连接,长期保持连通状态。如果两个应用程序之间有新的数据需要传输,则直接复用这个连接,无需再建立一个新的连接。它的优势是在多次通信中可以省去连接建立和关闭连接的开销,并且从总体上来看,进行多次数据传输的总耗时更少。缺点是需要花费额外的精力来保持这个连接一直是可用的,因为网络抖动、服务器故障等都会导致这个连接不可用,甚至是由于防火墙的原因。所以,一般我们会通过下面这几种方式来做“保活”工作,确保连接在被使用的时候是可用状态:1.利用 TCP 自身的保活(Keepaliv

2022-01-12 18:01:12 490

原创 java 泛型的使用方式

泛型概述:泛型的本质是参数化类型,也就是说变量的类型是一个参数,在使用时再指定为具体类型泛型是在编译时被确定常见通配符:?:表示不确定的 java 类型,即可以存N种类型;即使初始化的时候指定了类型也可以存任意类型T (type): 表示具体的一个java类型E (element) :代表Element,与 T 意义基本无差K V (key value): 分别代表java键值中的Key Value可以根据使用泛型的位置分为:泛型类,泛型接口,

2021-12-13 09:39:59 580

原创 JSON_CONTAINS

一、JSON_CONTAINS百度到的定义和实例============================================================================解读:参数主要有三个值,分别是json对象、值、json的具体key值(可缺省)人话:前面包含后面为真则返回1(前面包含后面!!前面包含后面!!前面包含后面!!)吐槽:有篇帖子写了是判断是否包含某个json值,让我绕了很久的圈无法理解实际使用时的返回写法:1.select * from A whe

2021-11-18 11:57:38 20460

原创 java 经纬度的距离计算工具包

项目需求计算个人距离门店的公里数。看网上一个是通过第三方依赖,一个是拿经纬度自己算。在此留存一下工具包public class LocationUtils { /** * 赤道半径 */ private static double EARTH_RADIUS = 6378.137; private static double rad(double d) { return d * Math.PI / 180.0; } /**

2021-11-17 17:03:58 1116

原创 volatile 关键字,你真的理解吗?

最近,在一篇文章中了解到了 volatile 关键字,在强烈的求知欲趋使下,我查阅了一些相关资料进行了学习,并将学习笔记记录如下,希望能给小伙伴们带来一些帮助。如果文章内容存在一些错误,也请小伙伴们指正,感谢。这里先给大家分享一个我在 B 站发现的讲解 volitle 关键字的视频,有兴趣的同学可以认真看一下,挺不错的,我就是通过它进行的学习。视频地址:https://www.bilibili.com/video/BV1BJ411j7qb?from=search&seid=72128691601

2021-10-29 18:19:18 137

转载 java 多线程的分布式锁

分布式锁:为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。多个线程或者请求去操作对同一个资源进行操作,为了保证资源的数据正确,通过分布式锁来实现。实现:通过redis + ThreadLocl + LUA脚本来实现。流程图里面的参数可以根据自己的需求进行调整。...

2021-09-24 14:28:31 426 1

原创 JAVA8: stream中Collections.toMap()

查看源码会发现toMap()有三个方法:图方便我标记为①②③参数分别是2个,3个,4个。第一个方法示例:将一个list对象 处理成一个 map<Integer, String>Map<Integer, String> map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName));一般情况下是没有问题的,但是当list中存在重复对象时,就有问题了,以下为①源码:publi

2021-09-15 18:27:41 2330 1

转载 http请求中get与post

前几天工作中,所有表单我都采用post方法,头儿说那样不好,大型网站上一般都采用get方法,不理解。在网上摘到一段比较有用的话减低服务器流量压力根据 HTTP 规范,GET 用于信息获取,而且应该是 安全的和 幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更

2021-09-14 14:50:12 1203

原创 IDEA启动项目:bean注册重复,缓存清理

前提:项目要求拆分项目,但不是拆分服务进行 new Module,只是根据服务对象放到不同的文件夹下,原先接口统一不动(只增不减,后期慢慢删减,避免大范围变动影响过多)。其中一个项目直接复制粘贴,启动报错:org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.xxxx.drp.member.MemberApplication]; nested ex

2021-09-06 15:59:02 1598

原创 concat()和append()的比较

方法解释:concat()方法:String类的concat()方法(只能用于拼接字符串,不能拼接其他类型的数据)将指定的字符串拼接到该字符串的末尾。并且字符串本身和拼接的字符串都不能为null,否则运行程序后会报空指针异常NullPointerException(编译时没有报错)。“+”:可以对字符,数字,字符串等数据类型的拼接;append()方法:需要StringBuffer类型对象,可以对Object(字符,数字,字符串等数据类型)的拼接,结果返回一个StringBuffer类型的对象。比较

2021-09-03 15:14:12 2970 1

原创 JVM垃圾收集算法(1)

JVM垃圾收集算法概述判断对象存活引用计数算法?可达性分析算法引用关系死亡标记回收方法区垃圾收集算法分代收集理论标记-清除算法标记-复制算法标记-整理算法概述垃圾收集需要完成三件事:哪些内存需要回收?什么时候回收?如何回收?判断对象存活引用计数算法?在对象中添加一个引用计数器,每当有一个地方引用,计数器加一;当引用失效时,计数器减一;任何时刻计数器为零的对象就是不可能再被使用。缺点:单纯的引用计数很难解决对象之间相互循坏引用的问题,必须配合大量额外处理才能保证正确的工作。可达性分析算

2021-09-01 15:03:18 74

原创 redis监控命令及退出

大多数情况下使用redis是为了缓存消息,有的时候开发阶段进行调试或者定位问题,想知道redis进行了哪些操作,必要情况下使用monitor命令排查问题,quit退出监控(要注意不要长时间使用监控)。如上图所示:输入monitor可以开启redis的监控。观察系统输出:可以看出什么时间,redis做出了什么操作。不过开启监控后,比较消耗性能,不建议长时间使用,使用完成后,使用图一中 命令:QUIT 进行退出即可。weixin:java学习库...

2021-07-06 10:33:50 1082 1

原创 记多线程导致的一次事故

出于工作操守,代码就不贴出来,但是详细的过程可以进行分享。需求,它来了项目需求中进行一个促销活动的配置,大体就是进行人物画像,然后将符合画像的人群圈取出来后,定时进行短信发送投放,达到活动预热的效果。其中最主要的涉及到三个表(一个主表,两个附表)。代码,它来了实现过程:配置方法容易实现,本地库自己编写数据,稍微复杂的点在于需要调用ES查询圈取人数,和大批量的短信投放。短信是定时任务实现,可以搞定;那么剩下的就是需求中需要统计出圈取人数,这个时间估计要2、3秒,可能更多。为了避免交互上的不友好,自然

2021-06-09 12:10:10 89

原创 多线程的实现以及线程池

实现多线程的三种方式:第一种方式:继承Thread类型创建一个继承Thread类的子类;重写Thread类中的run(),将此线程要执行的操作声明在run();创建Thread的子类的对象;调用此对象的start():①启动线程,②调用当前线程的run()方法。第二种方式:实现Runnable接口创建一个实现Runnable接口的类实现Runnable接口中的抽象方法:run():将创建的线程要执行的操作声明在此方法中创建Runnable接口实现类的对象将此对象作为参数传递到Thr

2021-03-17 17:32:43 316

原创 谈谈 分库 分表 怎么用

重中之重,什么是分库分表?什么情况下用到分库分表?其次为分库分表的方式?怎么用?分库分表目录分库分表的方式一、数据分表:1、垂直分表:2、水平分表二、数据分库:1、垂直分库2、水平分库三、注意点1、分库分表带来的问题及考虑1.1 分布式事务1.2 最终一致性1.3 全局表1.4 字段冗余1.5 全局主键问题1.6 雪花算法demo什么是?顾名思义,将一个库的数据分散到多个库中,把一个表的数据分到多个表中存储。什么情况下用到?当一个库被创建后,随着时间和业务量的增加,或者业务流量本来就很多的情况下,

2021-03-02 17:36:56 206

原创 java:阿里云号码隐私服务使用

阿里云号码隐私服务使用产品最近的需求是,客户通过短链接点过预约之后,门店店员收到意向后联系客户进行引导,同时要对双方的号码进行隐私保护(前提:入驻阿里云,获取阿里云访问密钥,开通号码隐私保护服务)官方地址:https://help.aliyun.com/product/59433.html?spm=a2c4g.11186623.6.540.342b38980LMYaw产品概念:号码隐私保护(Phone Number Protection)是一款基于基础运营商通信网络能力的互联网产品,可以帮忙使用本

2021-02-20 09:46:08 2603 1

原创 Elasticsearch API的使用

参考文献:Elasticsearch API的使用搜索管理:含java操作ElasticSearch 中boolQueryBuilder的使用elasticsearch基本操作之–使用QueryBuilders进行查询es中queryBuilders api详细-elasticsearch 中QueryBuilders的用法Elasticsearch的查询说明Maven配置 org.elasticsearch.client elasticsearch-rest-high-l

2021-02-20 09:40:21 1164

原创 三级联动展示省市区或标签-后端

前端要求三级联动组件返回格式如下[ { value: 'zhejiang', label: 'Zhejiang', children: [ { value: 'hangzhou', label: 'Hangzhou', children: [ { value: 'xihu', label: 'West Lake', },

2020-11-30 16:07:15 594

原创 java类库的简单算法

java集合框架提供了一些有用的算法。在下面的总结中,你将会了解如何使用这些算法,以及如何编写适用于集合框架的你自己的算法1、排序与混排排序:Collections类中的sort方法可以对实现了List接口的集合进行排序。sort方法假定列表实现了Comparable接口。如果想采用其他方式对列表排序,可以使用List接口的sort方法并传入一个Comparator对象。如下按工资对一个员工列表排序;//以某值进行升序staff.sort(Comparator. comparing(Employe

2020-11-25 09:54:32 219

转载 使用CSDN-markdown编辑器

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-11-04 19:33:54 65

空空如也

空空如也

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

TA关注的人

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