记录趋势科技第一次面试
大概记录一下我的问题,因为是项目,每个人不一样,所以参考意义可能不是太大。记一些能想起来的,还有些忘了。
-
老家是xx的,为什么会想到来南京?
-
想往哪方面发展,你熟悉的技术。
-
看你有两个项目,挑一个比较熟悉的讲吧。
-
噩梦开始!
-
我大概讲了一下项目(烂秒杀),问用到的技术,怎么用的?
-
怎么解决超卖问题?(Redis的list存商品id,Set存确权用户id)
-
然后开始死亡场景题,比如有用户抢到了,但不买,怎么操作,还有几道比较难的,忘了..只是针对Redis部分
-
RabbitMQ怎么用的,然后开始场景题..顶不住,如何保证消息不被重复消费?(说了数据库唯一主键进行约束,还说了用redis存全局ID).
-
如果消费者丢数据怎么解决?(我说了个消息手动确认,记得当时写项目的时候用到了这个)
-
然后问我什么是手动确认?是手动确认的吗?(我说不是,我通过springboot设置了消息确认模式为手动)那为什么不叫自动确认?(好吧,我没有细看这一点..)
-
你的消息是有序的吗?(我说入队的时候保持有序,出队的时候用失败重试机制)
-
Nginx怎么用的?(访问页面,代理,负载均衡)
-
CDN 怎么用的?(在对象存储里放了静态资源,前端资源地址换url)
-
CDN 贵不贵?(项目没上线,根据流量计费,不花一分钱,哈哈哈(尬笑))
-
Redis 的 ttl 特性做了什么功能(流量防刷,反爬虫),具体怎么实现的(用户访问计数器+1,超过30次,禁止访问,超过一百次,加黑名单),有效期怎么体现?(到期删除key),时间设置了多久?(已经忘了,随口来个半小时),又问你这半小时刷30次,还没等他问完,我就想起来多久了,又说上一个问题是一分钟。又问那我访问29次呢?(我直接黑人问号,不讲武德,说不知道)。
-
然后开始问我第二个项目中的东西,可能看我项目比较水,没啥好问的了。
-
我看你还用了ThreadLocal 怎么用的?(存了数据库连接对象),你整个项目功能都是单线程,为啥要用多线程?(我说我用了Druid数据库连接池),ThreadLocal 有啥缺点吗?(内存泄漏,key弱引用, value强引用,GC不了value)
-
看你笔试题写了一道出来,说说你的思路吧(直接原地去世了,忘得什么也不知道了,只记得当时拿贪心做的,让我讲一下思路,我当时已经被怼了四十几分钟,怼傻了,脑子都不好使了,根本想不动,只能说实在想不起来了)
-
想起来,还问了我数据库的操作,多表查询,左连接,右连接,等值连接,区别?(没复习数据库,想不起来了已经,就想起来一点儿答了上去),让你实现查询出两个表的并集怎么查?(不太会,我直接上去就把两个表需要的字段全给他查了)然后问用什么关键字?(没复习这属实拉跨,根本想不起来,查了一下是 UNION)。
- 最后另一个面试官问了我一个问题,问我项目压测怎么用的(线程设置,csv文件编写,大概给他说了一下),又问怎么绕过你的防刷的(我一下愣住了,对哦我不是有防刷呢嘛,怎么搞的,给我整不会了,就说了没考虑到)面试完了才想起来,我压测的时候,我没写防刷呢还,直接原地去世了。
- 反问:1.公司主要搞安全,那Java有什么业务呢?2.技术栈?3.对新人的培养?
觉得真的挺难的,本菜鸡被问傻了。但有个好处就是,让你对你的项目有个更加熟悉的过程,这还是很好滴,让我也知道了我还需要怎么补知识,salute。
全部评论
(14) 回帖