渣渣菜b面试经验和思考过程

注:本人是个大彩笔,我只是想和大家分享一下我在面试过程中一些思考,一些回答问题的方式,仅供参考,祝愿各位都能拿到自己欣喜的offer~一起加油

  1. 上来就让我谈谈对线程和进程的理解
    • 首先说了一下网上比较经典的答案
    • 然后我又说根据Linux源码,线程和进程又应该算是同一个东西。(提出一个不同的意见)
  2. 那你说说为什么算是同一个东西?(果然)
    • 比如我有个c文件,如果os要执行我这个文件,我首先要编译成能读懂的文件,但是指令都是二进制,而我加载到内存中以后,那么此刻我需要开辟一块空间,用来存储我所要执行的资源,这个就叫进程,活着的程序,cpu可以读取他的数据,执行代码块。其实对于Linux来说,进程和线程没有区别,比如我们这里有2个进程共享了一个资源空间,那么linux就会模拟这个进程为线程
    • ps:其实我也有点虚,不过无论对错,应该是让面试官对我有点印象了 = =
  3. 线程中断
    • 可以实现中断的三种方法,volatile变量、AtomicBoolean、Thread类中断api
    • 又说了一下对中断的理解,比如中断仅仅是一种协同机制......吧啦吧啦
  4. 如何唤醒?
    1. 三种唤醒方式
    2. 这种题应该是想问问你locksupport的东西,所以你就引领者往这上面带,不过我这个没复习,记得不是很牢固了,所以也没多说,生怕追问下去
  5. 又问了几个标准的八股文,我觉得太经典了就不多做赘述了,就说几个可以和大家分享一下的
    1. syn原理
      1. 我看目前普遍大家都是回答到flags: acc_syn 或monitorenter、monitorexit
      2. 我比较能扯,我扯了一下mutex源码,加锁解锁,对os资源的消耗 引出 锁升级的过程,并把我对于锁升级的理解和简单的源码分析说了一下。
      3. 又扯出volatile和cas的底层实现吧啦吧啦的(这是我自己引出来的,因为我知道他下面可能会问)
      4. 我觉得syn、volatile、cas 这三个属于是十次面试得问九次
      5. aqs源码这东西大致说了一下,但是有一些细节点都忘了,就直接说不记得了,然后就过了
    2. JVM
      1. 内存模型
      2. 垃圾回收
      3. 都比较常见,就不写了
    3. Redis
      1. 除了基本的五个数据类型、数据结构,我着重说了一下bitmap、hyperloglog、geo这三个,并说了一些我自己的理解,和应用场景,面试官也对这种问题和我探讨了一番
      2. 聊了聊双写一致性(redis+mysql),因为没有太多工程经验,我没敢多吹b,比较规规矩矩的
      3. 分布式锁、删除策略,这些我都觉得比较简单,也不多说了
    4. Mysql八股文,都是比较常见,没有什么好分享的
    5. 还聊了点io的东西,扯到了bio、nio、select/epoll、多路复用这种

总结:其实我比较能扯,我尝试着自己去带面试的节奏,我尽量能把我一时间想起来的,都一股脑的说出去,问到的,没问到的,他接下来可能想问到的,只要沾边,我都尽可能自己去先说,目前来看效果不错,按面试大哥说的 我技术深度不错,他这一面是通过了。

按照我粗糙的理解,和浅薄的知识面,我觉得如果你和我一样,本科是个垃圾中的垃圾,那么我觉得咱们如果想和985的大哥们一起竞争,你得有自己独特的一面,比如知识的深度,同样一个问题,syn他们回答到java字节码层面,你能不能继续钻研一下native方法如何实现的,c++层面如何做的,其实不用很精通,有一套自己的话术,能说出来,我觉得就可以了,至少我见过的同龄人,掌握这么多的并没有太多。

仅供参考~祝各位生活愉快~学习进步

#面经#
全部评论
校友加油😀
点赞 回复 分享
发布于 2021-12-17 18:10
太强了铁汁
点赞 回复 分享
发布于 2021-12-16 01:16
顶,很强!
点赞 回复 分享
发布于 2021-12-15 17:40

相关推荐

吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
评论
10
37
分享

创作者周榜

更多
牛客网
牛客企业服务