百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

字节半天*3面/5天拿offer,全凭自身硬实力和这份Java面试笔记

mhr18 2024-12-08 15:07 15 浏览 0 评论

先说说大致情况把,当时是下午两点约的一面,没想到直接面到六点一次性面完了。。。

面试部门:北京的基础架构,后端开发

一面:


  1. 讲一讲hash表
  2. hash冲突了怎么办?(拉链)除了拉链还有吗?(开放地址法,不是很了解,听过)
  3. 如果使用hash进行分布式存储有什么弊端?(可扩展性不强,例如增加节点和节点宕机的情况)
  4. 如何解决?(一致性hash,提到了redis的哈希槽)讲一讲吧
  5. 一致性hash会出现什么问题?(数据倾斜问题)如何解决?(虚拟节点)
  6. 介绍JVM(五大部分)
  7. 什么时候会GC?(答GC过程)你说的MajorGC和fullGC有什么区别?
  8. FullGC会有什么问题吗?(STW)什么时候会STW(介绍CMS大致过程,在标记的时候)
  9. TCP和UDP区别
  10. 2MSL是什么?为什么等2MSL?(补充说明等待的时候收到报文会如何处理)
  11. 你知道什么时候TCP会发送rset报文吗?(不知道)
  12. hashMap介绍一下
  13. hashMap是线程安全的吗?(不是)如何保证线程安全?(答concurrtenHashMap)让你自己来实现呢?(使用sy加锁)怎么加锁(锁住put和get方法)具体一点(sy分为类锁和对象锁)那你觉得应该加什么锁(对象锁,解释一下)
  14. concurrtenHashMap介绍一下(主动说的)
  15. CAS讲一讲
  16. sy和lock的区别
  17. CAS,sy,lock三者应该分别在什么场景下使用?(这个回答得不是很好,我说要看业务需求,三个偏向特点不同,简单介绍三者不同的倾向特点)
  18. 内存泄露是什么意思?什么时候会出现内存泄露?(静态常量不使用,threadLocal)还有吗?(不知道)
  19. 算法题:

1)输入一个cd命令:
/hist/add/camera/../int/has/../init 输出最终的文件目录

2)现在有一百万条定时任务,是一个二元组<key,value>,key代表触发的时间,value代表任务。将这一百万条定时任务插入一个调度系统,设计这个调度系统的存储结构,保证两点:插入的速度快,同时保证调度系统可以实现秒级的任务调度


二面:


记得不是很清楚,少了部分

  1. jvm中内存是不需要自己分配的,不像c++需要malloc和free,那你知道window下磁盘是如何管理的吗?(不知道)
  2. 那你知道磁盘上是如何快速计算当前的容量的吗?(可以设计一个变量,每次存进去加size,释放就减)你可能对这方面不太了解,其实你可以了解一下,里面是用块存储的,可以用bitmap快速计算容量(我提问:那也会有内存碎片吧)肯定会有,这就是为什么window下会定时进行内存碎片的清除,你可以去了解一下xxx(嗯嗯)
  3. 你知道一个linux代码文件是如何被加载到cpu上运行的吗?(不了解,我说我可以讲讲java的代码是如何被加载运行的)那你讲讲吧
  4. 你了解协议模型吗?(TCP四层,OIS七层,我介绍五层吧,直接讲输入url到显示界面的过程,详细讲了DNS的递归查询和迭代查询)
  5. 一个域名是可能支持多个服务的,这个怎么办?(http1.1支持host域)
  6. 那在高并发的情况下,哪些服务器如何保证dns解析的高效性(缓存)还有其他的吗?(分布式缓存)面试官笑了笑(我解释到,要不然就是从代码上解决,要不然就是从机器数量上解决)
  7. TCP和UDP的区别
  8. DNS用的是什么协议
  9. Ping命令了解吗?发送的是什么报文?(我说我只了解用的是ICMP协议,但是具体不知道)
  10. IO模型了解吗?(BIO,NIO,AIO)
  11. 一个数据从网卡到磁盘的过程
  12. 进程和线程的区别(提到了协程)为什么协程切换比线程快(不涉及特权模式切换)为什么协程不涉及(应该是一般只用协程做用户态的事情吧,我对go不是很了解)
  13. 有1000个文件,找出出现次数最大的十个词
  14. 算法:合并有序链表
  15. 看我做过论文查重系统,问我核心是什么(本科毕设,分句算法和查重算法,用的编辑距离)能讲一讲编辑距离吗?你当时是自己写的还是用的别人的(用的pyhton包),那你能写一个吗?写个大概思路。(正好之前练过,有小瑕疵,没让跑,整体代码基本正确)
  16. 看你用过k8s,了解deployment啥啥啥的吗?(不了解,我只是写过yaml文件部署,我可以介绍一下k8s组件,介绍了五六个组件和功能,还讲了我们之前做的负载均衡和高可用)

