越努力,越幸运

朱季谦

腾讯云社区2022年度最佳作者、阿里云专家博主认证

随笔分类 -  Java开发

摘要:原创/朱季谦 在Java编程当中,Iterator迭代器是一种用于遍历如List、Set、Map等集合的工具。这类集合部分存在线程安全的问题,例如ArrayList,若在多线程环境下,迭代遍历过程中存在其他线程对这类集合进行修改的话,就可能导致不一致或者修改异常问题,因此,针对这种情况,迭代器提供了 阅读全文
posted @ 2023-12-28 23:17 朱季谦 阅读(217) 评论(0) 推荐(2) 编辑
摘要:原创/朱季谦 我在《Java SPI机制总结系列之开发入门实例》一文当中,分享了Java SPI的玩法,但是这只是基于表面的应用。若要明白其中的原理实现,还需深入到底层源码,分析一番。 这里再重温一下SPI机制的概念:SPI,是Service Provider Interface的缩写,即服务提供者 阅读全文
posted @ 2023-11-12 14:35 朱季谦 阅读(701) 评论(0) 推荐(1) 编辑
摘要:原创/朱季谦 在该文章正式开始前,先对 Java SPI是什么做一个简单的介绍。 SPI,是Service Provider Interface的缩写,即服务提供者接口,单从字面上看比较抽象,你可以理解成,该机制就像Spring容器一样,通过IOC将对象的创建交给了Spring容器处理,若需要获取某 阅读全文
posted @ 2023-11-11 19:16 朱季谦 阅读(381) 评论(0) 推荐(1) 编辑
摘要:文/朱季谦 假如有这样一个需求,每天需要读取以下表头的Excel文件,统计文件里击中黑名单的比例,该文件is_blacklist列的1表示击中了黑名单,0表示未击中黑名单。 ![image](https://img2023.cnblogs.com/blog/1545382/202305/154538 阅读全文
posted @ 2023-05-25 17:26 朱季谦 阅读(712) 评论(0) 推荐(0) 编辑
摘要:💻在面试或者日常开发当中,经常会遇到公平锁和非公平锁的概念。 两者最大的区别如下👇 1️⃣ 公平锁:N个线程去申请锁时,会按照先后顺序进入一个队列当中去排队,依次按照先后顺序获取锁。就像下图描述的上厕所的场景一样,先来的先占用厕所,后来的只能老老实实排队。 2️⃣ 非公平锁:N个线程去申请锁,会 阅读全文
posted @ 2022-11-17 07:41 朱季谦 阅读(4360) 评论(2) 推荐(6) 编辑
摘要:原创/朱季谦 在并发多线程场景下,存在需要获取各线程的异步执行结果,这时,就可以通过ExecutorService线程池结合Callable、Future来实现。 我们先来写一个简单的例子—— public class ExecutorTest { public static void main(S 阅读全文
posted @ 2022-09-25 16:51 朱季谦 阅读(682) 评论(0) 推荐(0) 编辑
摘要:业余在一个SpringBoot项目集成Swagger2时,启动过程一直出现以下报错信息—— An attempt was made to call a method that does not exist. The attempt was made from the following locati 阅读全文
posted @ 2022-01-15 19:28 朱季谦 阅读(1347) 评论(0) 推荐(0) 编辑
摘要:首先,先抛出一个问题,该如何安全而优雅地停止线程? 这道问题的背后,可以很小,小到只是简单终止一个Thread线程,也可以很大,大到例如Dubbo应用的优雅下线......它们其实都有一个共同之处,即非一刀断式地暴力停止某个进程或者线程,而是能够实现在终止过程中,有机会去清理资源,跑完剩余的任务,最 阅读全文
posted @ 2021-12-05 00:09 朱季谦 阅读(658) 评论(0) 推荐(2) 编辑
摘要:我在实际项目当中有经常用到反射机制,故而将学会的反射用法做一些汇总笔记,当做以后复盘所用。 存在这样一个类: package com.example.demo; import com.alibaba.fastjson.annotation.JSONField; public class User { 阅读全文
posted @ 2021-07-06 23:19 朱季谦 阅读(659) 评论(0) 推荐(0) 编辑
摘要:一、案例场景 遇到过这样的场景,在定义一个static修饰的Map时,使用了大量的put()方法赋值,就类似这样—— public static final Map<String,String> dayMap= new HashMap<>(); static { dayMap.put("Monday 阅读全文
posted @ 2021-06-22 22:35 朱季谦 阅读(565) 评论(0) 推荐(0) 编辑
摘要:文/朱季谦 说实话,其实我很讨厌在代码里大量使用if-else,一是因为该类代码执行方式属于面向过程的,二嘛,则是会显得代码过于冗余。这篇笔记,主要记录一些自己在工作实践当中针对if-else的优化心得,将会不定期地长期更新。 一、使用策略枚举来优化if-else 看到网上蛮多人推荐使用策略模式来优 阅读全文
posted @ 2021-06-22 12:21 朱季谦 阅读(3104) 评论(3) 推荐(4) 编辑
摘要:文/朱季谦 在一次Java解析xml文件的开发过程中,使用SAX解析时,出现了这样一个异常信息: Error on line 60 of document : 对实体 "xxx" 的引用必须以 ';' 分隔符结尾; 我打开xml文件后,发现该“xxx"符号之前跟着一个”&“符号,后来了解到,这类符号 阅读全文
posted @ 2021-05-13 23:44 朱季谦 阅读(4110) 评论(0) 推荐(2) 编辑
摘要:文/朱季谦 想起刚开始接触JAVA面向对象编程时,若遇到大量流程判断语句,几乎满屏都是if-else语句,多得让自己都忘了哪里是头,哪里是尾,但是,纵然满屏是if-else,但彼时也没有觉得多别扭。等到编程能力渐渐提升之后,再回过头去看曾经写过的满屏if-else时,脑海里只有一个画面,全都是翔.. 阅读全文
posted @ 2021-03-26 07:43 朱季谦 阅读(2756) 评论(5) 推荐(13) 编辑
摘要:微信扫码登录是经常用到的的骚操作,但是,其实现的思路是怎样的,可能很多人都没有去思考过。记得曾经在一次面试当中,面试官就曾问过微信扫码登录的实现思路,这次,以微信读书网页版扫码登录为例子,聊聊我对微信扫码登录技术实现思路一些思考。 以谷歌浏览器来做本次分析,打开F12,准备随时观察http连接状况。 阅读全文
posted @ 2021-03-10 00:05 朱季谦 阅读(2555) 评论(1) 推荐(17) 编辑
摘要:出现这个问题,只需把对应的字段注解设置为,例如: @TableId(value = "id",type = IdType.INPUT) private String id; 即可解决这个报错。 阅读全文
posted @ 2020-12-21 19:59 朱季谦 阅读(1589) 评论(0) 推荐(0) 编辑
摘要:原创/朱季谦 这款工具是笔者在2018年初开发完成的,时隔两载,偶然想起这款小工具,于是,决定将其开源,若有人需要做类似Java批处理实现整理文档的工具,可参考该工具逻辑思路来实现。 该工具是运行在windos系统上的,基于bat脚本与jar包形式协同运行。当时开发该工具的背景是,需要每天定时处理大 阅读全文
posted @ 2020-12-16 22:39 朱季谦 阅读(1051) 评论(0) 推荐(2) 编辑
摘要:原创/朱季谦 灵魂拷问,这位独秀同学,你会这道题吗? 请说说,“System.out.println()”原理...... 这应该是刚开始学习Java时用到最多一段代码,迄今为止,与它算是老朋友了。既然是老朋友,就应该多去深入了解下其“内心”深处的“真正想法”。 在深入了解之前,先给自己提几个问题: 阅读全文
posted @ 2020-10-17 21:14 朱季谦 阅读(2549) 评论(2) 推荐(6) 编辑
摘要:一.类继承Boolean的源码类定义部分如下: 1 public final class Boolean implements java.io.Serializable, 2 Comparable<Boolean>在IDEA生成其类继承图:根据以上信息可以得知:1.Boolean类实现了java.i 阅读全文
posted @ 2020-08-01 23:02 朱季谦 阅读(410) 评论(0) 推荐(0) 编辑
摘要:执行的定时任务是基于其他定时任务计算得到的结果基础上做操作的,那么如何来确定其他存在数据依赖的定时任务已经执行完成呢? 在分布式环境里,可通过集群的redis来解决这个问题: 即,在跑批任务开始时,将任务key+当日凌晨时间组成的key值进行加1,例如: 1 redisOperator.getJed 阅读全文
posted @ 2020-06-27 18:01 朱季谦 阅读(825) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示