前言

本人情况,211硕(渣到不能再渣的三本),目前研二,10月5号尝试性投的百度,10月7号HR电话约面试(我以为会直接忽略我),然后约在8号下午两点一面,每次面试控制在一小时(寝室视频方式),百度质量效能部。

:本人有一段小公司Java开发实习经历

每次面试后一定要复盘总结!!!根据录屏或者录音复盘,看自己哪里答的不好,改进

结果:已offer入职

一面

1、自我介绍
2、项目的难点怎么解决的
3、Java垃圾回收机制
这里主要答下面三点
(1)哪些对象会被回收?即两种经典算法:引用计数法 和 可达性分析算法
(2)什么时候回收?垃圾回收发生在堆内存,新生代最为频繁,老年代次之,对象没有引用则会被回收
(3)如何回收?常见回收算法有三个:标记清除,标记复制,标记整理
垃圾收集机制可见我的博文:垃圾回收机制

4、Java常见容器有哪些?
答集合容器,List,Map,Set,以及他们子类如ArrayList、LinkedList、HashMap、HashSet等等,不过没有让我具体展开发挥
5、一个SQL题:有一个学生表,有name,age,以及course_name,需要查询所有满18周岁同学所选课程
答:这个简单就一张表,直接说select * from student where age >= 18,然后问我有没有什么需要改的,我纳闷,不是这样?然后思索半天,好像面试官表述理解不到位?她补充说有重复的呢?我就说select DISTINCT course_name from student where age >= 18,不过结结巴巴,面试都会紧张
6、MySQL事务的原子性了解吗?
答:事务原子性就是不可分割,要么都执行,要么都不执行
7、接着问讲一下事务全部的特点
这个我一下没反应过来!!!没答上,后面回想,就是ACID啊,四大特性:原子性、一致性、隔离性、持久性,哎,失误失误,可能听惯了问事务ACID吧,问特性倒没反应过来
8、MySQL存入中文,但在数据库中显示乱码,怎么解决?
过程中遇到乱码没有遇到过,我说一般都是创建指定了charset=utf-8,这个不太会,给出一个博客解决方案:MySQL数据库获取中文显示乱码解决方案
9、Linux命令用过哪些?
我就说部署的时候,先将文件用
tar -zxvf 压缩包名解压,然后cd 进入目录,ls查看,找到.conf文件,vi conf文件,输入i编辑,进行配置,然后shift+:进行wq进行保存配置,再./startup.sh运行
10、Linux传送一个文件到另一台机器上,怎么传?
首先ping另一台机器保证能连通,然后用scp命令
scp 文件名 目标服务器用户名@ip地址:目标服务器目录

scp baidu.txt root@10.22.137.11:/usr/local

10、Linux查询哪个进程占了多少CPU与内存情况?
这个我就说了下用top命令可以查所有的进程,看使用情况,但是没有答的有针对性,可以参考Linux下查看某个进程占用的CPU、内存,看%CPU和%MEM两个指标

第一种方法
ps -ef | grep 进程名	#根据进程名查id
top -p 进程id		#查到id再用top,就能看到%CPU和%MEM两项指标

第二种方法
ps -aux | grep 进程名或进程id			#可以查到cpu和内存占用比

11、一个端口是否被占用应该用什么命令?

netstat -tulnp			#查看所有占用的端口及服务
netstat  -anp  | grep   端口号

linux 查看端口占用情况
如下:1045端口被sshd服务占用
在这里插入图片描述

12、堆和栈的特点及区别
这里我就想到了堆分大顶堆、小顶堆,底层是完全二叉树实现,先进先出、后进后出,栈是先进后出,只能在一端进行操作,就没想到了,后面面完复盘,可以从JVM角度答啊,这个我熟啊,居然没想到!!!
堆和栈的区别
如栈存放方法、局部变量及引用等,堆则存放new创建的对象和存放数组。

13、有一亿个数,只要TOP5的数,怎么实现时间复杂度比较低,说思路?
我想到堆排序适用于大数据量,所以说用堆排序先排,然后取TOP5,然后问我有没有更优的方法,我想不到了,后面我看了篇博客说的好啊,这篇文章先说了实际场景1千万条短信,找出重复出现最多的前10条,然后再给出1亿找最大100个数
1亿个数中找出最大的100个数(top K问题)

14、知道四个点坐标,怎么判断是否围成的是一个正方形,说思路?
不知道,下面给出博客上得解法,似乎是一道ACM竞赛题
思路:给点4个坐标点,要求判断是否能构成正方形。值得注意的是4个点不一定按顺序,可以计算两两之间的距离,如果是正方形,距离只有2个值,博客链接

15、浏览器输入一个地址整个执行过程
这个很熟,我复习了,如下