最后就是给我讲讲说有空可以来实习,问我要不要继续三面,还是改天,因为已经连续两面了,我说继续吧


三面:


  1. 自我介绍,开始讨论项目,终于聊我的项目了。。。
  2. 数据从磁盘到程序的过程(不满意)
  3. 我又提到了Kafka的零拷贝(觉得有问题)
  4. 问我协议模型(五层)
  5. 三次握手四次挥手(八股文)为什么是三次?为什么是四次?(感觉不满意,和他讨论了很久)面试官认为一般是对称的,如果不对称一定是某个环节combine了(我说我回去再看看)
  6. linux内存管理了解吗?怎么管理的?(其实我是不知道的,但是二面面试官正好告诉我了块式存储,所以我说了块式,然后还说了段页式)他说段页式应该是很古老的吧
  7. 现在让你自己设计一个内存管理,你怎么设计(这个地方讨论了很久,我每次有新的想法就会有问题抛出来,然后我再想。。。)最后有一个稍微觉得可以的了,说你这个设计算比较雏形的了(主要是问一个大内存怎么申请,快速查找可用空间,内存碎片怎么最少)
  8. 讲一讲JVM吧
  9. hashmap

后面记不清了,后面就是偏八股文了

这里给大家推荐一份我面试之前看的java面试笔记:

这份资料包含了很多当下热门的java知识点,需要获取的小伙伴可以直接转发+关注后私信(学习)即可免费获取!

不多展示了,你想要的它都有,

反问:

我说我想最后补充两点,算是表现一下我的优势吧:我知道可能今天表现不是很好

  • 1)我学习能力很强,简历上很多奖学金都是我自己拿的
  • 2)开发能力强,抗压能力强,百度实习期间每天工作超过十二个小时
  • 3)我对内存这方面的确是不了解,我也不解释,但是我有我擅长的领域,例如我对java比较了解

最后他说了一句,其实还ok了,然后就没了,以为凉了,第二天hr说过了

总体来说其实不是特别难,我觉得提前批比秋招简单。。

相关推荐

MySQL数据库中,数据量越来越大,有什么具体的优化方案么?

个人的观点,这种大表的优化,不一定上来就要分库分表,因为表一旦被拆分,开发、运维的复杂度会直线上升,而大多数公司和开发人员是欠缺这种能力的。所以MySQL中几百万甚至小几千万的表,先考虑做单表的优化。...

Redis的Bitmap(位图):签到打卡、用户在线状态,用它一目了然

你是不是每天打开APP,第一时间就是去“签到打卡”?或者在社交软件里,看到你的朋友头像旁边亮着“在线”的绿灯?这些看似简单的功能背后,都隐藏着一个有趣而高效的数据结构。如果让你来设计一个签到系统:用户...

想知道有多少人看了你的文章?Redis HyperLogLog几KB就搞定!

