当前位置: 首页 > 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);}});}

相关文章:

大厂面试-基本功

大厂面试第4季 服务可用性多少个9是什么意思遍历集合add或remove操作bughashcode冲突案例BigdecimalList去重复IDEA Debugger测试框架ThreaLocal父子线程数据同步 InheritableThreadLocal完美解决线程数据同步方案 TransmittableThreadLocal 服务可用性多少个9是什么意思 遍历集…...

RV1103使用rtsp和opencv推流视频到网页端

参考&#xff1a; Luckfox-Pico/Luckfox-Pico-RV1103/Luckfox-Pico-pinout/CSI-Camera Luckfox-Pico/RKMPI-example Luckfox-Pico/RKMPI-example 下载源码 其中源码位置&#xff1a;https://github.com/luckfox-eng29/luckfox_pico_rtsp_opencv 使用git clone由于项目比较大&am…...

与Bug较量:Codigger之软件项目体检Software Project HealthCheck来帮忙

在软件工程师的世界里&#xff0c;与 Java 小程序中的 Bug 作战是一场永不停歇的战役。每一个隐藏在代码深处的 Bug 都像是一个狡猾的敌人&#xff0c;时刻准备着给我们的项目带来麻烦。 最近&#xff0c;我就陷入了这样一场与 Java 小程序 Bug 的激烈较量中。这个小程序原本应…...

Git --- Branch Diverged

Git --- Branch Diverged Branch Diverged是如何形成的如何解决RebaseMerge Branch Diverged是如何形成的 尝试提交并将更改推送到 master 分支时&#xff0c;是否看到这条烦人的消息 原因是&#xff1a; 直到更改 B 之前&#xff0c;我的分支和“origin/master”完全相同。从…...

go标准库---net/http服务端

1、http简单使用 go的http标准库非常强大&#xff0c;调用了两个函数就能够实现一个简单的http服务&#xff1a; func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) func ListenAndServe(addr string, handler Handler) error handleFunc注册一个路…...

Linux文件和目录常用命令

1.操作命令 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 > 和 >> 管道 | 1.1 终端实用技巧 1>自动补全 在敲出 文件/目录/命令 的前几个字母之后&#xff0c;按下…...

【C++刷题】优选算法——链表

链表常用技巧和操作总结 常用技巧 画图 引入虚拟头节点 不要吝啬空间&#xff0c;大胆定义变量 快慢双指针常用操作 创建一个新节点 尾插 头插 两数相加 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int carry 0;ListNode* newHead new ListNode, *cur newHea…...

Flex和Bison

Flex和Bison是Linux和Unix环境下两个非常强大的工具&#xff0c;分别用于生成词法分析器和语法分析器。它们在编译器设计、文本处理等领域有着广泛的应用。下面我将详细介绍Flex和Bison的基本概念、功能、用法以及它们之间的关系。 一、Flex 1. 基本概念 Flex&#xff08;其…...

Matlab-FPGA 小数转换为定点二进制小数脚本和转coe文件格式脚本

Matlab-FPGA 小数转换为定点二进制小数脚本&#xff1a; % 更新于2023年6月17日&#xff0c;修改旋转因子文件&#xff0c;不修改fpga %首先明确我们的二维FFT的数组维数,此为1024*8的二维矩阵&#xff0c;1024行&#xff0c;8列 column 1024; row 8; nk[]; Ncolumn*row; fo…...

逆向案例二十三——请求头参数加密,某区块链交易逆向

网址&#xff1a;aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1oYW5zL2J0Yy90eC1saXN0L3BhZ2UvNAo 抓包分析&#xff0c;发现请求头有X-Apikey参数加密&#xff0c;其他表单和返回内容没有加密。 直接搜索关键字&#xff0c;X-Apikey&#xff0c;找到疑似加密位置&#xff0c;注意这里…...

CSS 导航栏:设计、定制与优化

CSS 导航栏&#xff1a;设计、定制与优化 CSS&#xff08;层叠样式表&#xff09;是网页设计中不可或缺的一部分&#xff0c;它允许开发者通过定义样式来控制网页的布局和外观。在网页设计中&#xff0c;导航栏是一个关键元素&#xff0c;它帮助用户浏览网站并找到他们感兴趣的…...

JS 如何处理链接被用户点击中键的操作

今天在开发中遇到一个问题&#xff0c;在使用类似Bootstrap中的Tabs组件时&#xff0c;当在tab导航链接点击中键时会打开一个新的窗口访问链接&#xff0c;于是我尝试在别的普通链接上点击中键时也会如此&#xff0c;我猜测这是浏览器的默认行为。 由于我开发的是一个浏览器在…...

Android 11 使用HAL层的ffmpeg库(1)

