自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IO中BIO,NIO,AIO的区别

常见的 IO 模型有哪些?Java 中的 BIO、NIO、AIO 有啥区别I/O既输入/输出为了保证操作系统的稳定性和安全性,一个进程的地址空间划分为 用户空间(User space) 和 内核空间(Kernel space )像我们平常运行的应用程序都是运行在用户空间,只有内核空间才能进行系统态级别的资源有关的操作,比如如文件管理、进程通信、内存管理等等。也就是说,我们想要进行 IO 操作,一定是要依赖内核空间的能力。从应用程序的视角来看的话,我们的应用程序对操作系统的内核发起 IO 调用(系统调

2021-03-16 10:14:02 384

原创 摩尔投票算法

1.摩尔投票算法(获取数组中多余一半的数)从数组第一个开始循环数组,用array{}作为暂存集合,end{}为结果集合例:{1,2,1,3,1,1,2,1,5},输出结果应该为1 从第一个数字1开始,我们想要把它和一个不是1的数字一起从数组里抵消掉,但是目前我们只扫描了一个1,所以暂时无法抵消它,把它加入到array,array变成了{1},result由于没有抵消任何元素所以还是原数组{1,2,1,3,1,1,2,1,5}。 然后继续扫描第二个数,是2,我们可以把它和一个不是2的数字抵消掉了,因为

2021-02-20 10:34:32 137 1

原创 记录:mysql的日常获取

正常where IN 字符串的时候会有问题但是我们经常会有一个字段中存了好几个甚至一堆的值 ,例如 字段IDes(字符串类型)里面存了100,200,300,400此时 FIND_IN_SET 就能解决我们这个棘手的问题了用法如下SELECT A.Name FROM `t_personal` A WHERE FIND_IN_SET( A.ID , '1,2,3,4,5') SELECT * FROM test_0 where find_in_set('女',t_sex);查询t_perso

2021-01-12 15:20:08 137

原创 java中使用(mq)消息队列

为什么使用消息队列1.解耦 一个系统或一个模块,调用多个系统或模块,耦合性高,不易维护,中间部署mq,当系统需要调取其他的系统或模块时,从mq中消费消息。(谁需要,谁调用)2.异步 一个系统或模块调取多个系统或模块,运行时间是所有运行时间总和。在调取的中间使用mq,当发起调取时,发送消息进去mq,mq获取返回多个系统和模块的响应,时间减少很多。3.削峰 在系统使用高峰期时,每秒并发请求5k+,系统直接访问mysql,最多每秒处理2k,高峰期会造成系统崩溃。在中间使用mq,没有的并发请求打到mq中,mq

2020-12-15 17:16:56 5112

原创 如何实现限流(java)

自我理解服务降级的一种,限制系统输入和输出,达到保护系统的作用。方法【1.计数器(控制单位时间的请求数量,缺点两个单位时间内没有监控,处于监控漏洞)2.滑动窗口(把单位时间等分成若干份,计数器的改进)3.Leaky Bucket 漏桶(通过控制输出速度达到限流的目的)4.Token Bucket 令牌桶(固定容积的容器,以固定速度填充token,每次访问移除token,没有token访问失败)5,spring cloud gateway 默认使用 redis 进行限流,6.sentinel通过配置来控制每

2020-12-15 14:57:44 2151

原创 简单的WebSocket传输协议

前端:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>springboot项目WebSocket测试demo</title></head><body><h3>springboot项目websocket测试demo</h3><h4>测试说明</h4>

2020-11-26 14:30:24 278 2

原创 BigDecimal的运算及常用知识

/**多个BigDecimal数相加和@param i@param arg@return*/public static BigDecimal getBigDecimalSum(BigDecimal i, BigDecimal… arg) {BigDecimal sum = i;for (BigDecimal b : arg) {sum = sum.add(b);}return sum;}/**差@param i@param arg@return*/public

2020-11-25 09:39:12 965 1

原创 group_concat()与distinct共同使用

SELECTcid,GROUP_CONCAT( DISTINCT sname )FROMstudentGROUP BYcid;** ------------可用**SELECTcid,GROUP_CONCAT( distinct sname )FROMstudentGROUP BYcid; --------- 不可用– DISTINCT 将名字去重– SEPARATOR 每个名字间有使用"–"连接...

2020-11-13 14:19:39 1520 1

原创 HTML生成PDF模板(Java iText+FreeMarker生成PDF(HTML转PDF))

Java iText+FreeMarker生成PDF(HTML转PDF)1.背景在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等。方便用户查看,下载,打印。目前常用的解决方案是,把相关数据信息,生成对应的pdf文件返回给用户。本文源码:http://git.oschina.net/lujianing/java_pdf_demo2.iTextiText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iTe

2020-11-12 20:12:48 1391

原创 浅克隆的图解和深克隆图解对比

**java浅克隆和深克隆**浅度克隆JDK提供的克隆是浅度克隆,它只将对象中的基础数据类型的成员变量克隆到新对象中,对象中的引用类型只是克隆了一个引用,克隆后的引用类型还是指向原对象修改克隆的对象的name和age参数,原user对象内的name和age参数不变,而修改克隆的对象内内的teacher对象的参数,原user对象参数也发生改变深度克隆深度克隆就是把整个对象完全克隆一份,包括对象中的引用类型,如图所示通过读写操作实现深度克隆【实体必须implements Ser...

2020-11-12 10:55:24 191

空空如也

空空如也

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

TA关注的人

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