快速做效果图的网站叫什么软件,wordpress不使用ip访问,wordpress图片推荐插件,兰州网站建设王道下拉強大厂面试第4季 服务可用性多少个9是什么意思遍历集合add或remove操作bughashcode冲突案例BigdecimalList去重复IDEA Debugger测试框架ThreaLocal父子线程数据同步 InheritableThreadLocal完美解决线程数据同步方案 TransmittableThreadLocal 服务可用性多少个9是什么意思 遍历集… 大厂面试第4季 服务可用性多少个9是什么意思遍历集合add或remove操作bughashcode冲突案例BigdecimalList去重复IDEA Debugger测试框架ThreaLocal父子线程数据同步 InheritableThreadLocal完美解决线程数据同步方案 TransmittableThreadLocal 服务可用性多少个9是什么意思 遍历集合add或remove操作bug
并发修改异常
hashcode冲突案例
属于Object类方法
一般10万次左右才会出现hash冲突
Bigdecimal https://my.oschina.net/u/3644969/blog/4927776
List去重复
HashSetLinkedHashSet(去重复同时可以保证原有顺序)双指针去重
IDEA Debugger 显示当前执行断点 Step Over 一步步过 Step Into 步入 Force Step Into 强制步入 运行到光标代码行
流式计算调试 调试方法入栈生产 慎重 return 断点调试 BreakPoint
测试框架 测试
多些全功能覆盖各种情况的Case边界条件极值判断入参相同、不同抛出异常全部分支条件压测 BeforeEach:每个测试方法前执行 AfterEach每个测试方法后执行
AfterAll修饰静态方法前执行一次 BeforeAll修饰静态方法后执行一次
MockBean 模拟数据
SpringBootTest
public class TestA {MockBeanTestController testController;Testvoid saveTrain() {when(testController.test()).thenReturn(AAAOK);String test testController.test();System.out.println(test);}
}SpyBean 如果有when则使用规则无when则调用真实数据接口
SpringBootTest
public class TestA {SpyBeanTestController testController;Testvoid saveTrain() {
// when(testController.test()).thenReturn(AAAOK);String test testController.test();System.out.println(test);}
}ThreaLocal
线程局部变量
父子线程数据同步 InheritableThreadLocal
可以在子线程获取父线程InheritableThreadLocal 的数据 如果新键线程可以直接获取对于线程池中的复用线程可能获取父线程的旧数据
完美解决线程数据同步方案 TransmittableThreadLocal
dependencygroupIdcom.alibaba/groupIdartifactIdtransmittable-thread-local/artifactIdversion2.14.3/version/dependencyTestvoid main() {TransmittableThreadLocalString transmittableThreadLocal new TransmittableThreadLocal();ExecutorService threadPool Executors.newSingleThreadExecutor();threadPool TtlExecutors.getTtlExecutorService(threadPool);transmittableThreadLocal.set(hello main);threadPool.submit(new Runnable() {Overridepublic void run() {String s transmittableThreadLocal.get();Console.log({} {}, Thread.currentThread().getName(), s);}});transmittableThreadLocal.set(hello haha);threadPool.submit(new Runnable() {Overridepublic void run() {String s transmittableThreadLocal.get();Console.log({} {}, Thread.currentThread().getName(), s);}});}