1.frameworks/av/media目录下面的修改 From edd6f1374c1f15783d9920ebda22ea915e503775 Mon Sep 17 00:00:00 2001 From: GW00219471 <zhumingxingnoboauto.com> Date: Wed, 17 Jan 2024 15:16:10 0800 Subject: [PATCH] ?UTF-8?q?[V35CUX-4542]:E7A7BBE6A48Dcux20E8…...

友力科技数据中心搬迁方案

将当前运行机房中的所有设备、应用系统安全搬迁至新数据中心机房&#xff0c;实现平滑切换、平稳过渡&#xff0c;最大限度地降低搬迁工作对业务的影响。 为了确保企事业单位能够顺利完成数据中心机房搬迁工作&#xff0c;我们根据实际经验提供了4个基本原则&#xff0c;希望能…...

GitHub敏感信息扫描工具

目录 功能设计 技术实现 程序使用 文件配置 下载地址 功能设计 GitPrey是根据企业关键词进行项目检索以及相应敏感文件和敏感文件内容扫描的工具,其设计思路如下: 根据关键词在GitHub中进行全局代码内容和路径的搜索(in:file,path),将项目结果做项目信息去重整理得到…...

Linux云计算 |【第一阶段】ENGINEER-DAY4

主要内容&#xff1a; 配置Linux网络参数、配置静态主机名、查看/修改/激活/禁用网络连接、指定DNS、虚拟网络连接、虚拟机克隆、SSH客户端、SCP远程复制、SSH无密码验证&#xff08;SERVICE-DAY5&#xff09;、虚拟网络类型 一、网络参数配置 修改网卡配置文件主要是需要配置…...

C++与VLC制作独属于你的动态壁纸背景

文章目录 前言效果展示为什么要做他如何实现他实现步骤获取桌面句柄代码获取桌面句柄libvlc_media_player_set_hwnd函数 动态壁纸代码 总结 前言 在当今的数字世界中&#xff0c;个性化和自定义化的体验越来越受到人们的欢迎。动态壁纸是其中一种很受欢迎的方式&#xff0c;它…...

平凯星辰黄东旭出席 2024 全球数字经济大会 · 开放原子开源数据库生态论坛

7 月 5 日&#xff0c;以“开源生态筑基础&#xff0c;数字经济铸未来”为主题的 2024 全球数字经济大会——开放原子开源数据库生态论坛在北京成功举办。平凯星辰&#xff08;北京&#xff09;科技有限公司联合创始人黄东旭发表了题为《TiDB 助力金融行业关键业务系统实践》的…...

Mac OS 下安装 NVM,1秒教会你

1.下载 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash或者wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash 2.安装成功后执行 nvm 提示 command not found 首先查看 ~/.bash_profile 文件是否存在&…...

搭建博客系统#Golang

WANLI 博客系统 项目介绍 基于vue3和gin框架开发的前后端分离个人博客系统&#xff0c;包含md格式的文本编辑展示&#xff0c;点赞评论收藏&#xff0c;新闻热点&#xff0c;匿名聊天室&#xff0c;文章搜索等功能。 点击跳转&#xff1a;Github 项目开源地址 功能展示 B 站…...

算法——滑动窗口(day6)

1004.最大连续1的个数 ||| 1004. 最大连续1的个数 III - 力扣&#xff08;LeetCode&#xff09; 题目解析&#xff1a; 这道题如果能转化为滑动窗口的话就会很简单&#xff0c;因为我们如果尝试去把0翻转为1再计数的话等到第2轮又得重新翻转回来&#xff0c;费时费力~ 那么我…...

推荐一款基于Spring Boot 框架开发的分布式文件管理系统,功能齐全,非常便捷(带私活源码)

前言 在数字化时代&#xff0c;文件管理是企业和个人用户的基本需求。然而&#xff0c;现有的文件管理系统往往存在一些痛点&#xff0c;如存储空间有限、文件共享困难、缺乏在线编辑功能、移动端适配性差等。这些问题限制了用户在不同设备和场景下的文件处理能力。 为了解决…...

Mysql-查询

1.基本查询 //查询所有内容 select * from 表名;//查询指定字段 select 字段1&#xff0c;字段2&#xff0c;字段3.....from 表名;//查询时给字段起别名 select 字段1 as 别名1 , 字段2 as 别名2 ... from 表名&#xff1b;//去重查询 select distinct 字段列表 from 表名; …...

广东科学技术职业学院计算机学院领导一行莅临泰迪智能科技参观交流

7月17日&#xff0c;广东科学技术职业学院计算机学院副院长张军、计算机学院副书记吴国庆、计算机学院大数据教学部部长谢文达、科技与校企合作部副部长黄相杰、科技与校企合作部副部长吴胜兵莅临广东泰迪智能科技股份有限公司产教融合实训基地参观交流&#xff0c;泰迪智能科技…...

exo 大模型算力共享;Llama3-70B是什么