答:首先浏览器输入地址,浏览器会先查看浏览器缓存,如果缓存中有,则直接在页面中显示缓存中的内容。没有缓存,就要先通过域名解析协议(DNS),解析获得对应的ip地址。然后浏览器会向ip对应的服务器建立TCP连接。进行三次握手,浏览器知道可以连接就会发送HTTP请求,也就是发送请求数据包。TCP协议会将HTTP请求报文会按一定顺序,分割成一段段的数据进行传输。期间ip会通过ARP协议(地址解析),解析出IP地址对应的MAC地址,经过路由转发,可能需要转发多次,最终转发到目标服务器的物理设备,然后分段的报文会按顺序重组成一个HTTP请求,服务器处理这个请求,将处理后的结果响应返回给客户端,浏览器收到响应,读取响应内容,进行渲染,解析HTML,从而生成页面并四次挥手关闭TCP连接。

16、如何测试一支笔,怎么测试
对于没有测试经历的我蒙了,这咋测试,我复习了百度搜索框怎么测试,登录怎么测试,什么功能测试,性能测试,压力测试,兼容性测试都可以讲讲,一支笔或者一台电脑怎么测试我一下想不出来
下面给一些这块面试答案:我简直震惊!!!测试博大精深,下面是可能问到的经典测试题
笔的测试
水杯测试
电梯测试

17、最后写了道算法题:大数加法
要求10分钟,我感觉自己写的很慢,还有点紧张,就直接在IDEA上写了点东西说了下实现思路,没有完整写出来,知道思路

18、问了下能实习多久,实习离开原因,有啥要问他的嘛常规结尾

一面结束,一个问题不差,说实话自我感觉自己回答的不咋地,但是还是几小时后收到HR电话联系约了明天早上二面,效率真高,挺紧张晚上还失眠了,翻来覆去,2-3点才睡,然后7点多又起来复习,咱尽力就好

二面

1、自我介绍
2、问了问项目大概情况
3、为什么投测开,看你不是做Java的吗?
4、讲一下HashMap原理
5、因为HashMap说了红黑树,又问红黑树是怎样的数据结构?
6、为什么用红黑树,而不用平衡二叉树?
这个答的不是很好,所以复盘查了下,补补课
红黑树
为什么Java8中HashMap链表使用红黑树而不是AVL树

7、MySQL与Redis的区别
8、MySQL索引怎么实现
回答的时候没反应过来,就没答出来,后面想想,B+树索引啊!!!我还复习了,可能一紧张,没马上反应出来,证明还不够熟悉
MySQL索引底层实现原理

9、两道算法题:
(1)对无序数组使用二分查找 【写一会儿卡住没写出】
(2)合并有序链表【这个简单】
10、再问了一个对百度搜索框进行测试会怎么做?
由于之前没怎么去深入了解,一面完毕后,吸取经验,复盘把测试的都看了下,比如怎么测试电梯、笔、水杯、搜索框以及登录框,这个回答的就比较多
11、问了下能实习多久,还有需要问他什么吗?

:二面面试官会根据一面面试官写的评价进行面试,比如一面哪些答的好,二面就少问,不好二面可能还会问,当天下午3点左右就约三面,谢不杀之恩,这效率绝了,约后天11号第三面。

8号一面、9号二面、11号三面

三面

三面真的就是测试经理纯聊天了解你,因为可能有几个候选人,面试官从这些候选人里面选几个比较好的,然后是否有转正意向之类的(自己怎么想就怎么说),大概问了下面这些,20多分钟就结束,闲聊,经理了解下你这个人,放松点讲就好,面我的经理,人也很好交流。因为是聊天,自己怎么想就怎么答,也没有啥标准答案,我觉得最重要的就是不要口是心非,明明不是那么想还故意为了去百度而编,真诚表达自己想去意愿就好。

1、自我介绍
2、聊了下实习项目(5分钟左右)
3、对百度了解多少?
4、希望百度这个平台给你带来什么?(根据你的回答进行继续延伸其他问题)
5、你能给百度带来什么呢?
答:这个问题我觉得挺不好答的,我的回答是如果我能进入百度的话,作为一个实习生,我能力有限,肯定不会有什么大的贡献,我会在自己的这个团队做好自己的工作与角色,把分配给自己的任务做好,如果其他人需要帮忙也会帮帮忙,总之就是做好自己的工作。我就把自己想的说了下
6、职业规划
7、在百度这份工作的目标规划
8、如果通过,什么时候能到?
9、转正相关

这三面持续20来分钟,整个过程还是很轻松的,经理不聊技术,就是了解每个候选人,然后做出选择,一周之内会给结果,希望能过啊!!!许愿oc,机会难得,还是很想拿到

如果OC,我下面会写已OC,先写个分隔符

=================================
最终情况:已offer

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