1.笛卡尔乘积SQL 联合查询表格,表1有5个记录,表2有3个记录,5*3种选择。 避免方法:连接时添加 连接的key
2.冒泡排序 public static void bubbleSort(int[] arr){ for (int i = 0; i < arr.length; i ){ for (int j = 0; j < arr.length - 1 - i; j ){ if (arr[j] > arr[j 1]){ int tmp = arr[j]; arr[j] = arr[j 1]; arr[j 1] = tmp; } } } }
3.有7g,2g一个砝码,一个平衡,如何只用这些物品三次140g的盐分成50g,90g各一份?
没有砝码,将 140 g 盐分为天平 70g 70g 没有砝码,将 70 g盐分为天平 35g 35g 用天平拿一份 35g 盐分为 20g盐 2g砝码 = 15g盐 7g砝码 将 20g与 70g盐合在一起 90g,剩下的是 50g
4.计算机没有网络的可能原因
硬件: 网线、网口端、路由器、交换机、光猫、运营商
软件:网卡,驱动,IP冲突、DNS、网站本身的原因(无续租)、浏览器、浏览器代理、宽带账号、宽带配置等。
5.5L、7L水杯取得6L水 第一步把5L装满倒空7的水杯L杯中(也可以装2L); 第二步再把5L装满水杯倒7L杯中,倒了2L后满了,5L杯中还剩3L水; 第三步清空7L水杯,把5L剩下的3个水杯L水倒入7L杯中(也可以装4L); 第四步把5L装满水杯倒7L杯中,倒了4L后满了,5L杯中还剩1L水; 第五步清空7L水杯,把5L水杯剩下的1L水倒入7L水杯中; 第六步再把5L装满水杯倒7L杯中,这时7L水杯中就是6L的水了。
6.C和C 区别为 结构不同:C语言结构只有成员变量,没有成员方法 设计不同:C 更基于对象的程序设计 函数库不同:C 紧密的集体
7.http工作原理 客户端和服务端的连接模式 建立在tcp三次握手,四次挥手 一次性链接 无状态协议 http请求方法9种,常见的是post、get 端口80
8. 301 redirect: 301 代表永久性转移(Permanently Moved) 302 redirect: 302 代表临时转移(Temporarily Moved ) 304 服务端已经实施GET,但文件没有变化 网站调整(如改变网页目录结构) 网页被移到新地址
9.求质数
// 定位userid(select、group )>> >> >> >> select ( select client_id, count(client_id) in (select client_id, count(client_id)) group client_id ) left join
///是否分析了性能测试中遇到的问题的原因 //数据库的表类型(基本表、虚拟表、导出表) //内部类和子类(结构不同,访问权不同) //python元组和数组的区别(结构相同,元组不能更改) //python实现string、int互转(string > int :int()、 str()) //使用的中间件
10.挑苹果
平均有100个苹果,分为10个篮子,其中每个篮子都是0.5公斤,其他九筐中的每个均为0.55公斤, 给你一个名字,让你区分哪个篮子里的苹果是0.5公斤?
10篮1-10,1篮1,2篮2...10号拿10个, 一起称得为X,(0.55*55-X)/0.05总数为0 .5公斤苹果所在的框数
11.各类型值与0比较
布尔变量不能直接与布尔变量和TRUE、FALSE或者比较1、0 应当将整型变量用 “==”或“!=与0直接比较 浮点变量不能使用 “==”或“!=与任何数字进行比较
12.造成TPS波动原因分析 1)代码程序原因: 定时器任务、容器、索引重置、业务规则(如排队、一秒只处理10个请求等) 硬盘定期写入: 2)日志写入,redis持久性,磁盘被占用,无法提供服务 3)服务分布式部署,负荷平衡
13.造成TPS曲线毛刺 1)网络波动 2)活锁 3)服务挂了 4)限制黑白名单
13.判断字符串是否正确IP格式 114.114.114.114
方法一; public boolean make(string s){ int len = s.length(); int cntdot = 0; for (int i = 0; i < len; i ){ if (s.charAt(i) - '0' == '.' || (s.charAt(i) - '0' < '0' && s.charAt(i) - '0' > '0')) return false; if (s.charAt(i) - '0' == '.') cntdot ; } if (cntdot != 3) return false; String[] list = s.split("."); if (list.length != 4) return false; for (string str : list){ if (str.charAt(0) - '0' == '0') return false; int num = String.valueOf(str); if (num > 255 || num < 0) return false; } return true; }
方法二: public boolean make(string s){ int len = s.length(); int cntdot = 0; for (int i = 0; i < len; i ){ if (s.charAt(i) - '0' == '.' || (s.charAt(i) - '0' < '0' && s.charAt(i) - '0' > '0')) return false; if (s.charAt(i) - '0' == '.') cntdot ; } if (cntdot != 3) return false; StringBuffer sb = new StringBuffer; for (int i = 0; i < len; i ){ (s.charAt(i) - '0' == '.' && s.charAt(i 1) - '0' == '.') return false; if (s.charAt(i) - '0' == '.') continue; while (s.charAt(i) - '0' >= '0' && s.charAt(i) - '0' <= '9'){ sb.append(s.charAt(i)); i++; } int num = Integer.valueOf(sb.tostring()); if (num > 255 || num < 0) return false; else sb = new StringBuffer; } return false; }
//MySql数据库主键及索引的区别 范围主键 < 索引 ,主键一定是唯一性索引,唯一性索引并不一定就是主键 一个表中可以有多个唯一性索引,但只能有一个主键 主键列不允许空值,而唯一性索引列允许空值
//GC中如何判断对象是否需要被回收? 可达性分析算法(ROOT搜索引用链)、引用计数算法
//抖音短视频切换出现闪退原因 缓存垃圾过多、运行程序过多、系统(app)版本不兼容、网络原因、杀毒拦截等
//redis持久化方式 redis是一个内存数据库,数据保存在内存中(容易丢失)持久化的机制, 分别是RDB(Redis DataBase)和AOF(Append Only File) RDB数据以快照的形式保存在磁盘上
redis大key 1:单个简单的key存储的value很大 2:hash, set,zset,list 中存储过多的元素(以万为单位) 3:一个集群存储了上亿的key,Key 本身过多也带来了更多的空间占用
快排
public class Solution {
public static void quickSort(int[] arr){ quickSort(arr,0,arr.length-1); System.out.println(Arrays.toString(arr)); } public static void quickSort(int[] arr,int left,int right){ int middle; if(left < right){ middle = partition(arr,left,right); quickSort(arr,left,middle-1); quickSort(arr,middle+1,right); } }
public static int partition(int[] arr,int left,int right){ int pivot = arr[left]; while(left < right){ while(left<right && arr[right] >= pivot) right--; arr[left] = arr[right]; while(left < right && arr[left]<= pivot) left++; arr[right] = arr[left]; } arr[left] = pivot; return left; } }
有没有你印象最深刻的BUG? 提交bug是怎么发现的?bug主要来源是什么? 最复杂的模块是啥?
pytest原理?
https://juejin.cn/post/6977171333922684958
elasticsearch效率为何比数据库高? https://blog.csdn.net/weixin_42105169/article/details/112221100
ES 是基于Lucene(卢森)的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的索引数据,相对于 MySQL 来说不擅长经常更新数据及关联查询 倒排索引(全文索引),查找每个词条(分词)出现的位置和频率,并按照词条顺序归纳为文件(就是索引),这样查找某个词时就很快定位到其出现的位置
kafka原理? https://segmentfault.com/a/1190000018373144
类似组件:rabbitMQ、activeMQ、rocketMQ
在Kafka中的每一条消息都有一个topic。一般来说在我们应用中产生不同类型的数据,都可以设置不同的主题。 一个主题一般会有多个消息的订阅者,当生产者发布消息到某个主题时,订阅了这个主题的消费者都可以接收到生产者写入的新消息
消费模型有两种:推送模型(psuh)和拉取模型(pull)
pytest和unittest的区别 1.uninttest是python的官方库,兼容性稍好。 pytest在安装时可能会出现和python版本不匹配的问题
2.uninttest在编写用例时是以类的形式编写的,并且都要继承testCase, pytest当中支持函数和类两种编写形式, 并且pytest有conftest.py这个文件来支持全局的共享前置后置
3.在用例收集上,uninttest要利用testloader和testsuite来主动收集和加载用例,而pytest能够自动识别用例
4.在用例分类筛选上uninttest稍显麻烦,而python可以通过打标签轻松筛选用例
5.如果运行失败的话,uninttest官方没有提供失败重启的机制,而pytest自带失败重启的机制。
6.在运行结构方面,uninttest没有支持插件,而pytest中有700多个插件可以支持
JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个开源的单元测试框架。它属于白盒测试,只要将待测类继承 TestCase 类,就可以利用 JUnit 的一系列机制进行便捷的自动测试了。