腾讯1面
腾讯一轮面经 20181016
-
自我介绍
- 基础知识储备
- 学业、项目、实习
- 课余生活
-
java基础
- HashMap原理介绍
- 宏观(数据结构和编程语言层面)
- 微观(具体HashMap的实现)
- 底层数据结构
- 扩容
- HashMap原理介绍
-
同步异步
- 同步阻塞和异步非阻塞的性能比较
- 同步阻塞和异步非阻塞的区别?
-
场景题
- 在高速公路上,假设每10min,就能看到一辆车通过的概率为97%,同时假设所有的车流量是匀速、稳定的。求解30min内至少看到一辆车的概率为多少?
- 解决方案:采用反面考虑该问题,30min内没有看到一辆车的概率为p=3%3%3%,所以本题的答案为1-p
- 两个人玩游戏,游戏场景如下:在一个圆桌上,摆放硬币,当一方无法在放下硬币时,结束游戏,对方获胜。(圆桌至少可以放置下一个硬币)求解是否存在先手必胜的策略
- 自己的思路:先手第一次放的硬币的位置为圆桌的中心,以后存放仍然按照剩余空间两段弧长的中心放置硬币,貌似没有必胜的策略
- 面试官给的提示:先手第一次放置的策略同上,以后每次放置的位置是通过对方放置后的位置,然后找其关于圆心的对称点进行放置,这种策略下是必胜的策略。
- 场景如下:现在在网上有一个购买虚拟课程的需求,目前已有的实现是:从前台提交订单付款,到后台处理数据,记录状态,发货,给客户发通知,这些一系列的操作是串行执行的。请问如何对该场景进行优化、解耦
- 串行执行可能带来阻塞(用户体验不太好)
- 事务的控制
- 在高速公路上,假设每10min,就能看到一辆车通过的概率为97%,同时假设所有的车流量是匀速、稳定的。求解30min内至少看到一辆车的概率为多少?
-
算法题
-
给定1~n n个连续的正整数,然后在文件中存储n+1个数,取值范围在1~n闭区间中,其中只有一个数重复出现一次,找出重复出现的该数(simple)
- 解决方案:采用数学解,通过等差数列求和求解,时间复杂度O(n)
-
上题的前半部分题目不变,后面条件改变为存储的n+1个数中,有多个重复的数,全部找出来重复的数,n很大很大(42亿)。(hard)
- 解决方案:采用bitmap求解(附带问题42亿需要多大的bitmap存储空间?)
-
-
设计模式
- 装饰者设计模式
- 简单介绍其jdk中的使用场景
- 举个简单的业务使用场景
- 装饰者设计模式的思想是继承还是组合?(组合)
- 单例设计模式
- 手写单例模式实现
- 懒汉式、synchronized(方法级别锁)
- 双重锁(优化1)
- 静态内部类(优化2)
- 装饰者设计模式
-
Spring框架
- what what is Spring?
- why why do you use Spring in your projects?
- how How to use Spring and which modules use in projects?
- IOC
- AOP
- 声明式事务
- JdbcTemplate(持久层)
-
redis
- 五种数据结构 string,hash,set,list,zset.
- zset的底层实现
- redis的两种持久化方式
- 实现分布式锁set nx ex
-
面试官建议
- 考虑在正式入职之前,到公司实习增强自身的能力
- 关注前沿技术
-
还有什么要问的
- 能否介绍下面试官您所在的部门的核心业务?(搜索和推荐)