目录 exo 大模型算力共享 exo框架的特点 如何使用exo框架 注意事项 结论 Llama3-70B是什么 一、基本信息 二、技术特点 三、性能与应用 四、未来发展 exo 大模型算力共享 exo框架的特点 异构支持:支持多种不同类型的设备,包括智能手机、平板电脑、笔记本电脑以及高…...

测试——Junit

内容大纲: 常用的五个注解 测试用例顺序指定 参数化 测试套件 断言 1. 常用的五个注解 1.1 Test 通常情况下,我们输入要写在main方法下,此时我想直接输出: Test void Test01(){System.out.println("第一个测试用例"); } 1.2 BeforeAll AfterAll BeforeALL在Tes…...

BUG ImportError: cannot import name ‘QAction‘ from ‘PySide6.QtWidgets‘

BUG ImportError: cannot import name ‘QAction’ from ‘PySide6.QtWidgets’ 环境 PySide6 6.7.2详情 在参考 PyQt5 的代码写 Pyside6 的右键菜单时遇到的错误。 错误代码 from PySide6.QtWidgets import QAction错误原因&#xff1a; 在PySdie6中&#xf…...

对某次应急响应中webshell的分析

文章前言 在之前处理一起应急事件时发现攻击者在WEB应用目录下上传了webshell&#xff0c;但是webshell似乎使用了某种加密混淆手法&#xff0c;无法直观的看到其中的木马连接密码&#xff0c;而客户非要让我们连接webshell来证实此文件为后门文件且可执行和利用(也是很恼火&a…...

Vue3新特性

Vue3新特性 1、Composition API1.1 什么是 Composition API1.2 常用 Composition API1.2.1 setup1.2.2 ref1.2.3 reactive1.2.4 computed1.2.5 watchEffect、watchPostEffect、watchSyncEffect1.2.6 watch 2、生命周期2.1 Vue3生命周期钩子2.2 vue2 和 vue3 关于生命周期的对比…...

一套功能齐全、二开友好的即时通讯IM工具,提供能力库和UI库,支持单聊、频道和机器人(附源码)

前言 在当今数字化时代&#xff0c;即时通讯(IM)和实时音视频(RTC)功能已成为众多应用的标配。然而&#xff0c;现有的解-决方案往往存在一些痛点&#xff0c;如架构落后、成本高昂、数据安全性和隐私保护不足&#xff0c;以及二次开发和部署的复杂性。 为了解决这些问题&…...

做 在线观看免费网站有哪些/注册城乡规划师教材

文|曾响铃 ​来源|科技向令说&#xff08;xiangling0815&#xff09; 最近&#xff0c;知名新经济行业数据挖掘和分析机构iiMedia Research(艾媒咨询)权威发布《2018Q1中国手机音乐客户端季度监测报告》&#xff0c;该报告显示&#xff0c;一季度我国移动端在线音乐用户总规模…...

怎么看网站的建设时间/广告投放数据分析

理解力STM32时钟是我们的应用定时器等的基础&#xff0c;据总结近期工作&#xff1a; 以下是一STM32时钟树&#xff1a; 1.首先注意的的是图中画绿色圈圈的两个&#xff0c;HSE和HSI分别表示外部时钟和内部时钟&#xff0c;当中HSE 是是快速外部时钟。可接石英/陶瓷谐振器&…...

建站之星破解版/百度上做优化一年多少钱

在项目中遇见个功能&#xff0c;有同样的用户id则刷新用户数据&#xff0c;没有则添加数据 刚开始准备写个检测方法&#xff0c;有的话则返回一个对应的实例对象&#xff0c;没有的话则用save直接创建实例对象 class TestUser(models.Model):user_id models.IntegerField(ver…...

网站别人做的上面有方正字体/网络营销简介

当前服务器的主流的品牌华硕&#xff0c;戴尔&#xff0c;联想 每一个品牌两到三种服务器的型号戴尔&#xff1a;PowerEdge T30:&#xff08;型号T30 接口类型SATA cpu1个 内存4G 硬盘500GB&#xff09; PowerEdge R730&#xff08;接口类型SAS cpu2个 内存8GB 处理器主频 1.7…...

网站改版公告/sem优化推广

在Solr中默认是没有中文分析器的&#xff0c;需要手工配置&#xff0c;配置一个FieldType&#xff0c;在FieldType中指定中文分析器。另外&#xff0c;Solr中的字段必须先定义&#xff0c;后使用。 下面分步骤进行操作 第一步&#xff1a;将IK-Analyzer的压缩包上传到solr服务…...

企业网站备案好不好/排名优化价格

1&#xff0c; 应用程序层 顶层中有所有的Android应用程序&#xff0c;包括通讯录、浏览器等&#xff0c;你写的应用程序也被安装在这层&#xff1b;所有的的应用程序都是使用Java语言编写的。 2&#xff0c;应用框架层 这一层主要提供构建应用程序是可能用到的各种API&…...