为了保证制作简历的安全性和流畅性,建议您使用Chrome浏览器进行访问
Fiona 学校
APP 内打开
分享
评论
42

【技术-百度】面试复盘 | 百度MEG-QA提前批Java后端三面面经

如流 软件视频面试,手撕代码时共享屏幕




一面 8.9


面试官是个小姐姐,面试官首先自我介绍,说了一下大概的面试流程,赞


自我介绍(比较短,一直不知道怎么自我介绍)


问项目


Redis为什么快(基于内存,IO多路复用,单线程,使用C语言并有很多优化)


Redis数据结构对于内存占用的优化(sdshdr5, sdshdr8, sdshdr16, sdshdr32, sdshdr64, 字符串越短,使用越少的内存存储额外信息;list 和 hash 元素少的时候使用 ziplist 编码)


Mysql 索引类型(聚簇索引和非聚簇索引,hash索引)


数据库读写分离的优缺点(写会加锁,降低数据库并发量,读写分离提高并发量;缺点是读服务器会存在延迟)


rabbitmq 介绍(说了topic,direct,fanout,header模式),重复消费问题(没答上来,说项目中没考虑到)


springboot 最大的特点(自动配置),启动注解和配置文件(记不清了)


JVM 内存模型和各自作用(程序计数器,JVM虚拟机栈,本地方法栈,堆,方法区),哪些是线程私有的(程序计数器,JVM虚拟机栈,本地方法栈)


String 能被继承吗(不能,被final修饰),和StringBuilder,StringBuffer区别(这两个可变,StringBuffer线程安全)


重写和重载区别(重载:方法名字相同,参数不同;重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写),重写的修饰符和抛出异常大小(重写方法的修饰符更大,异常更小)


查看进程的指令(ps),查看cpu使用情况(top),改变文件权限(chmod)


TCP 可靠性(面向连接,数据包校验,重新排序,超时重发,流量控制)


算法题:


判断一颗树是否为avl树(递归做)


判断一个数是否回文(转换为字符数据,使用双指针法或者StringBuilder的reverse()方法)


最后反问




总结:rabbitmq,springboot 只是使用,没有详细了解原理,相关问题没答上来


薄弱点:


Springboot还需要继续学习,了解原理


Rabbitmq常见问题的解决方案要熟悉,挺常问的


自我介绍 一直很短,一分钟以内,想问下大家都是怎么自我介绍,要介绍的多细

第二天收到电话约二面




二面 8.12


接口和抽象类区别(接口是动作的抽象,抽象类是一种所属关系...)


volatile作用(可见性,禁止指令重排),什么是可见性问题


常见容器(List,Set,Hashmap),Hashmap原理(数组 + 链表、红黑树),resize() 过程,多线程会产生什么问题(循环链表),怎么产生循环链表(没答出来)


怎么解决HashMap多线程问题(加锁),说了ConcurrentHashMap的put过程


说说线程(CPU调度分派基本单位...)


进程如何同步(管道,命令管道,信号,信号量,共享内存,套接字),信号量怎么通信(P操作,V操作)


线程独有的对象(ThreadLocal,原理没说清)


类加载机制(双亲委派模型),有什么加载器,分别加载什么,怎么破坏双亲委派机制(重写loadClass方法),破坏双亲委派机制自己实现加载器加载java.lang.String可以吗(不可以,不懂怎么保证的)


标记-清理过程


代码:


单例模式


最长回文子串(动态规划,中心扩散)


包含min函数的栈(栈 + 辅助栈)

最后反问环节

总的来说,面试官是个小姐姐,面试过程中会引导你,面试体验很棒



问题讨论:


HashMap多线程下循环链表产生的原理,有大佬详细说一下嘛


破坏双亲委派机制后,怎么保证java.lang.String不能加载(java.lang.ClassLoaderd的preDefineClass 方***检查类名,发现以java作为一级包名,则抛出安全异常:禁止使用的包名)

第二天收到电话约三面




三面 8.17


