java高级开发面试(腾讯面试经)

217 阅读3分钟

紧张的准备了一个多月,终于拿到最想要的offer啦!这一个多月刷了挺多题,也看了许多笔经面经

复习过程

  • 项目准备;
  • leetcode:刷完剑指之后每天会刷2-4道leetcode
  • java基础: 主要刷面经、重点掌握垃圾回收机制
  • 操作系统: 之前没学过,用几天时间看了一下最重要的进程线程、死锁、消费者生产者、哲学家问题、银行家算法
  • 计算机网络:花几天时间复习了一下,重点复习tcp(三次握手四次挥手拥塞控制流量控制)、udp、https
  • 数据库: 重点了解了索引的实现以及引擎的区别
  • 数据结构和算法: 主要通过剑指offer和leetcode进行复习
  • 其他:期间也做过大大小小好几次笔试,还有一些往届练习卷

腾讯

一面(2.13电话面)

  1. 自我介绍
  2. 介绍项目以及项目遇到的难点
  3. java的hashmap是否安全?hashmap、hashtable、concurrenthashmap的区别、底层和实现
  4. mysql索引的底层实现
  5. jvm垃圾回收机制
  6. tcp、udp区别和适用场景
  7. tcp三次握手、四次挥手,为什么挥手不能只有三次
  8. 线程和进程的区别
  9. 进程通信的方式有哪些
  10. 堆是线程共有还是私有,堆是进程共有还是私有,栈呢
  11. 了解过协程吗(我:携程???不了解呜呜呜)
  12. mysql查询优化
  13. 快速排序的时间复杂度、原理(口述算法)
  14. 最近在看什么书
  15. 除了腾讯还投了其他的公司吗
  16. 问我愿不愿意转go,并推荐我了解一下协程,最后让我耐心等待,面试的人太多,需要对面试的同学进行挑选,两周内会告知我结果
  17. 有什么想问的(对我的评价和学习建议)

二面(2.22现场面)

  1. 自我介绍
  2. 问我为什么发现自己不喜欢做客户端(简历中有一个安卓实习项目)而想做后台
  3. 介绍项目(一个电商小程序)
  4. 项目中的商品是否有考虑过xxx(忘记叫什么了,意思就是是否有考虑过同一种商品有不同的颜色、规格,在数据库中如何区分这些不同)
  5. 介绍项目的支付流程,并画一下流程(白板)
  6. 介绍一下订单状态码的含义,以及交易过程中订单状态码如何变化
  7. 如何防止商品的超卖现象
  8. 项目是否具有秒杀功能
  9. 并发的时候,如何保证性能
  10. 在分库之后,如何设计id
  11. 在分库后,一条插入请求,在上层不做处理,如何直接在数据库找到相应的库并插入库中的某个表
  12. 当服务器的cpu一直很高时,如何找出原因
  13. 是否用过调试工具
  14. 当项目一直无法访问的时候,如何定位错误
  15. 介绍一下aop和ioc
  16. 如何将一个ip地址由点分制(xxx.xxx.xxx.xxx)和int类型间进行相互转化
  17. 如何判断一个数是否为2的n次方
  18. 可实习时间

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

Mybatis源码解析

- - 详细Vx关注公众号:Android老皮