随笔分类 - 15.Java/Scala
摘要:本文用一个订单提交的示例,描述了如何在使用虚拟线程时,合理控制执行的并发数,防止把下游资源打爆
阅读全文
摘要:1. cookie有2个版本(version 0与version 1),version 0最早是网景公司定的,比较保守,value值不能有特殊字符,比如 冒号之类的,象 GMT+05:30,在version 0下,取出来,就变成GMT+05,冒号后的:30丢了 2. java中目前支持的是 vers
阅读全文
摘要:最近有1个项目升级到JDK17,里面用到了hbase-client(版本:以1.2.0-cdh5.7.1为基础,公司的大数据同学内部做了一些二次开发 ),启动时发现一直连不上集群,直接报错了,上hbase 官网看了下: 别说JDK 17了,连JDK11都支持不完善,难道把JDK版本又降回去?有点不甘
阅读全文
摘要:背景: 有1个项目,原来是用的mybatis 3.4.6版本,其中有一些插入mapper是这样写的: Integer insertEntitySelectiveShard(@Param("tableSuffix") String tableSuffix,@Param("entity") XXXEnt
阅读全文
摘要:自定义java线程池拒绝策略,实现异常情况的监控埋点
阅读全文
摘要:在国际化的项目中,处理时间时经常会遇到夏令时(BST,British Summer Time)问题,发明夏令时(以及冬令时)主要是为了省电。 冷知识:中国历史上也曾经采用过(1986-1991)夏令时,后来因为各种原因,最终取消了这一制度(参见:https://baijiahao.baidu.com
阅读全文
摘要:字符串及常量池在面试中很容易被问到,前2天在为公司做校招面试时,发现很多同学对相关细节不太清楚,在此梳理一下: 先回顾一下java中字符串的设计,大家都知道jvm中有所谓的"字符串常量池"设计,当String s = "xxx"时,会先检查常量池中有没有,如果没有则加入常量池(缓存起来),下次再遇到
阅读全文
摘要:日常开发中,经常用org.apache.commons.lang3.builder.ToStringBuilder工具类来记录日志,比如: package com.cnblogs.yjmyzz; import org.apache.commons.lang3.builder.ToStringBuil
阅读全文
摘要:直接开干吧,假设有这么一个类: @Data @AllArgsConstructor class BeanSample { public Calendar birthday; @Override public String toString() { if (birthday == null) { re
阅读全文
摘要:所有负载均衡的场景几乎都会用到这个算法:假设有2个服务器A、B,其中A的分配权重为80,B的分配权重为20,当有5个请求过来时,A希望分到4次,B希望分到1次。 一个很自然的想法:A-A-A-A-B ,按权重顺序依次分配,同时计数,每分配1次,计数减1,减到0后,再分配『次权重』的服务器。 看上去好
阅读全文
摘要:如上图,先初始化1个图,每条边上的红色数字为路径权重:(Node,Edge的定义参见算法练习(17)-图的广度优先遍历/深度优先遍历) Graph init() { List<Node> nodes = new ArrayList<>(); List<Edge> edges = new ArrayL
阅读全文
摘要:如上图,假设有一个大型代码工程,里面有5个模块: 模块1依赖模块2 模块2依赖模块3和模块5 模块3依赖模块4和模块5 那么,项目在编译时,应该按怎样的的顺序编译? 这就是所谓的拓扑排序问题 就这个示例而言,显然正确的编译顺序是:5->4->3->2->1 或 4->5->3->2->1 (注:4与
阅读全文
摘要:思路:依旧还是层次遍历, 按层入队, 然后出队时, 交换左右节点
阅读全文
摘要:二叉树的节点结构如下: public class TreeNode { public TreeNode left; public TreeNode right; public int val; public TreeNode(int val) { this.val = val; } public T
阅读全文
摘要:在一些文学作品中,大家想必接触过回文诗,比如:“雾窗寒对遥天暮,暮天遥对寒窗雾”或“垂帘画阁画帘垂”,即:正着念反着念完全一样。回文单链表跟这个类似,比如: 0-1-2-1-0或0-1-1-0,很容易发现规律:可以找到一个对称轴,将链表分为前后二段,并且前后对折起来,完全重合。 为了方便,先定义单链
阅读全文
摘要:本文讲述了如何使用开源项目pkts-sip对SIP进行解析,以及如何扩展
阅读全文
摘要:本文主要探讨了snowflake(雪花算法)使用中,如何合理设置workerId的问题
阅读全文
摘要:先准备几个类,方便后面讲解: public final class FinalSampleUtils { public static String foo() { return "aaa"; } public static String bar(String a) { return "bar:" +
阅读全文
摘要:在实时数据处理的场景中,数据的到达延时或乱序是经常遇到的问题,比如: * 按时间顺序发生的数据1 -> 2,本来应该是1先发送,1先到达,但是在1发送过程中,因为网络延时之类的原因,导致1反而到达晚了,变成2先到达,也就造成所谓的接收乱序; * 发送方本身就延时了,比如:事实上按1 -> 2产生的数
阅读全文
摘要:CompletableFuture是java8引入的一个很实用的特性,可以视为Future的升级版本,以下几个示例可以说明其主要用法(注:示例来自《java8实战》一书第11章) 一、引子:化同步为异步 为了方便描述,假设"查询电商报价"的场景:有一个商家Shop类,对外提供价格查询的服务getPr
阅读全文