聊了项目,学校,实验室,选择,有点像hr面

许愿测评 + 意向书如流 软件视频面试,手撕代码时共享屏幕




一面 8.9


面试官是个小姐姐,面试官首先自我介绍,说了一下大概的面试流程,赞


自我介绍(比较短,一直不知道怎么自我介绍)


问项目


Redis为什么快(基于内存,IO多路复用,单线程,使用C语言并有很多优化)


Redis数据结构对于内存占用的优化(sdshdr5, sdshdr8, sdshdr16, sdshdr32, sdshdr64, 字符串越短,使用越少的内存存储额外信息;list 和 hash 元素少的时候使用 ziplist 编码)


Mysql 索引类型(聚簇索引和非聚簇索引,hash索引)


数据库读写分离的优缺点(写会加锁,降低数据库并发量,读写分离提高并发量;缺点是读服务器会存在延迟)


rabbitmq 介绍(说了topic,direct,fanout,header模式),重复消费问题(没答上来,说项目中没考虑到)


springboot 最大的特点(自动配置),启动注解和配置文件(记不清了)


JVM 内存模型和各自作用(程序计数器,JVM虚拟机栈,本地方法栈,堆,方法区),哪些是线程私有的(程序计数器,JVM虚拟机栈,本地方法栈)


String 能被继承吗(不能,被final修饰),和StringBuilder,StringBuffer区别(这两个可变,StringBuffer线程安全)


重写和重载区别(重载:方法名字相同,参数不同;重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写),重写的修饰符和抛出异常大小(重写方法的修饰符更大,异常更小)


查看进程的指令(ps),查看cpu使用情况(top),改变文件权限(chmod)


TCP 可靠性(面向连接,数据包校验,重新排序,超时重发,流量控制)


算法题:


判断一颗树是否为avl树(递归做)


判断一个数是否回文(转换为字符数据,使用双指针法或者StringBuilder的reverse()方法)


最后反问




总结:rabbitmq,springboot 只是使用,没有详细了解原理,相关问题没答上来


薄弱点:


Springboot还需要继续学习,了解原理


Rabbitmq常见问题的解决方案要熟悉,挺常问的


自我介绍 一直很短,一分钟以内,想问下大家都是怎么自我介绍,要介绍的多细

第二天收到电话约二面




二面 8.12


接口和抽象类区别(接口是动作的抽象,抽象类是一种所属关系...)


volatile作用(可见性,禁止指令重排),什么是可见性问题


常见容器(List,Set,Hashmap),Hashmap原理(数组 + 链表、红黑树),resize() 过程,多线程会产生什么问题(循环链表),怎么产生循环链表(没答出来)


怎么解决HashMap多线程问题(加锁),说了ConcurrentHashMap的put过程


说说线程(CPU调度分派基本单位...)


进程如何同步(管道,命令管道,信号,信号量,共享内存,套接字),信号量怎么通信(P操作,V操作)


线程独有的对象(ThreadLocal,原理没说清)


类加载机制(双亲委派模型),有什么加载器,分别加载什么,怎么破坏双亲委派机制(重写loadClass方法),破坏双亲委派机制自己实现加载器加载java.lang.String可以吗(不可以,不懂怎么保证的)


标记-清理过程


代码:


单例模式


最长回文子串(动态规划,中心扩散)


包含min函数的栈(栈 + 辅助栈)

最后反问环节

总的来说,面试官是个小姐姐,面试过程中会引导你,面试体验很棒



问题讨论:


HashMap多线程下循环链表产生的原理,有大佬详细说一下嘛


破坏双亲委派机制后,怎么保证java.lang.String不能加载(java.lang.ClassLoaderd的preDefineClass 方***检查类名,发现以java作为一级包名,则抛出安全异常:禁止使用的包名)

第二天收到电话约三面




三面 8.17


聊了项目,学校,实验室,选择,有点像hr面

许愿测评 + 意向书

发布时间:2021年09月12日
用户头像
我来说两句…
暂无评论 暂无评论