摘要:
1. Java模块化的发展 osgi是Java动态模块化的标准,对Java的发展起到了推动性的作用,osgi却没有被官方认可【oracle公司想从更底层解决动态模块化面临的问题】。直到Java9中Java原生的模块化才正式上线,对jdk进行了模块化的重构,引入了platformClassloader 阅读全文
摘要:
一、使用场景 在日常开发中,我们经常会遇到需要调用外部服务和接口的场景。外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用 API 接口来获取。重试策略在服务治理方面也有很广泛的使用,通过定时检测,来查看 阅读全文
摘要:
// 1、排除空串 List strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl"); List filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toLis... 阅读全文
摘要:
一、几个 static 方法,它们使用任务来实例化一个 CompletableFuture 实例。 上面的代码确实没什么用,下面介绍几个 static 方法,它们使用任务来实例化一个 CompletableFuture 实例。 runAsync 方法接收的是 Runnable 的实例,意味着它没有返 阅读全文
摘要:
JVM GC算法 CMS 详解(转) JVM GC算法 CMS 详解(转) 前言 CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求 大于对吞吐量的要求 阅读全文
摘要:
1. Mockito 单元测试开发中,我们经常会遇到测试的类有很多依赖的类、对象、资源,从而形成巨大的依赖树,mock可以模拟外部依赖,适应单元测试。 比如我们在开发中很容易出现这种情况: (a)依赖(b)依赖(c)依赖(d) 这种情况下单元测试就变得极其复杂,而且如果需要测试数据库或网络请求返回值 阅读全文
摘要:
package com.alipay.sofa.isle.sample; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Solution { public static ListN... 阅读全文
摘要:
1、serialVersionUID 需要一致 , 不一致会报错 2、serialVersionUID 一致 增加字段 ,不报错 3、serialVersionUID一致 减少字段,不报错 注意: 不显示写serialVersionUID,会以类的特征作为参考。 4、 redis 序列化 增加字段: 阅读全文
摘要:
package com.tianjunwei.rpc; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 全排列 */ public class A { public static void main(String[] args) { In... 阅读全文
摘要:
单聊语音和单聊消息很相似,又有所不同。语音需要处理更多的消息状态,例如:呼叫、接听、取消、超时取消、挂断、拒绝等,还要处理忙线以及第三方语音推送等问题。 阅读全文