2021Java面经:java封装的概念

前言

这几年在Java工程师招聘时,会看到很多人的简历都写着使用了Spring Cloud做微服务实现,使用Docker做自动化部署,并且也会把这些做为自己的亮点。而比较有趣的这其中以小公司出来的人为绝大多数,大的公司出来的人简历上倒是很少提这些东西。

对于我自己来说,从15年就开始关注这一块,看过马丁.福勒最开始的关于微服务的论文、也看过不少对微服务的论证的英文文章和书,也研究过Spring Cloud、Sofa等开源实现以及Service mesh。考虑到我们公司研发团队人力不足、基础设施不完善,当初是没有推行微服务的。但随着看到上述的那种简历越来越多,有时候我也会疑问:难道真的不用微服务就落后了吗?公司的同事如果不掌握这些就真的没有竞争力了吗。而随着最近公司业务的逐步提升,研发人员越来越多,借着在梳理公司的微服务落地计划时,也梳理了一下微服务的相关知识点,也是本文的主要内容。

复习过程

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

腾讯

一面(3.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. 有什么想问的(对我的评价和学习建议)

二面(3.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. 可实习时间
  19. 是否愿意转go
  20. 有什么想问的(对我的评价和学习建议)

hr面(3.26电话面)

  1. 自我介绍
  2. 介绍一下实习经历
  3. 实习中遇到的困难以及如何解决这些困难
  4. 未来计划,是否读研

面试总结

一面的问题都很中规中矩,唯一卡住的就是协程了,确实不会,只能和面试官说我不了解。
主要和大家分享一下二面的面试体验吧。因为二面自我感觉答得不是很好,有很多问题当时没记录下来,现在一时也想不起来。所以上面的面经并不完整。
当时面试完走出大厦以为自己挂掉了,结果刷新了一下状态发现变为hr面,真的超级意外。现在想想大概是因为我在遇到不会的问题时,没有直接说自己不会,尽量把答案往自己知道的方向回答。

  • 第7题,项目没有秒杀功能我也没做过,但是了解过一些,只能和面试官说确实没有,然后让他听我讲一下我的实现思路,期间又让面试官挖出了很多问题考我TAT
  • 第9题、第10题,面试官要求我在分库的场景下回答问题,我先回答了分表情况下如何实现,他肯定了我在分表下的做法,但是分库情况还需要另外考虑,我实在想不出来,才和他说自己没有办法实现,但这总比我直接说自己不会好。
  • 第13题,如何定位错误的时候,先讲了一下无法访问的几种情况,以及大量tcp处于time_wait、close_wait这两种状态的原因和解决方法。
  • 面试结束后,等电梯的时候突然想起面试中一个一直理解错误导致解不出的问题,发现自己想歪了之后赶紧编辑完答案又给面试官发了过去,这个答案后来得到了面试官的认可。

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

资料领取方式:戳这里免费下载

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

ngBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。**

[外链图片转存中…(img-SSEphRQE-1622025330246)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值