作为一名内容创作者,你每天最期待的,除了文章阅读量蹭蹭上涨,是不是还特别想知道,到底有多少个“独立用户”阅读了你的文章?这个数字,我们通常称为“UV”(UniqueVisitors),它比总阅读量更...

Redis的“HyperLogLog”:统计网站日活用户,省内存又高效的神器

你可能从未听过这个拗口的名字——“HyperLogLog”,它听起来就像是某个高深莫测的数学公式。但请相信我,理解它的核心思想并不难,而且一旦你掌握了它,你会发现它在处理大数据统计问题时,简直就是“救...

阿里云国际站:为什么我的云服务器运行缓慢?

本文由【云老大】TG@yunlaoda360撰写一、网络性能瓶颈带宽不足现象:上传/下载速度慢,远程连接卡顿。排查:通过阿里云控制台查看网络流量峰值是否接近带宽上限34。解决:升级带宽(如从1M提...

Java 近期新闻:Jakarta EE 11和Spring AI更新、WildFly 36.0 Beta、Infinispan

作者|MichaelRedlich译者|明知山策划|丁晓昀OpenJDKJEP503(移除32位x86移植版本)已从“ProposedtoTarget”状态进入到“T...

腾讯云国际站:怎样设置自动伸缩应对流量高峰?

云计算平台服务以阿里云为例:开通服务与创建伸缩组:登录阿里云控制台,找到弹性伸缩服务并开通。创建伸缩组时,选择地域与可用区,定义伸缩组内最小/最大实例数,绑定已有VPC虚拟交换机。实例模板需...

【案例分享】如何利用京东云建设高可用业务架构

本文以2022年一个实际项目为基础,来演示在京东云上构建高可用业务的整个过程。公有云及私有云客户可通过使用京东云的弹性IAAS、PAAS服务,创建高可用、高弹性、高可扩展、高安全的云上业务环境,提升业...

Spring Security在前后端分离项目中的使用

1文章导读SpringSecurity是Spring家族中的一个安全管理框架,可以和SpringBoot项目很方便的集成。SpringSecurity框架的两大核心功能:认证和授权认证:...

Redis与Java集成的最佳实践

Redis与Java集成的最佳实践在当今互联网飞速发展的时代,缓存技术的重要性毋庸置疑。Redis作为一款高性能的分布式缓存数据库,与Java语言的结合更是如虎添翼。今天,我们就来聊聊Redis与Ja...

Redis在Java项目中的应用与数据持久化

Redis在Java项目中的应用与数据持久化Redis简介:为什么我们需要它?在Java项目中,Redis就像一位不知疲倦的快跑选手,总能在关键时刻挺身而出。作为一个内存数据库,它在处理高并发请求时表...

Redis 集群最大节点个数是多少?

Redis集群最大节点个数取决于Redis的哈希槽数量,因为每个节点可以负责多个哈希槽。在Redis3.0之前,Redis集群最多支持16384个哈希槽,因此最大节点数为16384个。但是在Redi...

Java开发岗面试宝典:分布式相关问答详解

今天千锋广州Java小编就给大家分享一些就业面试宝典之分布式相关问题,一起来看看吧!1.Redis和Memcache的区别?1、存储方式Memecache把数据全部存在内存之中,断电后会挂掉,数据不...

当Redis内存不足时,除了加内存,还有哪些曲线救国的办法?

作为“速度之王”的Redis,其高性能的秘密武器之一就是将数据存储在内存中。然而,内存资源是有限且昂贵的。当你的Redis实例开始告警“内存不足”,或者写入请求被阻塞时,最直接的解决方案似乎就是“加内...

商品详情页那么多信息,Redis的“哈希”如何优雅存储?

你每天网购时,无论是打开淘宝、京东还是拼多多,看到的商品详情页都琳琅满目:商品名称、价格、库存、图片、描述、评价数量、销量。这些信息加起来,多的惊人。那么问题来了:这些海量的商品信息,程序是去哪里取出...

取消回复欢迎 发表评论: