- 博客(48)
- 收藏
- 关注
原创 Apache Tomcat 漏洞CVE-2024-50379条件竞争文件上传漏洞 servlet readonly spring boot 修复方式
1,关于漏洞Apache Tomcat是一个流行的开源 Web 服务器和 Java Servlet 容器。
2024-12-20 14:54:58
1014
1
原创 又是一年年终,写篇技术文章,关于redis + 令牌桶实现限流
原理其实大家都能想明白,我们可以理解为 这样一个场景我们在做煎饼,一个桶里放面粉,一个人拿着袋子往里面倒面粉,当一个顾客来了,做煎饼得厨师夫用碗取出一碗面粉,一个人往桶里放一碗面粉,当用顾客多了厨师来去面粉时候 ,要看下桶里得面粉是否足量,不足就会等一下,足够继续取面,方面得方面。感觉不错,在今年大环境不好(持续裁员)、情况下提升自己得实力,沉淀自己还是迫在眉睫!2, 关于服务限流,目前市面上很多限流组件 ,如sentinel ....等,大家还记得使用redis + lua 脚本 利用 令牌桶原理。
2024-12-19 15:05:14
214
原创 java 高级面试系列 (三)----JUC (java 并发编程)
小菜: 这是在问我 java 底层,java 不能创建线程,打开源码 new thread() 点击去,java 调用了 priate natice void start0();代码中, CPU 密集型:Runtime.getRuntime().availableProcessors(), 获取代码中核数, IO密集型,就是判断程序中,十分耗费IO的线程数,可以 设置为他的2倍!创建固定大小的数量的线程池。:线程等待被唤醒,但有一个超时时间,如使用sleep方法指定的时间到了后,线程会自动醒来。
2024-08-04 20:22:04
982
原创 Java高级面试题(二)-- JVM
从划分区分,新生区(伊甸园区(幸福区1 幸福区2)),老年区, 永生区(元空间,jdk1.8)永久代就是 JVM 的方法区。垃圾回收, 分为 minor GC ,轻量级回收,当eden 区满时候,出发一次,即申请一个对象是发现eden区不够,触发一次轻gc;如果Java,虚拟机栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的虚拟机栈,那Java虚拟机将会抛出一个OutofMemloryError 异常。速度快,没有内存碎片,需要消耗内存空间;
2024-08-04 12:07:02
753
原创 java 高级面试题汇总 (一)
而懒汉模式则更适合对性能有较高要求的场景,因为它延迟了对象的初始化,减少了资源的占用,但需要额外的同步措施来保证线程安全。1,简单介绍下自己,包括熟悉的技术栈,会哪些中间件,讲下最近项目架构情况,或者说遇到问题以及是怎么解决的?2,有点面试官会根据你的描述用到的技术提问,比如你聊到你的项目中遇到并发 访问,会用到netty ,小菜: 卧槽这咋能忘了,服务网关gategrory 用到了,(面试官想这是啥水平啊,这都不先说)面试官就会欠欠的打断你, 那我问下,netty 是什么 ,他的实现原理是什么?
2024-08-02 11:01:07
331
原创 2018.06.28 -------2024.0628 java 开发工作六年,今天离职了!!总结
CAS算法的基本思想是,先比较内存M中的值与寄存器A中的值(旧的预期值,expectValue)是否相等,如果相等,则将寄存器B中的值(新值,swapValue)写入内存;整个过程是原子的,不会被其他并发操作中断。感觉自己就是技术广度有,深度真不够,用小说中《天龙八部》的鸠摩智,的话,就是学会了72绝技,但是就是照葫芦画瓢,遇到真正的高手就露馅了。智慧大棚、冷链供应链、到城市供热、智慧客服、到餐饮系统等等,我都涉略过,不能说全部都是搬砖,有自己的个人的软件设计思想,但是并不是很多,大多数都是一些业务实现。
2024-07-05 09:29:59
276
原创 多线程模式下,restTemplate post 出现超时
使用httpclient , 因为他是非阻塞设置,所以不要加什么线程池,和 增加超时时间,都是治标不治本,直接用httpcliet 发送post 就完了,亲测!1, 多线程模式下,restTemplate post 出现超时?在查询资料后,发现restemplate是单线程,可能出现阻塞,.
2024-06-06 16:29:07
354
原创 java 面试问答———微服务篇(2024523此时微软谷歌亚马逊已经宣布去微化)
答案:微服务是一种分布式架构,分布式架构就是把服务拆分,在我们传统单体架构中,我们把所有服务都写在一起,随着业务的增加,我们的单体架构中服务也逐渐臃肿,后维护很不方便。微服务局势把模块拆分,把我们整个项目拆分许多独立的子项目,每个子项目独立开发、部署,子项目也是独立的功能,这些独立的子项目就形成了微服务。2,详细说说微服务的优缺点?答案: 优点: 1,不用服务使用不同技术,技术多样性;2,隔离性。一个服务不可用不会导致其他服务不可用;
2024-05-23 15:54:13
1137
原创 简述如何实现单词间逆序 ? 简述如何实现字符串循环左移 ? 简述如何Java实现字符串数组拼接为最小字符串 ?
/ 追加到后边,Hello WorldHello World,开始截就行。// 简述如何Java实现字符串数组拼接为最小字符串?// 简述如何实现字符串循环左移?// 简述如何实现单词间逆序?// 字符出向左移动n 位。
2024-05-23 11:15:42
226
原创 记一次springboot undertow + websocket 报错:but was actually of type ‘org.springframework.beans.factory
log.info("【websocket消息】有新的连接,总数为:" + webSockets.size());* 这个Bean会自动注册使用@ServerEndpoint注解声明的websocket endpoint。代码环境, java + springboot + undertow + websocket。* 解决spring中socketBean冲突,如果有冲突就加没有就不管。* @description: websocket服务。解决方案:加上配置类即可解决。
2024-04-25 19:03:58
897
原创 进制转换对应表(建议形成肌肉记忆)
三位二进制对应十进制数,建议肌肉记忆!(在进行换算的时候脱口而出!前两行和三位二进制一样就是前表多个占位0, 记住了三位二进制就记住了,如果还需要 2*n 阶层计算很浪费时间!四位二进制 对应十进制,
2024-02-19 15:08:02
869
原创 docker compose 构建1主二从三哨兵,遇到的问题:SENTINEL master-reboot-down-after-period mymaster 0
前置环境,liunx centos 7 , 安装docker , 安装docker compose ,docker pull redis(我用的redis 6.2.* 最新版的。总结下,大家在配置的时候一定要有自己的主观思考,别人写的不一定都对,或者和你的环境不同,版本不同都会有这样那样的问题,建议大家不要放弃,总会配对,问题总会解决的!然后一顿改,如下图:,修改了<master-name> 改成了自己的容器名,redis-master,大概意思就是不识别 这一样配置。
2024-02-01 17:16:18
692
原创 docker 入门,docker-compose 入门
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。注意他是一个开源得应用容器引擎,大家说docker容器,这不准确,应该回答是容器化技术,应用容器引擎。基于go 语言开发的。
2024-01-26 14:10:00
925
原创 redis 入门及相关知识汇总
什么是 Redis?1,相对于mysql ,oracle , 这种关系西数据库, 我们还有非关系数据库服务,他的产生是为了,解决常规数据库的并发能力,传统的关系型数据库受限于IO 和性能瓶颈, nosql 有着比较好的效率和性能,key-value 查询模式。那redis 是nosql 中的佼佼者, 他是一块内存高速缓存数据库,(读的速度是 110000次/s , 写的速度是 81000次/s ,) 底层使用万物之母c 语言编写,试问谁与争锋?
2024-01-23 09:43:15
1113
原创 rabbitMq 入门及面试大全
我举个例子,我们有个业务用到阿里的隐私号服务,隐私号电话接通挂断以后会生产电话记录录音文件等信息,阿里提供里回调地址和订阅两种方式,我们收到推送电话记录但是,其中有一个录音文件地址,收到后并未生成(其实这应该阿里的一个bug )但是我们接到推送了会做一系列业务操作和入库处理,由于没有第一时间收到录音文件,我们使用了mq 先通话记录的callid 和 地址放到mq 中10分钟,2,使用多个队列和分区: 可以将相同类型的消息发送到多个队列,并使用分区建 routingKey 决定消息要发送到那个队列,然后在。
2024-01-22 08:46:25
401
原创 我自己总结记忆的23种设计模式
1, 对23种设计模式,大家的第一个印象就是抽象繁琐,记不住!!不常用??其实设计模式是非常有用的,大家只要理解设计模式了,思想上就能有质的飞跃!但是,提到设计模式大家就开始头头疼,尤其是在面试的时候,就是说不全说不对, 很尴尬。我发明了个口诀 用来记忆:创建型模式:5种 (前段时间火的高启强的建工集团)建工集团抽签单独抽中了原型模式项目结构刑模式:7种 () 口诀就是(行为型模式:11 种承接上面的享元酒店的事,访问者,来访问酒店,到了产品,下达人,,要出来,并拿出整改、和 写入。
2024-01-15 08:30:42
661
原创 java 数据结构总结之 集合 collection
如果该桶为空,则可将对象直接插入相应的索引的通中,如果该桶已经被沾满,则需要将该对象与该桶中的所有对象进行比较,看看是否已经参组该对象,如果全部比较后钧不存在,则将其添加到该桶中(这就是拉链法,解决hash冲突),对于哈希表的实现做了些改进,通过数组链表红黑树,实现,当某个桶经常发生哈希冲突时,该链表长度将会变得非常长,下次新的对象将必须一次比较该桶中的所有对象,当桶中对象数量超过8个时,jdk8 中会将该链表转换为红黑树。)但是更重要的是大学老师应该告诉怎么去理解记忆,为什么要理解记忆数据结构!
2024-01-13 13:45:54
1101
原创 Java开发五年后心得体会和对目前在校大学生的一些叮嘱
csdn 是我我从高中时候大概 12年左右,那时候国内互联网刚刚兴起不久,阿里的淘宝,支付宝,微信聊天,微信支付已经逐渐走向成熟,但是那个时候还没有 微服务架构,和厉害的高并发架构,双十一真的是双十一....... 我的高中同学向我分析一篇博主发的文章,文章的内容大概记不住,是关于互联网计算机的咨询,他说csdn 都是大家分享互联咨询的平台,那里有很多技术大牛只要找问题都会找到答案,这不是我给csdn 打广告是真实发生的事,于是我就好奇,打开csdn 网站..从此成为一个csdn 的用户直到现在。
2024-01-09 14:22:27
1626
3
原创 JAVA中文网首页/ java LinkedCaseSensitive映射转换问题与Spring更高版本的HashMaps、linkedHashmap
从春季4.3.6开始。发布时,LinkedCaseInsensitiveMap不再扩展LinkedHashMap和HashMap,而是只实现Map接口。本4.3.14中遇到了这个错误。在3.2.3中发布没有。时间紧张的人直接看这里!
2023-12-26 15:57:08
511
2
原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 关于 mybites 发生的异常!
注意 @MapperScan(basePackages = {"com.xxx.module.maintain.*",}) 此处要扫描包下mapper的所有不能使用一个※ ,使用后 单独注入 mapper 是好用的但是假象, 要注入他的上层serviece 就会报上边的错误!请检查你的 MyBatis 配置文件或映射文件,确保正确定义了你所使用的 SQL 语句。请确保你在调用 SQL 语句时使用了正确的语句 ID,语句 ID 应与映射文件中定义的 ID 保持一致。以上都不是,那么要看下我们的启动类了!
2023-12-11 17:22:42
558
原创 全网最全h5调用剪切板方法亲测可用
1, 最老版本 document.execCommand("copy");已经被淘汰了,而且测试还不好用!这其中 用了 三种方法 ,只有引用使用 ClipboardJS 引入外部库才可以,2,下边这种是要vue安装的,有环境限制,像我中原生党不行!
2023-11-30 15:01:51
2222
原创 在h5中调起微信打开指定链接 (不能实现,直接回怼)
其中,openWechatLink方法接受一个参数,即要打开的链接地址。在方法内部,先判断是否存在WeixinJSBridge对象,如果不存在则监听WeixinJSBridgeReady事件,等待微信JS桥接准备好后再调用openLink方法打开链接;如果存在则直接调用openLink方法打开链接。openLink方法内部使用WeixinJSBridge.invoke方法来调起微信打开链接。
2023-11-29 11:10:00
3995
6
原创 JAVA 基础回顾之集合 ArrayList和LinkedList 和 hashMap
ArrayList和LinkedList都是Java集合框架中的数据结构,用于存储和操作一组数据。ArrayList是基于数组实现的动态,它提供了动态增长和缩减数组大小的能力。由于ArrayList内部使用数组存储元素,因此可以通过快速访问和修改元素。然而,当需要在中间位置插入或删除元素时,ArrayList的性能会稍差,因为需要移动后续元素(移动索引重新排序)。LinkedList是基于实现的集合,每个元素都包含了的引用。这意味着在LinkedList中插入或删除。
2023-08-08 14:14:05
278
原创 局域网内linux 挂载windosw文件夹方法
选择共享得用户,可以是新建的可以是本来存在的,根据自己的业务需求创建的文件夹。首先window文件夹需要开放权限给用户。nginx 映射出去就可以外网访问了。
2023-06-08 10:47:07
137
原创 table固定首行首列css 最简单方法(亲测可用)
业务需要前端使用html 写了个table 如图: 需要滚动条上下左右滑动,但是固定首航首列关键代码:/* 首列固定 */left: 0;z-index: 1;/* 表头固定 */top: 0;z-index: 2;/* 表头首列强制最顶层 */z-index: 3;解析:关键属性 css :在 视口滚动到元素 top 距离小于 0px 之前,元素为相对定位。之后,元素将固定在与顶部距离 0px 的位置,直到视口回滚到阈值以下;同理。
2023-05-30 14:31:47
5639
4
原创 PDF 预览下载功能完美实现
2,vue-pdf 可以,但是他预览之后有多余的框框,我们设计说了不行,不好看,也不知道什么审美。前端就会接收到img 的流 他 在转 base64 就可以用 img 标签显示了。这里需要介绍我们项目的特殊性, 首先 我们是移动端h5 ,并且展示pdf 的方不能有多余的框框,pdf 从后端接口获取的是instream 输入流,想要在前端下载,需要写到输入流。vue 展示 pdf 不能用 img 标签 因为不支持, 使用。ImageIO jdk 8 的提供里这样的方法。可以,由于我们项目原因不允许使用。
2023-05-11 08:08:33
291
原创 MyCat2 自动化分库分表中间件; 如果启动mysql 报错 dockers 启动 mysql error /var/run/mysqld/mysqld.sock.lock (答案在下面)
数据分片]hash形式的分片算法。如果分片键是字符串,会将字符串hash转换为数值类型。分库键和分表键相同:分表下标:分片值%(分库数量*分表数量)分库下标:分表下表/分库数量分库键和分表键相同:分表下标:分片值%分表数量分库下标:分片值%分库数量。
2023-04-26 16:54:11
456
2
原创 ruoyi-cloud nacos 启动报错,连不上mysql, ,
注意此处的mysql 地址不能写localhost 必须写 自己虚机地址(桥接网络,有自己固定ip),localhost 不识别。nacos 启动报错,连不上mysql,nacos 启动报错,连不上mysql,nacos 启动报错,连不上mysql,nacos 启动报错,连不上mysql,本地虚拟机上 vmware 放了liunx 上放了docker ,部署微服务 ruoyi-cloud。naocs 配置文件。
2023-02-02 14:11:28
868
原创 记录一次mysql 8.2.0+ 版本过高导致navicte 12 连接不上问题解决
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的mysql密码';ALTER USER 'root'@'localhost' IDENTIFIED BY '你的mysql密码' PASSWORD EXPIRE NEVER;将上述加密规则都要改成mysql_native_password。
2023-01-31 14:01:09
544
原创 feign VS rabboin
他们都是实现服务之间调用的方式feign 的实现方式是社区版,类似java 的control 里面的实现方式 service + 注解 实现,即 在service中类中定义中增加@feignClient 方式在方法中增加@requsetMapping("/")注解,类似java的controller 写法,在消费者中的启动类中增加enableFeignClient , 在调用的congtroller 中@autowire 注入使用rabbion + restTemplate ...
2021-11-30 14:38:00
378
原创 Dubbo 是什么?
他是一个微服务框架, 阿里接手维护,目前是apache 下的一个开源框架,dubbo 的核心概念就是服务,一个服务代表一组rpc 方法的集合,服务面向用户编程,服务发现机制的基本单位。dubbo 的开发流程是,用户定义rpc 服务,通过约定配置方式将rpc 声明未Dubbo 服务,2. 开发这些服务的api,就是实现他们,3. 对服务提供者来说是提供rpc 服务的具体实现4,对消费者来说是使用约定好参数调用服务服务发现服务发现是指,消费...
2021-09-28 14:14:01
1047
原创 redis 入门
redis ,是一个关系型数据库,是一个开源的,内存数据库,因为他的数据操作是基于内存得所以他的效率非常高,他支持100000+ 的QPS.,因为他是用c语言写的,它包含多种数据类型,1,比较常见的string2, hashes 散列3,list 列表4. set 集合5 sorted sets 有序集合redis 是一个单线程的,能用单线程就用单线程,如果用多线程需要多个cpu 来回切换,这并不比单线程效率高redis 的核心是将所有数据放到内存中,对于内存系统来说,如...
2021-08-30 13:47:06
93
原创 java 编程技巧- 集合遍历 三种遍历方式
package com.syxl.business.config;import lombok.Data;import java.util.ArrayList;import java.util.Iterator;import java.util.List;@Datapublic class demo { private String leader; private String second; private String thrid; public .
2021-08-12 09:25:06
195
原创 springCloud ribbon 是什么
ribbon 是 netfilx 发布的开源项目,主要功能提供了负载均衡算法(轮询,加权轮询,随机,)ribbon 的客户端提供了一系列完整的配置: 连接超时,重试,等,就是栽培欸之文件中列出Loadbalanceer (Lb 负载均衡) 后面的所有的机器,ribbon 会自动的帮助你基于算法,连接这些机器,LB 负载均衡简单来说就是,将用户的请求分发的各个机器上,从而达到HA (高可用)、常见的负载均衡软件有ngxin , lvs(国人开发的,现已集成到linux 源码中,他的工作原理(是,.
2021-08-10 09:00:05
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人