- 博客(76)
- 资源 (7)
- 收藏
- 关注

原创 Java日经问题总结
本文旨在快速解决常规,常见,常识的三常问题1,Mybatis二级缓存相关深入了解MyBatis二级缓存-逆流而上 -----又名二级缓存从了解到放弃Spring Cache简单介绍和使用-----正儿八经的缓存方案Spring Cache+Redis实现自定义注解缓存-----新手参考demo...
2018-11-01 14:49:32
5614
7
原创 微信“商家转账到零钱“功能接入以及如何获得转账结果?
最终答案已经明确了,企业付款到零钱可以即时拿到转账结果和失败原因,商家转账到零钱需要延迟30s才能查询到结果,而企业付款到零钱功能新用户已无法办理。但是其他app中可以即时拿到转账结果并提示用户失败原因是怎么做到的?接入,发现响应结果中没有转账成功或者失败的结果。很明确的告知了需要延迟30s才能拿到转账结果。接口进行转账结果查询,发现无法即时获得结果。–微信开放社区的相关讨论。
2022-12-27 15:41:27
1582
原创 Java Stream map flatMap mapMulti的升维和降维
【代码】Java Stream map flatMap mapMulti的升维和降维。
2022-10-24 19:59:12
1696
原创 Java VirtualThread 虚拟线程的个人粗浅理解
上图证明虚拟线程底层依赖于ForkJoinPool(),还要注意一点ForkJoinPool()的平台线程都是守护线程与其他线程池不一致。先说结论:虚拟线程依赖于ForkJoinPool()进行底层实现,ForkJoinPool()依赖于平台线程。先随便看个VirtualThread的相关资料理解虚拟线程和平台线程的概念或者看这个也行。
2022-09-23 18:15:05
1901
原创 前后端技术炒作黑话
黑话:RESTFul JWT(Json web token) 中台 DDD Devops CI/CD 云原生 Serviceless FaaS 多租户 IoT(物联网) 区块链 人工智能(AI) ServiceMesh 低代码(Low-Code) O2O(Online To Offline) BFF(Backend For Frontend) 云计算:Iass(基础设施) Pass(平台) Sass(软件)以上黑话均为技术关键字,如果项目中包含是正常的但是如果拿来做噱头则建议多思考再取信以上仅为群内意
2022-02-14 12:10:55
12286
原创 用循环代替递归做无限层级关系
起因是:https://v2ex.com/t/832785#reply32 楼主被hr给的一道题难住了这里给出比较简洁的实现:Map<String, Map> treeMap = new HashMap<>(); Stream.of("中国 浙江 杭州","中国","中国 广东","中国 广东 广州 越秀区") .forEach(s -> { Map<String,
2022-02-10 11:16:47
1916
原创 ForkJoinTask实现斐波那契数列计算
public static void main(String[] args) throws Exception { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); System.out.println("主线程开始 " + LocalDateTime.now().format(formatter)); Lon..
2021-08-10 12:41:45
464
原创 使用Completablefuture和Stream实现获取多个任务,满足要求的任意结果
先上代码DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); System.out.println("主线程结开始 "+LocalDateTime.now().format(formatter)); //任务函数 Function<Long,Long> longConsumer = (Long time) -> {
2021-08-09 22:45:46
3422
5
原创 Spring boot基于Lettuce的分布式锁
RedisUtil提供加锁,解锁,key和value生成public class RedisLockUtil { /** * redis分布式锁-加锁 * @param redisTemplate redis 加锁解锁要保证同一个 * @param key 分布式锁key * @param value 分布式锁value 一般为随机数 * @param timeout 分布式锁过期时间 秒 * @param number 重试次数
2021-04-15 14:28:40
2316
原创 Java实现redis sortSet(zset)数据结构
static class Tuple implements Comparable<Tuple> { private long uid; private long score; public long getUid() { return uid; } public Tuple setUid(long uid) { this.uid = uid; ..
2021-04-13 14:04:57
1217
原创 Autohotkey-从小白到“Hello World“
V2版本目前不成熟,暂不使用下载完成后自己选一个目录安装默认安装C盘,简单几个英文就不截图了然后打开scite4ahk推荐安装版,下载完成后安装选中刚才的AutoHotkey安装目录,安装完成后打开SciTE4AutoHotkey弹出选择简体中文其他的不要动2021年1月29日 11:14:40 截止到今天会有提示需要更新2个更新,更新即可按本教程解决中文乱码SciTE4AutoHotkey新建文件默认编码 UTF-8 with BOM在编辑器中 文件-&g
2021-01-29 11:25:01
2160
原创 微博时间线实现方案假想
问题徐志摩关注了2000个博主,每个博主发送200条微博,需要按照这40万条微博进行倒序浏览前200条,如何优化数据结构和算法避免40万条临时数据的重排序?解题直接排序40万条数据必然不可取,首先要知道用户需要浏览的数据不过只有头部的几百条而已整个40万数据的重排序完全无意义,所以解题思路就是就是优化掉"不需要"排序的数据方案1:查询徐志摩关注的2000个博主的uid和每个博主对应的最后一条微博发送时间,按照最后发送时间倒序获取前200个博主,此时能够获取到的微博数至少为200条,再查询这200个博
2020-10-28 22:52:34
666
原创 快捷键占用查看
碰到快捷键被占用但是不知道占用程序,所以写个小工具查看当前激活窗口路径下载链接:微云下载使用方法:下载后右键管理员执行右下角出现绿底白字的H图标先按对应的快捷键例如 Ctrl+Alt+A 然后按 End 即可显示最新激活窗口路径,然后右击H图标点击退出效果:查毒报告:...
2020-06-12 10:26:17
3006
原创 双括号初始化导致的诡异问题
明明是同样的类型,却编译不通过!最开始我以为是泛型的问题,反复查找资料和尝试后,最终定位到是双括号导致的!参考资料:Java:双括号初始化 /匿名内部类初始化法阅读资料后可知,第一层括号实际上是产生了一个HashMap的子类所以可以解释为什么图上的代码会编译错误因为HashMap产生了一个子类,而第二层为代码块所以可以调用类内部方法总结:千万不要再使用双括号初始化,使用new Object()和代码块代替即可!双括号会带来非常多的class文件以及OOM风险为了节省一两行代码得不偿失!...
2020-06-08 23:36:32
387
原创 Java Stream 集合中对象单属性去重和多属性去重
在Stream中distinct()可以进行去重,内部原理是通过构建一个ConcurrentHashMap并使用putIfAbsent()来去重,但是由于ConcurrentHashMap与HashMap一样是通过hashCode()和equals()方法来查找和比对的而如果对象所属的类没有将hashCode()和equals()重写的话就会导致同一个类的多个new出来的对象是无法判定为"相等"的...
2020-02-28 16:20:55
8665
原创 如何在多消费者环境中保证单用户任务不并发?
问题: 在队列中一个用户存在10个需要加钱的任务,多个消费者同时获取到了一个任务,在执行时发生了并发导致加钱金额减少解决方案1,在多个者中使用分布式锁保证单个用户的锁同时只能有一个线程持有2,将uid哈希后/10取余,建立0-9的10个队列,每个队列一个线程详解分布式锁方案会导致存在不必要的加锁/释放锁的消耗,但是实现最简单最快hash取余方案实际上是将多线程变成分组单线程任务,...
2019-12-25 18:24:55
243
原创 正则表达式-环视和断言(非获取匹配)详解
(?:pattern) 非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。(?=pattern)非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配...
2019-12-19 18:36:10
734
原创 Spring boot第一次请求很慢问题
问题有以下几个:1、dispatcherServlet 是懒加载的2、数据库链接是懒加载的3、linux 下真随机数生成器解决方案:1,servlet配置load-on-startup的作用–配置spring.mvc.servlet.load-on-startup=12,指定配置文件中spring.datasource.druid.initial-size=1,即启动时会初始化数据库连...
2019-11-29 11:02:47
9491
3
原创 SpringBoot搭建netty-socketio教程
首先按照SpringBoot + Netty-SocketIO在项目中实战详解搭建项目序言:因工作项目需要使用到推送功能,且与前端Socket.IO框架对接,因此使用了Netty-SocketIO。Netty-SocketIO顾名思义是基于Netty的SocketIO,底层是基于Netty。有关SocketIO的相关API与官网提供的NodeJS版本API相似,相关配置与Netty相关配置相似。...
2019-10-21 15:06:05
3785
2
原创 JDK优化之熵池策略
首先请看:JVM上的随机数与熵池策略要看结果请直接拉到文章底部在apache-tomcat官方文档:如何让tomcat启动更快里面提到了一些启动时的优化项,其中一项是关于随机数生成时,采用的“熵源”(entropy source)的策略。他提到tomcat7的sessionid的生成主要通过java.security.SecureRandom生成随机数来实现,随机数算法使用的是”SHA...
2019-08-05 12:35:28
3437
原创 Java8使用LocalDateTime获取正确的第几周和计算日期最佳方式
先上问题public static void main(String[] args) { //使用DateTimeFormatter获取当前周数 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("w"); //2018年第一天 System.out....
2019-04-08 16:42:51
21161
6
原创 Gmail使用别名和googlemail.com将邮箱变为多账号
别名技巧Gmail文档说明使用googlemail.comabcd@gmail.com -&amp;amp;gt; abcd@googlemail.com
2018-11-10 12:29:57
33934
转载 Java深入理解并发/并行,阻塞/非阻塞,同步/异步
1. 阻塞,非阻塞首先,阻塞这个词来自操作系统的线程/进程的状态模型中,如下图:一个线程/进程经历的5个状态,创建,就绪,运行,阻塞,终止。各个状态的转换条件如上图,其中有个阻塞状态,就是说当线程中调用某个函数,需要IO请求,或者暂时得不到竞争资源的,操作系统会把该线程阻塞起来,避免浪费CPU资源,等到得到了资源,再变成就绪状态,等待CPU调度...
2018-10-24 14:35:24
642
原创 Spring过滤json中的XSS
spring处理json是通过MappingJackson2HttpMessageConverter实现的。而MappingJackson2HttpMessageConverter中的read()和writeInternal()分别对应json的请求和响应。也就是说我们的过滤工作就这两个方法中展开。writeInternal首先创建一个类并继承MappingJackson2HttpMessa...
2018-10-24 10:29:24
6627
原创 JAVA获取项目根目录
//根目录 String rootDirectory = System.getProperty("user.dir");如果读取文件发现读取路径怎么都不对,可以尝试先查看根目录,然后拼接根目录+文件路径
2018-10-23 12:25:58
5459
1
原创 JAVA生成二维码,图片合成,图片添加文字
首先引入zxing用于生成二维码 &lt;!-- https://mvnrepository.com/artifact/com.google.zxing/core --&gt; &lt;dependency&gt; &lt;groupId&gt;com.google.zxing&lt;/groupId&gt; &lt;artifactId&
2018-10-23 12:24:43
6159
11
转载 [算法]一致性Hash(Consistent Hashing)原理剖析及Java实现
目录一、一致性Hash(Consistent Hashing)原理剖析二、一致性hash算法的Java实现一、一致性Hash(Consistent Hashing)原理剖析引入一致...
2018-09-14 14:28:03
446
原创 JAVA8之Comparator特殊排序以及ComparatorUtils介绍
1,将数组按照自然顺序排序public static void main(String[] args) { String[] array = {"G", "D", "E", "A", "C", "B", "F"}; //并行流可以提高效率并在数据不超过1 << 13 == 8192时不会使用多线程执行
2018-09-05 15:42:41
3305
原创 JAVA8 六种线程池介绍
(1) newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。 可能导致内存溢出,一般使用newFixedThreadPool代替 (2) newFixedThreadPool 创建一个定长线程池,可控制线...
2018-08-15 19:30:37
3426
转载 Java8--CompletableFuture 组合式异步编程
原文:https://www.jianshu.com/p/4897ccdcb278 使用CompletableFuture构建异步应用Future 接口的局限性future接口可以构建异步应用,但依然有其局限性。它很难直接表述多个Future 结果之间的依赖性。实际开发中,我们经常需要达成以下目的:将两个异步计算合并为一个——这两个异步计算之间相互独立,...
2018-08-15 17:58:57
3436
原创 JAVA8 Collectors.toMap value为null报错
Root Causejava.lang.NullPointerException java.util.HashMap.merge(HashMap.java:1224) java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320) java.util.stream.ReduceOps$3Reducin...
2018-07-28 13:13:21
17923
3
原创 Transaction rolled back because it has been marked as rollback-only
参考资料:https://blog.csdn.net/paincupid/article/details/77104264 在写循环调用A类的a方法时,由于B类b方法抛出异常(如果是A类自身方法抛出异常不会导致事务回滚导致rollback-only问题) 解决方案:不让b方法抛出异常,b方法自己捕获异常并处理...
2018-07-06 11:46:53
245
转载 MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
原文:http://blog.sae.sina.com.cn/archives/3491INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@163.com', '99999', '9999');&amp;nbsp;这样当有重复记录就会忽略,执行后返回数字0还有个应用就是复制表,避免重...
2018-07-04 16:21:45
363
转载 Mysql 存在既更新,不存在就添加(sql语句)
原文:https://blog.csdn.net/woshihaiyong168/article/details/75082668INSERT 语句的一部分,如果指定 ON DUPLICATE KEY UPDATE ,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE,如果不会导致唯一值列重复的问题,则插入新行sql 语句...
2018-07-04 16:18:38
53692
15
转载 新浪某站CRLF Injection导致的安全问题
原创:https://www.cnblogs.com/studyskill/p/6972576.html新浪某站CRLF Injection导致的安全问题PHITHON 2014 六月 30 06:45 阅读:3714 网络安全 HRS, CRLF, xss...
2018-06-28 12:26:28
2976
原创 在Linux下更新或安装curl
原创:https://www.cnblogs.com/suidouya/p/7387861.html 在Linux下更新或安装curl 问题我这有一个项目是.net core写的,然后运行到centos机器上,刚开始发请求都能正常处理,但是时间长了,程序会报Segmenta...
2018-06-26 11:19:00
5053
查看激活窗口路径.exe
2020-06-12
seguiemj.ttf
2019-08-29
mybatis-generator-core-1.3.2-生成中文注释.zip
2019-07-15
微软雅黑字体文件(服务器可用)-msyh.ttc
2019-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人