当前位置: 首页 > news >正文

大厂面试-基本功

大厂面试第4季

  • 服务可用性多少个9是什么意思
  • 遍历集合add或remove操作bug
  • hashcode冲突案例
  • Bigdecimal
  • List去重复
  • IDEA Debugger
  • 测试框架
  • ThreaLocal
  • 父子线程数据同步 InheritableThreadLocal
  • 完美解决线程数据同步方案 TransmittableThreadLocal

服务可用性多少个9是什么意思

在这里插入图片描述

遍历集合add或remove操作bug

并发修改异常
在这里插入图片描述

hashcode冲突案例

属于Object类方法
在这里插入图片描述

一般10万次左右,才会出现hash冲突

Bigdecimal

在这里插入图片描述
https://my.oschina.net/u/3644969/blog/4927776

List去重复

  1. HashSet
  2. LinkedHashSet(去重复同时可以保证原有顺序)
  3. 双指针去重
    在这里插入图片描述

IDEA Debugger

在这里插入图片描述
显示当前执行断点

在这里插入图片描述
Step Over 一步步过
Step Into 步入
Force Step Into 强制步入

在这里插入图片描述
运行到光标代码行

  1. 流式计算调试

在这里插入图片描述

  1. 调试方法入栈(生产 慎重)
    在这里插入图片描述
  2. return 断点调试
    在这里插入图片描述
  3. BreakPoint
    在这里插入图片描述

测试框架

在这里插入图片描述
测试:

  1. 多些全功能覆盖各种情况的Case
  2. 边界条件
  3. 极值判断
  4. 入参相同、不同
  5. 抛出异常
  6. 全部分支条件
  7. 压测
    在这里插入图片描述
    在这里插入图片描述
    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

<dependency><groupId>com.alibaba</groupId><artifactId>transmittable-thread-local</artifactId><version>2.14.3</version></dependency>
@Testvoid main() {TransmittableThreadLocal<String> 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);}});}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【LLM】-05-提示工程-部署Langchain-Chat
  • 如何理解React State不可变性的原则
  • 计算机网络发展历史
  • matlab永磁同步电机反馈试验装置的设计和永磁同步电机仿真
  • 【测开能力提升-fastapi框架】fastapi能力提升 - 中间件与CORS
  • TDengine 3.3.2.0 发布:新增 UDT 及 Oracle、SQL Server 数据接入
  • 在 Ubuntu 22.04/20.04 安装 CVAT 和 SAM 指南
  • Mysql sql技巧与优化
  • Linux环境下MongoDB安装与主从集群,高可用集群配置教程
  • Training for Stable Diffusion
  • SQL labs靶场-SQL注入入门
  • Linux openEuler_24.03部署MySQL_8.4.0 LTS安装实测验证安装以及测试连接全过程实操手册
  • 向量化操作
  • ELK企业级日志分析
  • Docker安装nacos(详细教程)
  • 【译】JS基础算法脚本:字符串结尾
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Netty 4.1 源代码学习:线程模型
  • node 版本过低
  • PHP面试之三:MySQL数据库
  • Python十分钟制作属于你自己的个性logo
  • rc-form之最单纯情况
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Unix命令
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • zookeeper系列(七)实战分布式命名服务
  • 爱情 北京女病人
  • 创建一种深思熟虑的文化
  • 大整数乘法-表格法
  • 深度学习入门:10门免费线上课程推荐
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​Redis 实现计数器和限速器的
  • ​批处理文件中的errorlevel用法
  • ​一些不规范的GTID使用场景
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $.proxy和$.extend
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (层次遍历)104. 二叉树的最大深度
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (一)u-boot-nand.bin的下载
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET值类型变量“活”在哪?
  • .Net中ListT 泛型转成DataTable、DataSet
  • .NET中使用Protobuffer 实现序列化和反序列化
  • ::前边啥也没有
  • @Transaction注解失效的几种场景(附有示例代码)
  • [100天算法】-实现 strStr()(day 52)
  • [20161214]如何确定dbid.txt
  • [AIGC] 解题神器:Python中常用的高级数据结构
  • [Android]使用Retrofit进行网络请求