- 博客(28)
- 资源 (24)
- 收藏
- 关注
原创 List集合根据条件删除某些元素,只需一行代码
很多时候,我们要对集合中的数据进行筛选,只保留符合我们条件的元素,一般我们是通过for循环去遍历list ,然后在循环里面删除不符合条件的元素或者是新增一个集合,然后在循环里面添加符合条件的元素这些方法都是可以的,但是不够简便,需要我们自己写挺多逻辑这里有一个偷懒的做法,jdk 1.8 的集合类中有一个叫 removeIf ()的方法,只需要传入移除元素的条件判断逻辑即可完成元素移除操作一行代码即可解决这个方法源码如下,原理还是利用迭代器去删除元素的,返回值是被删除的元素
2021-12-02 17:28:10
1640
原创 shell脚本实现在linux上批量替换jar包中的class文件并自动重启应用
shell脚本实现在linux上批量替换jar包中的class文件并自动重启应用
2021-11-19 18:47:09
2023
原创 java工具类:生成指定时间范围内的所有连续的日期、月份、周数集合
/** * 计算两个时间中所有的月份 * @param date1 开始时间 * @param date2 结束时间 * @return * @throws ParseException */ public static List<String> getMonths(String date1, String date2) throws ParseException{ SimpleDateFormat s...
2021-11-19 18:10:46
4940
原创 mybaties plus 分页查询临时禁用分页,一次性查询所有数据的最简单方式
mybatis plus 分页查询只需要传入一个分页参数page即可实现自定义sql查询的分页功能,不过有的时候,我们可能会要求查询所有数据,不使用分页,比如做数据导出,前端列表用的分页查询,而想要导出所有数据,后端就要重新查一遍数据然后去导出,查询的逻辑一般是和前段列表的分页查询是一样的,如果能复用分页查询的逻辑,就不用重新写一份同样的逻辑,减少冗余代码如何使用分页查询查询所有的数据而不带入分页参数呢?答案:将传入的page参数的pageSize设为 -1 即可...
2021-09-23 20:34:06
7633
3
原创 理解java中类加载过程中的双亲委派机制
简单来说,双亲委派过程大致分为两步:第一步: 判断需要加载的类是否已经被加载过第二步:开始加载类(从bootstrapClassload开始尝试加载,如果无法加载,则交由子类加载器尝试加载)类加载器种类:启动类加载器(bootstrap classloader)主要加载jre核心的类库扩展类加载器(extension classloader)主要加载 java_home/lib/ext类库应用类加载器(application classloader)主要加载classpath路径下的
2021-09-07 16:03:17
142
原创 利用springcloud config + webhook实现微服务配置文件批量自动化更新,无需重启项目和手动请求接口
版本说明:springboot:2.5.4 springcloud:2020.0.3这两个我用的都是现在最新版本的,如果你的版本较低,此教程可能不适用你,建议和我保持一致,然后再往下看实现原理:(盗一张别人的图,稍微修改了下,原理大概就是下面这样子)简单说下整个流程:1,git上配置文件发生变更,触发git上的webhook发送请POST请求到配置中心服务器,告诉配置中心配置文件被修改了2,配置中心发送配置更新消息到消息总线3,消息总线通知所有订阅的微...
2021-08-30 17:29:45
1002
原创 java利用stream流实现对hashmap的value值进行排序
我们都知道,hashmap本身是无序的,不可能做到排序,但是有时候又要排序该怎么办呢?既然hashmap不行,那么有没有那种map集合是有序的呢?当然有,linkedhashmap就是其中的一种所以解决问题的思路就是将hashmap转成linkedhashmap就好了那么该如何转呢?这里推荐使用java8的stream流操作来转化Map<String, Integer> unsortedMap= new HashMap<>();unsortedMap.put.
2020-11-30 19:14:06
4242
1
原创 java 计算当前日期所在周的周一是那一天
分享工具类:各种日期计算(注:工具类中的周的开始时间是周日)计算当前日期所在周的周一是那一天计算当前日期所在月份的第一天。。。。。。。import java.time.LocalDate;/** * 日期计算辅助类 * @author Lim * @date 2019/11/10 */public class LocalDateUtil { /** * 周开始日期,周日为周开始时间 * @param date 指定日期 * @ret
2020-11-30 18:53:20
689
原创 java判断导入的excel是否有重复行数据并记录重复数据行号
这个是我做项目过程中遇到的的一个问题,当时的需求是要求对使用excel导入的数据做判重校验(所有列的数据都一样判定为重复数据),如果里面有输入重复的数据的话,就记录哪些行是重复的数据,记录对应的行号,返回给前端显示给用户最开始的想法是把所有excel里面的数据全部读出来,放在一个map中,map的key记录行号,value保存数据行转化之后的对象,然后通过遍历map集合,一个个的去比较。这种方式肯定是可行的,但是当时觉得太麻烦了,并且效率很低,就没有用这种方式去做,当时在想有没有更简单的,更高.
2020-11-04 11:58:54
9772
2
原创 什么是Java中的重入锁?看不懂算我输
什么是重入锁?字面上理解就是可以重新获取进入的锁,实际上也是这样理解的,官方解释:当某个线程获取到锁时,该线程还能继续获取该锁。也就是说线程可以重复获取同一把锁就像下面这样:一个类中,同步方法之间的调用就需要重复获取this锁public class Demo1 { public synchronized void functionA(){ System.out.println("iAmFunctionA"); functionB(); ...
2020-08-06 11:25:43
636
转载 白天工作效率低,晚上效率高怎么调整过来?
曾有一段时间,我的工作效率很低,老是出差错,导致领导同事的差评,这又让我很是苦恼,情绪也很差,几乎快进入恶性循环。后经高人点拨,自我反思与总结,经过不断调整,情况得到好转,同时也找到了提高工作效率的切实可行的办法,觉得有必要分享出来,希望对职场中想提高工作效率的朋友有所帮助。先说下自己的工作历程。我刚工作的初期,激情满怀,充满好奇心,学习动力十足。写 SQL、存储过程、shell 程序,datastage 开发,处理跑批错误。时间一长,这些操作了然于心,技术的提升已经进入了瓶颈期,随着会的东西越来越多,
2020-08-03 10:36:16
3807
转载 Java中的线程池是如何实现线程复用的?
对于从事Java语言开发者对于线程池大家应该都不会陌生,Executors里面的各种线程池也是顺手拈来。但突然某一次,某人问了句“复用”如何实现的。想了想线程执行完就释放了,如何复用不甚了解。Java线程池优点:降低资源消耗。java中所有的池化技术都有一个好处,就是通过复用池中的对象,降低系统资源消耗。设想一下如果我们有n多个子任务需要执行,如果我们为每个子任务都创建一个执行线程,而创建线程的过程是需要一定的系统消耗的,最后肯定会拖慢整个系统的处理速度。而通过线程池我们可以做到复用线程,任...
2020-08-02 22:46:30
1427
原创 Java中如何正确的停止一个线程?多线程面试必问知识点
一般情况下我们是不需要自己手动去停止一个线程的,因为线程在执行完run方法里面的代码之后会自动停止那么在什么情况下需要我们手动去停止呢?答案就是run方法里面存在死循环,导致run方法一直没有办法执行完,如下面的情况public void run() { while (true) { System.out.println("I"); System.out.println("Love"); System.out.println("You");..
2020-07-26 22:07:44
676
原创 mybaties这样配置sql,轻松在java代码中获取新增记录的主键id
有时候,我们在做数据插入的时候,期望可以立马知道这条数据的主键id,应该怎么做呢?其实很简单,只需要在mybaties的sql上进行简单的配置即可,如下图所示在insert上加上:keyColum ,keyProperty,useGeneratedKeys=true 即可keyColum :表示数据库中主键的字段名keyProperty:主键映射的实体类中的属性名useGeneratedKeys=true :代表主键自增这样配置好之后,当执行这段sql时,会自动生成一个id(该i
2020-07-24 11:20:32
743
原创 最简单的模拟真实多线程死锁的场景,适合刚学习多线程的新手看
首先介绍下什么是死锁?个人理解:死锁指的是在多线程中(至少存在2个线程),线程之间持有各自所需要的锁,互相等待对方释放锁资源,形成无限等待的情况,这种场景叫做死锁上面那句话可能不是很好理解,我举一个例子:有两个人,一个叫小明,一个叫小红,他们关系特别好,吃饭共用一套碗筷 到饭点了,小明和小红一起去吃饭,小明先拿到了碗,正准备拿筷子的时候,却被小红抢先一步,小明说:你把筷子给我,我要先去吃饭,吃完给你,小红不肯,说:你先把碗给我,我吃完了再给你这样两个人,你不让...
2020-07-18 18:38:49
1781
原创 mysql 使用group by分组后对某个字段值拼接成字符串方法,一般人都不知道!
只需要使用GROUP_CONCAT函数可以在使用groupby分组后,将某个字段的值进行拼接合并使用示例:数据表:testTb使用 GROUP_CONCAT函数来实现,我们的sql可以这样写Select albumId,GROUP_CONCAT(name) from testTb group by albumId,默认使用逗号进行拼接,效果如下图所示当然,还能自定义分隔符,在字段后面加上SEPARATOR '&'Select albumId,GROUP_CO...
2020-07-17 17:36:13
38412
1
原创 用idea提升开发效率-快速将一段代码抽成一个独立的方法快捷键
我们实际开发过程中写的某段代码可能在其他地方也能用得到,这时候我们通常会把这段代码抽离出来,封装成一个独立的方法,用于给其他方法进行调用,以达到代码复用的目的,减少代码的冗余通常我们的做法是将这段代码复制出来,然后再自己定义一个方法,接着把代码塞进去这个过程的步骤虽然不是很多,但是作为程序员,能偷懒的地方可以尽量偷懒,节省了时间可以早点下班为了方便大家理解我说的什么,放两张图接着按下ctr+alt+m会出现下面的弹窗,里面可以定义生成后的方法点击refactor就变成下面酱紫,.
2020-06-18 15:13:44
4464
原创 idea快捷键使用技巧-不用任何其他工具,快速比较项目中两个文件的差异
使用方法:idea左边项目文件栏中选中两个文件:ctr+鼠标左键点击按下:ctrl+D即可进入文件对比页面
2020-06-13 11:52:48
2846
原创 idea快捷键使用技巧-快速打开某个文件,同时跳转到指定行数
应用场景:每当我们项目部署到线上服务器的时候,难免会出现一些bug,这时候我们最常见的做法就是看日志文件,以便知道异常出在哪里,通常在错误日志中会打印出异常所在的文件以及行数。我们通常的做法是拿到文件的名字去项目中去搜,搜到文件之后再拉到报错的行数,如果报错所在的行数在文件比较靠前的位置还好,要是非常靠中靠后,而且代码量比较多的时候,鼠标就要不断的向下滚,这个操作其实是挺累的,所以我们可以使用充分利用idea的快捷键来简化这一流程,只需要输入文件名+行数,自动帮你跳到指定文件的指定行数,大大提高
2020-06-13 11:43:23
6918
1
原创 如何在idea中配置控制台terminal 访问git
第一步:安装git,这个就不说了第二步:配置环境变量用户变量中编辑Path变量,新建一个环境变量:路径配置成git的安装目录下的bin目录第三步:在idea中配置git的环境变量这一步很重要,如果不配置的话,会出现'git' 不是内部或外部命令,也不是可运行的程序或批处理文件。这样的问题具体配置方法:idea中:settings---》terminal---》environmentvariables在git的安装目录下找到git-core目...
2020-05-18 10:43:15
2027
原创 在idea的控制台进行git pull 或者git push的时候每次都要输入用户名和密码的解决办法,亲测有用!!!
第一步先输入gitpull ,然后输入自己的用户名和密码第二步输入:git config --global credential.helper store回车之后再输入git的命令就不需要再次输入用户名和密码了
2020-05-18 10:12:48
4957
3
原创 笔记本如何在win10系统下快速安装win7系统,实现双系统,亲测成功!!!
简单说下步骤,大致分为以下6步下载win7系统 创建额外的磁盘分区 安装系统到自己创建的硬盘分区 修复系统引导 重启电脑,选择win7,安装成功 如何切换回win10系统?1,下载win7系统这个会上网的人应该都会,就不说了,网上百度上一下很多,随便下载就好了2,创建额外的磁盘分区参照https://jingyan.baidu.com/article/42...
2020-04-25 21:00:41
2507
原创 微信发图时找不到在其他软件上刚保存的图片或视频,但是在手机自带相册里面能看到的解决办法,亲测有效
现象描述:刷抖音,看到好看的视频,保存下来,想要分享到朋友圈,但是却发现找不到刚保存的视频,打开自己手机相册却能看的到。刷微博,看到搞笑,沙雕的图片,保存下载,想要分享到朋友圈,但是却发现找不到刚保存的这张图,打开自己手机相册却能看的到。问题原因:其实我也不知道,是不是很惊喜?哈哈,当然也不是说完全不知道,还是知道一点点的不然我写这文章干嘛?闲得蛋疼啊?经过我两天的研究...
2019-09-04 14:01:02
14853
2
原创 mysql统计一年12个月的数据,当某个月没数据的时候自动补0
在mysql中如何去统计12个月的数据,并且给没有数据的月份设置为0 ?因为每个人的业务都不太一样,所以如何统计数据这个就不说了,不过我相信能看到这篇文章的人应该都已经做好数据统计,只是统计的数据并不是完整的12个月的数据,有可能某些月份并没有数据,这时候需要给那些没有数据月份设置为0 ,那具体应该如何做呢?首先介绍下大致思路:我们要自己手动生成一列1~12月的数据,然后和你统...
2019-08-22 17:19:34
19984
5
原创 教你如何使用idea 中的git工具在本地进行分支合并,分支切换,纯手动按钮操作,无git指令
本文只针对idea中git工具,并且在使用过程中不会涉及到git的指令操作,对于不喜欢使用指令操作git 的朋友是一大福音。废话不多说,下面正式演示相关的操作过程:第一步:在远程仓库建立多个分支。以github为例我们先创建一个开发分支(dev),这个分支的目的是为了用于本地开发,而主分支(master)则用于最终打包部署到正式服务器环境使用。创建成功后的效果,在下拉列表中...
2019-08-07 13:11:21
1325
原创 java通过sign签名+时间戳的方式防止rest接口被恶意抓包调用和重放
做后端开发,避免不了要写接口,最开始我们写接口是为了满足实现具体的功能,能在客户端正常调用就行了,这种接口称为裸接口,就跟一个人没有穿衣服一样,我们在家的时候当然可以这么做,肆意放荡,这没关系,但是人总是要出门的,接触一些外人,这时候赤身裸体就不太好了吧。所有这时候我们要给自己穿上一件衣服。我们的接口也是一样的,一旦我们的接口上线暴露给外界了,必须要做一定的防护措施,给接口穿上“一件衣服”,避免一...
2019-07-26 16:54:19
11232
17
原创 springboot 传递对象数组参数时报错java.lang.NoSuchMethodException: 实体类.<init>()
前端代码:var user1 = { username : 'zs', password : '123'};var user2 = { username : 'lisi', password : '234'};var data = [];data.put(user1);data.put(user2);特别注意:在使用ajax发送请求时,需...
2019-01-15 21:52:45
3569
数学和泛型编程-高效编程的奥秘(英文版pdf)原名:From_Mathematics_to_Generic_Programming
2019-07-28
java零基础入门教程-黑马历经5年时间打造
2019-04-21
Kubernetes实战高可用集群搭建,配置,运维与应用【完整版】
2019-04-20
职坐标- Spring Cloud微服务实战课程
2018-12-07
Redux+React Router+Node.js全栈开发(视频教程+源码)
2018-11-21
JAVA网络爬虫实战视频教程
2018-11-20
全面讲解MySQL性能管理及架构设计
2018-11-16
让你页面速度飞起来 Web前端性能优化(视频教程+ppt)
2018-11-16
PHP零基础入门到原生项目开发【完整版】
2018-11-15
Angular 4.0从入门到实战 搭建股票管理网站
2018-11-15
基于Python玩转人工智能最火框架 TensorFlow应用实践
2018-11-09
Laravel和 Angular JS开发全栈知乎
2018-11-09
Java开发企业级权限管理系统
2018-11-08
快速上手Linux 玩转典型应用
2018-11-08
Java秒杀系统方案优化 高性能高并发实战
2018-11-07
PHP秒杀系统 高并发高性能的极致挑战-
2018-11-07
简单的spring+spring mvc+mybaties(ssm) maven框架,适合新手学习!
2017-11-30
安卓天气预报源码,有注释!!!
2016-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人