java开发
文章平均质量分 75
叁滴水
人生就是一边拥有一边失去,一边选择一边放弃...
展开
-
【算法无用系列】电影推荐——余弦相似度计算用户相似度原理
话不多说,本文通过电影推荐系统中,基于余弦相似度算法计算出用户相似和电影相似原理。希望可以帮助一些代码不懂的同学一些思路。原创 2024-06-06 09:30:29 · 484 阅读 · 0 评论 -
【中间件系列】浅析redis是否适合做消息队列
用redis也是比较久了,并且也对其他消息中间件也用了相当多的时间,现在就redis是否适合做消息队列来梳理下,获取梳理完之后,可以有一个更加清晰的认知。笔者会从以下几个方面进行梳理。原创 2024-06-04 20:28:21 · 1240 阅读 · 0 评论 -
【开发经验】java list.sort的坑
Collections.sort()在排序算法上的更新固然能够带来排序性能上的提升,但这一次排序算法的升级对比较器Comparator增加了一些规则,并没有完全向前兼容,更由于增加的规则是隐性的,这就使得开发人员在无意之间制造了线上环境“万万想不到”的异常,甚至造成线上环境的崩溃,产生损失。在一定的程度上甚至可以说,这一升级是得不偿失的。简单看来,作为一个比较器来说,以上3个要求似乎合情合理,理所当然,但事实上,开发者很容易忽略一些特定的情况,因为以上3个要求对于排序来讲,并不是全部必要的。原创 2023-06-07 20:31:24 · 944 阅读 · 0 评论 -
【开发经验】为什么gateWay网关要用webFlux代替WebMvc
WebFlux原创 2022-12-11 21:49:01 · 1594 阅读 · 0 评论 -
【开发经验】gateway网关开发调试优先选择本地服务
在微服务开发时,本地要启动太多的服务,比如基本服务,注册中心、网关、鉴权等等。还要启动当前代码所在的服务。这样,本地环境会特别卡,影响开发效率。通过优先选择本地服务,使得本地仅启动自己的服务即可。原创 2022-11-03 21:45:00 · 2342 阅读 · 0 评论 -
【开发经验】通知气泡实现思路
在im即时通讯中、公告栏等功能中,有一个功能叫通知气泡,就是提示用户有多少消息未读,然后让用户点击之后,气泡消失。原创 2022-08-30 21:00:00 · 1585 阅读 · 0 评论 -
【开发经验】客户端互踢实现思路
踢用户实现思路、用户单个客户端登录。冻结用户实现原创 2022-08-29 20:00:00 · 1371 阅读 · 3 评论 -
【开发经验】如何快速接入第三方接口
快速定位接口对接出现的问题原创 2022-08-25 19:00:00 · 3314 阅读 · 0 评论 -
【初级扫盲】 一个HTTP请求究竟发生了什么?
提前声明,一个http请求到后端并且响应的过程,是一个非常复杂的过程,每一个点拿出来都可以扯一大堆知识,这里是为了帮助初级java开发梳理开发思路。其中会对于初级开发不重要的步骤进行简化。原创 2022-04-18 21:23:50 · 2490 阅读 · 0 评论 -
【扫盲篇】前端界面与Java怎么联系起来?
文章目录前言前端如何发送请求?如何理解服务?前言众所周知,java常用来做服务器开发。常有的功能如:登录操作,用来写账号密码验证逻辑。转账操作。等,一些私密性的操作。那么前端呢?前端主要是用来展示的,将后端的这些逻辑友好的展示给用户。如。登录的时候有正在登录的提示。网卡的时候展示loding的提示等等。久而久之,随着与用户交互的方式越来越多,出现了很多其它的端,如pc端(QQ)、安卓端(安卓上的QQ)、ios端、小程序等等,这些都是与用户交互的端,也都是用来展示的端。。原创 2022-04-18 21:20:26 · 7586 阅读 · 4 评论 -
【开发经验】fiddler实现请求转发
文章目录场景1:单个请求转发将百度页面的logo改为搜索的logo场景2:测试环境请求转发到本地场景3:同个域名下所有请求转到另外个域名下场景4:根据前缀规则转发 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单,因原创 2022-04-11 11:05:00 · 5323 阅读 · 0 评论 -
【开发经验】电商满减金额不准解决方案
问题:电商平台满2000减200优惠活动。用户从3个店铺选择了一些商品,进行购买。计算出实际扣款的金额总计为1821元。但是每个商铺的付款的金额小数位太多,一般都是2位小数。因此,按照常理来说四舍五入进行处理,最后发现总计少了1分。纠结许久,这1分去哪里了? 在此,不多卖关子,直接说明解决方案,实付金额小数太多,不.原创 2021-11-24 21:00:00 · 775 阅读 · 0 评论 -
【开发经验】java服务生产环境CPU使用过高解决思路
java服务生产环境CPU突然升高,日志查询无果时,可以通过使用jvm的调试工具定位问题。原创 2021-11-02 20:30:00 · 960 阅读 · 0 评论 -
理解了零拷贝原理,总结一下
零拷贝并不是没有拷贝,是指减少拷贝的次数。有两种方式mmap和sendfile。1. mmap 适合小数据量读写,sendFile 适合大文件传输。(这个并没有查到详细理论依据,如果您有线索,欢迎留言)2. mmap 需要 4 次上下文切换,3 次数据拷贝;sendFile 需要 3 次上下文切换,最少 2 次数据拷贝。3. sendFile 可以利用 DMA 方式,减少 CPU 拷贝,mmap 则不能(必须从内核拷贝到 Socket 缓冲区)。原创 2021-11-01 16:59:31 · 1122 阅读 · 0 评论 -
【开发经验】SpringBoot日志SLF4j+Logback日志模块化
如果你看到我这个文章,想必肯定是受到了生产环境查日志的折磨了吧。在生产环境中没有ELK这种日志查询工具时,通过日志的模块化,区分文件,可以更加快速的定位到日志信息。例如:订单日志,请求日志、响应日志、服务间互相调用日志等等。原创 2021-09-27 22:46:57 · 1065 阅读 · 0 评论 -
【开发经验】日志框架分类和选择
在很多开发者都会有一个习惯,在程序的重要步骤打印关键的信息。通过这种方式可以在看出程序的执行状态,在程序遇到问题时,可以进行快速定位。在没有日志框架出现之前,开发者是通过`System.out`等方式进行日志信息的打印。这种方式有一些很明显的弊端:原创 2021-09-27 22:29:13 · 518 阅读 · 0 评论 -
如何防止暴力破解?
在之前的[文章中讨论了暴力破解带来的危害,这里探讨下如何有效的防止暴力破解。当然防止的方式有很多,作为一个java开发,暂且只探讨下如何在java层面友好的防止暴力破解。原创 2021-09-08 22:29:58 · 4319 阅读 · 0 评论 -
FinderWeb——一款很轻量级的日志查询工具
开源的实时日志查询工具ELK十分常见,在微服务的场景中可以很轻易的搜索到日志信息,但是在众多小型公司,两三个服务的时候,使用ELK却有一点重量级。但是直接通过Linux命令查询又有那么一点的笨拙。而且,生产环境Linux的权限,又不能开放给每一个开发者。这个时候,FinderWeb是一个很不错的选择。比纯属的Linux命令好用,又可以让每一个开发者查看自己的日志信息。原创 2021-09-08 22:00:42 · 1747 阅读 · 0 评论 -
登录的漏洞,50%以上的代码都有这种问题!
笔者开发多年,开发很多项目,登录是一个很常见的一个功能。也是一个很简单的、核心功能。但是就是这么一个简单的、核心的功能,却又很多人忽略了一个重要的点。那就是**验证码暴力破解**。原创 2021-08-25 23:25:14 · 674 阅读 · 0 评论 -
如何安全的保存密码?
鉴于社工库层出不穷,多种多样收集用户信息的方式。前几日,我还发现,我之前用过的QQ密码,竟然明文存在一个信息查询系统中。为此感到很是震惊。闲来无事,思考一个问题,作为开发人员,如何安全的保存用户的密码呢? 带着问题,探讨下密码如何更加安全的保存,此,为笔者目前经验而已,菜鸟一个,有更好的想法,希望可以分享给我。原创 2021-08-25 22:53:57 · 2964 阅读 · 8 评论 -
【数据结构与算法】通过栈实现后退功能
背景 各种编辑器都有后退功能,word、excel、ps等等。还有ProcessOn等很多在线工具,也有后退功能。通过栈先进后出这一特性,可以更好的实现这个后退功能。此,通过栈实现浏览器后退功能。后退功能思路图利用栈先进后出的特性,创建一个栈,将浏览记录压栈,点击后退按钮弹栈。 网上有很多自己实现栈的例子,在这里原创 2021-08-09 17:01:52 · 532 阅读 · 2 评论 -
探讨下app的包为什么抓不到
在开发的过程中,http协议是主流的交互协议,抓包是必不可少的调试方式,如果你想抓取pc端或者app的http协议包, 提示网络异常或者 死活不走代理,那么你来对了。接下来,我们来探讨下,同样都是http请求,app的包,为什么抓不到。原创 2021-07-24 16:07:47 · 7070 阅读 · 10 评论 -
【开发经验】mysql自动数据库文档
mysql自动数据库文档推荐一个自动生成mysql数据库文档的工程工程地址gitee地址文档样式软件架构springboot + mybatis安装教程修改application.properties里面数据库连接配置,配置生成的文件地址,数据库名访问: localhost:8888/test/demo数据库文档生成...原创 2021-07-22 15:54:08 · 441 阅读 · 0 评论 -
【开发经验】服务器单向推送——SSE
目前广州疫情,每次出行都需要出示健康码,有的小伙伴比较机智,为了更加快速的通行,对于健康码进行截图,这样就可以很快的打开健康码。但是这样也违背了地铁查看健康码的初衷,很可能存在有的人黄码,然后找朋友的绿码出行。为了防止这一情况。检查人员需要看到健康码的时间是变化的,才放行。联网变化,断网暂定,这个功能如何实现呢?原创 2021-07-13 09:57:42 · 1615 阅读 · 3 评论 -
fiddler前缀转发
regex:(?inx)^http://www.baidu.com/aaa(?.+)$*redir:http://127.0.0.1/aaa${name}fiddler前缀转发原创 2021-06-20 18:05:22 · 490 阅读 · 0 评论 -
【开发经验】mybatis-plus雪花算法自动生成机器id原理
mybatis-plus自3.3.0开始,默认使用雪花算法+UUID(不含中划线),但是它并没有强制让开发者配置机器号。这一点很是疑惑,这样可能会让不了解雪花算法的人埋下了一个坑。是这么强大的一个框架难道真的没有做优化吗?原创 2021-06-04 11:15:28 · 8997 阅读 · 10 评论 -
【开发经验】随机数类random使用详解
文章目录构造方法说明常用方法说明常用场景构造方法说明Random( ) 构造一个随机数生成器Random(long seed) 用种子seed构造一个随机数生成器。无参构造最后也是调用的有参构造,传入的种子是一个随机性较强的参数。种子作用:如果多个Random对象传入同一个种子,则出来的随机数是一样的。(在任何机器上运行都一样)代码示例:public class RandomTest{ public static void main(String[] args) {原创 2021-05-31 12:44:34 · 4024 阅读 · 16 评论 -
【开发经验】redis实现共同好友功能
微信朋友圈的点赞、评论,只能看到自己好友的信息。这就涉及到了一个共同好友的概念,通过redis的set集合可以很轻松的实现此功能。原创 2021-05-26 11:13:22 · 6354 阅读 · 22 评论 -
推荐!深入了解事务,这一篇肯定够了!
为什么需要事务?事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。原创 2021-05-21 18:12:32 · 4949 阅读 · 12 评论 -
520了,教你如何制作自己的表白网站(附模板源码)
一、寻找一个自己喜欢的网站模板模板1效果演示地址:https://xuyuanzhi051.github.io/My520/git地址:https://github.com/xuyuanzhi051/My520模板2源码地址模板3源码地址模板4源码地址模板5[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CfwDhfc4-1621308409833)(E:\webapps\github\LoveSourceCode-master\表白网页款式十一源原创 2021-05-18 15:42:46 · 20776 阅读 · 38 评论 -
【开发经验】springboot配置文件加密详解
一般情况下,为了方便切换环境,我们会将关于环境的信息存放在配置文件中,例如mysql的账号密码,redis的账号密码,支付宝、微信的密钥等等。 这些信息是极为敏感的信息,一旦泄露,会造成很大的损失。因此,一般开发者会将配置文件中进一步加密,避免这些敏感信息让不法分子直接获取。原创 2021-05-07 12:21:45 · 6562 阅读 · 12 评论 -
【开发经验】md自动上传图片
typora是一个特别好用的笔记记录工具,但是这个软件在的图片无法自动备份,需要借助其他途径进行备份,笔者使用`typora+gitee+PicGo`进行图片备份,效果不错推荐大家使用。原创 2021-04-23 22:21:02 · 4236 阅读 · 1 评论 -
【开发经验】java socket编程详解
前言 在大多数的java项目中,使用开发者直接使用socket的场景并不多。但是目前众多框架的底层中,都会有socket的身影。此示例一下java原始的socket编程,并通过telnet进行通讯。1、功能实现如上图所示,主要实现服务器开启服务,每个客户端链接时都分配一个新的线程与其通讯。2、服务端代码:import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.u原创 2021-04-15 22:39:04 · 9511 阅读 · 0 评论 -
【设计模式】一文学透代理模式
文章目录1、前言1.1、定义1.2 代理模式的实现1.3 代理模式的应场景1. 4 代理模式的分类:2、静态代理1.)首先新建一个买车的接口2.)声明一个要买车的客户,实现买车接口3.)声明一个买车代理汽车4S店,同样也实现买车接口,必须接受客户下单4.) 创建一个客户端,模拟一次买车5.)通过代理模式实现权限控制3、动态代理机制:3.1 JDK代理——接口级别代理3.2 CGLib代理——方法级别代理代理模式的好处:总结1、前言Spring 的AOP 面向切面编程,是通过动态代理实现的, 由两部转载 2021-04-03 15:50:39 · 3801 阅读 · 0 评论 -
【shardingjdbc】springboot配置说明
Sharding-JDBC是以jar的形式提供服务,无需单独部署,可理解为增强版的 JDBC驱动,完全兼容JDBC和各种ORM框架。此完成一个最原始,最简单的案例,请大家参考。原创 2021-03-08 21:56:59 · 4611 阅读 · 0 评论 -
【开发经验】排队预约系统开发思路
前不久陪朋友参加了一场教师面试,进入面试现场时,每个人都要扫描二维码进行排队。当时扫码的人挺多的,不一会,服务器就卡主了,一堆人就开始焦急起来,因为提交报名的马上就要截止。好在过了几分钟,又可以进行排队了。等这件事平息之后,就在思考了一下,其实这次的报名的并发不是很高,并发量在100内,但是偏偏这么点并发就可以使得服务器卡主,这个教师报名排队系统的开发可能需要思考下了。原创 2021-03-04 21:29:24 · 6417 阅读 · 3 评论 -
【电商吧 - 5】如何防止商品超卖
在多个人同时对一个商品下单时,如果处理的不得当会存在超卖的现象,这种严重的bug是无法接受的。这是一种极为常见的并发问题,这个时候就有开发者想到了通过锁来控制。但是由于很多小伙伴对于锁没有一个充分的认识,最后却弄巧成拙。如下,我列举一些常见的解决思路和我的想法,请大家参考。原创 2021-03-01 22:43:15 · 5572 阅读 · 1 评论 -
【电商吧 - 4】电商场景数值计算那些坑
电商项目开发时肯定少不了金额计算,金额计算时有很多让人坑人的地方,在此记录,以免被坑。原创 2021-02-28 20:33:08 · 3962 阅读 · 1 评论 -
【电商吧 - 3】支付第一步,支付宝网页支付!
了解了支付宝秘钥设置的原理之后,可更加快速的进行开发支付宝支付。在此示例一下支付宝支付较为简单的场景——电脑网站支付。这个场景对于后端开发者是比较友好的,官方的demo中已经提供了html页面,只需要进行简单的配置即可运行。原创 2021-02-27 15:58:24 · 5434 阅读 · 4 评论 -
【电商吧 - 2】涨见识!支付回调特有的幂等处理方式
在订单的状态发生改变后,支付宝会通过异步方式同志商家服务器。商家服务器需要返回`success`这7个字符,如果不是,则会不断重复发送。微信也是如此,必须需要商家服务器的正确反馈。既然这样,在回调接口就需要进行幂等处理原创 2021-02-26 21:42:56 · 4260 阅读 · 0 评论