- 博客(12)
- 收藏
- 关注
原创 干掉if,实现快速匹配
干掉if,实现快速匹配适用场景一、解决方案二、使用步骤1.定义枚举2.实现匹配适用场景判断是否满足特定条件,比如有一些小学生数据,分别有年级,性别,成绩(优秀,良好,及格,不及格)信息。如果使用常见的if语句判断小明是否是1-3年级的男生中成绩优秀和良好的学生,会是这样的。public boolean check(Student xiaoMing) { if (xiaoMing.grade == 1 || xiaoMing.grade == 2 || xiaoMing.grade == 3)
2022-05-22 15:49:22
239
原创 并发场景下Collections.shuffle(List<?> list)使元素重复的问题
并发场景下Collections.shuffle(List<?> list)需要注意的问题场景:有一个需求需要每个人每次看到的列表是乱序的,使用了Collections.shuffle(List<?> list)来完成这个乱序的功能,但是发现过一段时间就会出现原来没有重复元素的list变重复了。复现:public class CollectionShuffle extends Thread{ private static final List<Integer
2022-03-03 01:28:34
698
原创 Java实现对某个值加同步锁
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录适用场景一、synchronized(this)二、synchronized(Object)三、借用对象加锁四、最终版适用场景在一些场景下,我们需要对某一个值进行加锁,比如支付的订单id,同一时间一个订单只允许一个线程进行操作。以下是本篇文章正文内容,下面案例可供参考一、synchronized(this) @GetMapping("thread") public void thread(String id)
2022-02-11 01:18:34
4749
8
原创 通过java执行telnet进入dubbo命令模式测试接口
文章目录前言一、telnet是什么?二、后端代码实现1.引入依赖2.DubboUtil实现与代码3.Controller实现与代码三、页面截图四、前端代码前言由于开发需要,dubbo接口开发完后不方便测试,或者需要打开terminal,ssh登陆后执行telnet命令。过程有点繁琐,便想着开发一个简单的dubbo测试工具,一开始想通过ReferenceConfig指定dubbo机器ip的方式访问,但是也需要导入class,否则会提示ClassNotFound。最后想到telnet可以直接测试dubbo
2021-12-12 00:04:09
1205
2
原创 写一个单例模式并且破坏它
单例模式就是指定某个对象在程序的运行过程中,不管通过多少次创建,只会返回同一个对象,就是为该对象使用了单例模式。一个简单的单例模式如下:public class Single { // 构造方法私有化 private Single() { } // 定义一个私有的静态本类的对象属性 private static Single s = new Single(); // 对外一个公开的静态的返回本类实例的方法 public static Single getInstance() .
2021-08-25 17:40:23
77
原创 Redis分布式锁的实现
在使用Redis实现分布式锁的时候,通常向Redis插入一条key-value数据,key为需要上锁的资源,value可以存放使用该资源的用户等信息。1.方案一首先传入需要被锁的资源id和当前操作的用户userId,先判断当前Redis中是否有key为id的数据,如果存在,直接返回false代表该资源已经被人使用;如果不存在再插入键为id,值为userId,有效时间30s的数据,并且返回true。/*** 用户进入获取某个key的锁* 返回false说明获取失败,返回true说明成功* @ret
2020-11-19 20:31:35
502
2
原创 使用Java在图片中添加文字
有这样一张图片,需要修改图中的时间实现思路:先使用绘图工具将上图中的时间抹成白色。将图片加载到BufferedImage类,使用Graphics2D类对图片进行文字绘制,最后输出流,前端通过a标签访问即可完成下载。在我的电脑中,Arial字体样式和图片中的时间的字体样式一致,将项目部署到linux中后由于系统中没有该字体,需要先向linux中安装字体,安装方式见:https://blog.youkuaiyun.com/wangxintong_1992/article/details/81194896以下代
2020-10-17 01:02:53
4461
2
原创 根据name属性值匹配json数据(适用于查看信息详情)
查看信息详情,通过ajax请求到json数据后,如果未使用vue,layui之类的前端框架,数据详情显示需要这样一条一条填充$("#id1").val(data.id1);$("#id2").val(data.id2);$("#id3").val(data.id3);......如果数据量较大的话写起来比较复杂,也容易出问题,可以使用如下方法解决html(根据name值进行匹配):以下p标签换成input,span等均可<div id="httpInfo" style="hei
2020-08-25 10:23:02
635
原创 jquery实现同一元素单击、双击、拖拽
在html中有这样一个元素<div id="demo" style="width: 100px;height: 50px;position: absolute;border: 1px solid;background: red;left: 400px;top: 200px">为其绑定单击和双击事件后,双击仍会触发单击事件,原因是点击第一次就会直接触发单击(点击)事件。所以可以为单击事件设置一个延时执行,在这里我设置了250ms,也就是单击事件会单击后250ms执行,而双击事件也必须在2
2020-05-14 23:40:09
661
原创 多表匹配目标表查询并动态添加新列(union和union all关键字的使用详解)
在开发过程中遇到一个表需要从其他表的关联关系中进行匹配并且筛选的需求。我将其抽象成以下的需求进行模拟。有多个不同颜色的篮子,里面放苹果,香蕉,梨,桃子;一个篮子里可以放不同的水果。一种水果在一个篮子里只能有一条记录,但是桃子除外,因为桃子还分为红桃子和黄桃子;除此之外,篮子中的水果还分为熟的和不熟的。需求如下:查询出成熟水果所存放的篮子信息,并且在每条查询记录后面标记是什么水果。...
2020-04-23 15:40:19
2229
原创 拼接html无法触发绑定事件的解决办法
在开发过程中有时会遇到需要利用js动态为页面拼接元素的情况,但是监听事件在页面加载完就会绑定到指定的元素上,之后执行的js方法拼接的元素将无法触发事件。解决办法为,利用jquery的on()方法,为所要拼接元素的父元素添加监听事件...
2020-04-16 15:02:50
1811
原创 将多层json转成键值对的格式
将多层json转成键值对的格式有这样一个json格式的入参,该json不方便以键值对的方式进行存储,需要在代码中通过循环,递归的方式进行解析。{ "ROOT": { "HEAD": { "PARAM": { "param": { "param_test1": 1, "param_test2": 2 } } }, "BODY": {...
2020-04-15 18:45:09
1077
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人