时间2024.8.26 10-11.40
本来是上周五的,但面试官有事,被调到这周一,和一面隔了快一周,以为基本上走流程,面完下午看状态应该是过了,等约三面
1.自我介绍
2.coding
- 最大和连续子数组
- 一个文件里一行有一个8位的电话号,很多文件,数据大到内存无法容纳,如何统计不同电话号出现的次数?
先说思路,文件分块读,单纯统计哪些出现→用set,因为电话号范围是00000000-99999999共10^9个数,int型可以容纳,根据os不同int所占大小不同,这里取32位,即4B,一共可能有10^8大小,因此set最大4*10^8B≈400MB。如果考虑统计次数,用map,为了简化我们的统计,key是号码仍然用int,多的就是val的大小,事先如果已知出现次数的范围,用int或者long计数,int则在set基础上多一倍,800MB,lomg这里假设是int两倍,则1.2GB。
面试官提到像一些单片机和一些简单的设备,内存还是太多了,用一些基础的结构?想到了bitmap,号码是多少就把第几位变成1。大小就只需要10^8bit≈125*10^5B≈12.5MB。那如果考虑需要统计多少次呢?那就用连续的几位来进行二进制加法计数,比如次数不超过255就连续8位表示次数,空间需要12.5*8=100MB,以此类推。
那就实现一下最初说的Map方法吧,进行了coding
3.刚刚的hashmap如果在累加过程中,val的Integer溢出,map会有什么处理吗(我记得没有,会抛出异常,所以我catch了)
4.java注解的原理和用途
5.假设我是一个不懂java的人,怎么给我介绍java aop
6.反射了解吗,是java的特性的话,c++有反射吗,反射和黑客所说的hook,钩子有关系吗
7.redis为什么快(传统八股)
8.redis怎么保证数据安全的,会发生丢失吗
9.如果数据过大,redis性能会不会受限,接近mysql
10.关系型数据库和非关系型数据库的区别联系
11.mysql你是怎么学的
12.mysql主从复制分类和原理
13.mysql除了binlog,还有其他的吗,什么作用
14.执行sql语句过程是什么,binlog,redolog这些什么时候写
15.binlog具体作用是什么
16.如果现在有一台主一台备,采用半同步复制,必须要binlog吗,如果没有备呢
17.秒杀系统,redis作用,如果并发几十万,库存10,如何设计,怎么扛得住并发,而且不超卖(这里确实有点问题,回答偏了,答到先放部分库存容错,后续再开一次秒杀了)
18.本科学过密码学吗,有哪些加解密算法,RSA的用途是什么,为什么要存密码用AES,可以看看目前业界的方式,主要是不存储密码了。
19.这边是做财付通的,有问题没,base地,以及是倾向于AI还是纯后台开发,都可以选
20.实习内容,目前手里的offer,实习转正吗
整体感觉非常舒服,很尊重人,一直在给予反馈和引导,也没pua,大概是一个40左右的哥,体验非常好,整体100分钟,很累,下午看已经通过,等约面。
#后端# #秋招# #2025#
#腾讯# #腾讯秋招#