面试题总结

linux命令
ps -ef | grep java | awk ‘{print $1}’
替换sed ‘s/a/b/g’ file.txt
计算第二列的和
cat file | awk ‘{ sum += $2} END {print sum}’
包含error的行数:
cat file | grep error | wc -l
统计前10单词:
cat file | sort | uniq -c | sort -k 1nr | head -10
内存前5
ps -aux | sort -k4nr | head -5

数据库
是否使用了索引:explain的key值
死锁:
事物A,B循环请求
分页:
select * from student limit(curPage-1)*pageSize,pageSize;

事务:
https://www.runoob.com/mysql/mysql-transaction.html
BEGIN;
INSERT INTO classes(id,title) VALUES(8,‘ENGLISH’);
UPDATE classes SET title=‘11’ WHERE id=3;
COMMIT;
乐观锁:先改,提交的时候再检查版本。乐观锁并未真正加锁,效率高。一旦锁的粒度掌握不好,更新失败的概率就会比较高,容易发生业务失败。

悲观锁:先锁再修改,依赖数据库锁,效率低。更新失败的概率比较低。

sql优化:

  1. 不要查询多余的数据:指定列
  2. 命中索引:组合索引的左,like ‘ab%’,
  3. 缓存redis
  4. 中间表
    https://blog.csdn.net/weixin_44504146/article/details/92737613?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

网络
线程 进程区别
进程间通信方式:
管道、消息队列、套接字
tcp udp区别:
tcp面向连接,udp无连接
tcp数据完整,udp不可靠
tcp一对一,udp可以多对多
tcp资源要求多,udp更快
http和https区别:
https基于secure socket layer的http
身份认证:CA证书
完整性:内容校验
私密性:加密传输
在浏览器中输入一个网址后的全过程:
解析域名的IP地址(在浏览器缓存或hosts或DNS服务器查找)
发起连接请求,TCP三次握手
发送HTTP请求信息
接受服务器返回的数据并渲染到页面
断开TCP连接,四次挥手
https://blog.csdn.net/weixin_30376083/article/details/95320106
常见的状态码:
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效响应
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取响应

测试
测试朋友圈
app和web测试区别:
https://blog.csdn.net/Bee_AI/article/details/86484692?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158571339919195239817670%2522%252C%2522scm%2522%253A%252220140713.130056874…%2522%257D&request_id=158571339919195239817670&biz_id=0&utm_source=distribute.pc_search_result.none-task

接口测试
第三方接口没有准备好? mock方法
get post区别
restful api:
看Url就知道要什么
看http method就知道干什么
看http status code就知道结果如何
https://blog.csdn.net/qq_27026603/article/details/82012277?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

性能测试
最大压力值

python
深拷贝浅拷贝区别

算法:
反转链表
堆排序

大文件问题:(hash分解成小文件,归并)
有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词。

Step1:顺序读文件中,对于每个词x,取hash(x)%5000,然后按照该值存到5000个小文件(记为f0,f1,…,f4999)中,这样每个文件大概是200k左右,如果其中的有的文件超过了1M大小,还可以按照类似的方法继续往下分,直到分解得到的小文件的大小都不超过1M;
Step2:对每个小文件,统计每个文件中出现的词以及相应的频率(可以采用trie树/hash_map等),并取出出现频率最大的100个词(可以用含100个结点的最小堆),并把100词及相应的频率存入文件,这样又得到了5000个文件;
Step3:把这5000个文件进行归并(类似与归并排序);
https://zhuanlan.zhihu.com/p/24383239

app闪退原因:

  1. 空指针
  2. 数组跨界
  3. 内存溢出
  4. 内存泄露

线性表、链表区别
存储:连续,不连续
时间:查找、插入删除
空间:预分配,不需

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值