百度开源中国(Java)面经

一、自我介绍

  面试嘛,万年不变还是自我介绍,就说说你是干嘛的(专业是啥),为什么会选择该公司(说一说自己为何向往Java开发),再谈谈自己的优点(兴趣爱好)。如果人家叫停了,就别一股脑接着讲了,停下来就可以。

二、关于技术问题

    一般技术问题都是“一面”,一般大公司会有“一面”、“二面”……甚至“三面”(字节、华为、阿里)。

    好~回归正题:技术面说白了就是看你简历上如何写了,若你简历上写了:熟悉计算机网络、熟悉数据结构等字眼,技术面的时候面试官就会问你这方面的问题,不过不用担心的是百度·开源中国的前后端面试都会涉及到“计网”、“数据结构”、“数据库”、“操作系统”。

    不瞒各位,本人前段时间刚刚面试了“开源中国”,打算写写面经,也算是做做贡献吧。

    2/1、面试官是否严格?

    说实在的,面试官的声音和提问方式都很温柔,不会被吓到。

    2/2、问题具体有什么?

      2/2/1、集合、线程是必考题,比如集合中介接触过哪些集合?(操作系统)

      ·集合:(Set、List、Map这仨很常见了,这个是基础中的基础了!!!)

      <会问你都用过哪些?能不能讲讲具体怎么实现的>

      ·线程:线程面试官直接问有没有接触过多线程,有没有做过多线程的项目?

      <接触过的,是在学校做课设时的一个问题,“哲学家吃饭问题”,由于当时是做的课设,但后来接触多线程的项目就很少了>(意思上够就可以,大家伙儿如果没有做过这个的话,就可以去看看,我想这个应该是个很典型的多线程的案例,或者可以继续说一些别的,比如“多线程并发”)

    2/2/2、计算机网络

    ·TCP/IP协议:(TCP的三次握手和四次挥手,这个问题一般是要问过程的,所以过程很重要!!!)面试官问了我这个问题,并且要我讲详细的过程。整个计算机网络中,这个算是是比较经典也是重点的知识点了,由此可以看出,面试官很会问的,问到它,你要必能回答上。

    2/2/3、数据结构

    ·二叉查找树:有什么特点?查找时怎么查找?

    个人觉得正确回答 => <“左子树的值小,右子树的值大”或“左子树比右子树的值小”+ 有序;查找可以深度查找和广度查找>

      (千万不要跟我一样!!!,后半部分说的是按顺序查找还是先左子树后右子树查找。现在想想都尬,直接社死好吧)

    ·查找有没有什么可以优化的方式?

    <哈希查找/哈希表/hash,(预测可能还会往下问:比如)>

    (问到优化首先就要想到哈希查找/哈希表,这个就很离谱,当时面试官问到我,脑子里觉得只有这个是答案,我就说了,下来查了一下,果然哈希查找可以提高查找效率)

    2/2/4、数据库

    一般到数据库,面试官都会问你有没有做过有关数据库的项目,可以谈谈你做的项目吗?

    ·谈项目:(本人是做了C#的房屋信息管理系统,用到了数据库,大致说一说来由就可以了)

  3/1、有没有发现问题,自己解决问题的经历,不管是做课设也好,还是什么项目?(面试官比较在意的一个问题!!!)

  <(我是继续讲了房屋信息管理系统,因为面试官说,既然你用到了数据库,刚好讲一讲好了。或者说其他问题也是可以的,这里就是你的主场,自己发挥即可,这个算是加分项了,可以随便说。)>