春招实习时,百度凤巢Java后台开发岗面经(跪经)
一面:
-
equals的默认实现、自己实现euqals判断两个对象相等,hashcode和euqals的区别、hashcode的使用场景,重写equals有哪些注意事项。
-
java对象进行远程传输的时候需要序列化如何实现
-
java原生提供了哪些序列化方式,你知道哪些序列化方式
-
java有哪些常用的集合类
-
java中的锁synchronized和ReentraitLook的区别
-
说一说是spring的Ioc原理和Aop原理,以及如何实现的
-
spring中 bean的scope有些,默认的是什么
-
spring中的事务是如何实现,有哪些事物处理机制
-
动态***有哪些、区别是什么
-
mybatis如何根据xml文件来实现定义相应的接口
-
当调用接口的方法时,如何根据方法名来查找xml中的sql语句的
-
说一说你知道的java泛型
-
object都有哪些函数,知道clone函数和getClass函数吗,这个函数是如何使用的
-
java发射是如何实现,有哪些功能
-
写一个单例模式模式
-
mysql数据的事物的级别
-
有一个数据表数据量比较大,查询比较多,写比较少,数据库设计的时候如何设计。
-
手写sql语句、语句中有group by 、having in、order by。
-
两个文件每一行一个数据。如何实现对这两个文件进行排序
-
如果数据量很大一个数据都无法完全加载如内存该如何实现。
-
如果要对一个list列表中的对象进行排序该如何进行排序。对象实现接口comparable接口或者比较器实现comparetor
二面:
-
项目:画一下你的项目架构图,都有哪些步骤每个步骤都做了什么。
-
数据库数据量比较多,查询比较慢,应该如何优化。(索引和分库分表)
-
数据库的联合索引是什么、如何进行索引优化。如何知道sql语句是否使用了索引,以及使用了哪些索引
-
索引应该如何建。(我说区分度大的列和类型小的列,他问如何定义区分度大的列)
-
你知道数据库分库分表有哪些,各自在上面情况下使用
-
在数据库分库分表的时候应该如何划分,(他举了个例子按照时间,还有他的实现方式让我说。以及纵向和横向分库分表的区别和使用)
-
数据库分库分表有哪些好处。
-
数据有哪些事物的隔离级别。
-
mapReduce的原理和过程,手写一个MapReduce程序,单词统计的。
-
手写单例模式,线程安全的非线程安全的,(我写了一个饿汉加载又让我写了一个静态内部类的实现方式)
-
线程池的参数有哪些,线程池的拒绝策略知道吗?有哪几种。
-
java的内存模型是什么样的
-
一个数据从主存加载到线程缓存分哪些步骤、从缓存写到主存分哪些步骤。
-
volatile的内存语义和使用场景
-
知道哪些设计模式、在spring、jdk、jvm或者其他框架中都有哪些地方使用了这些设计模式
-
hashMap和hashtable的区别
-
hashtable和concurrentHashMap的区别
-
concurrentHashMap:jdk1.7如何实现的、jdk1.8如何实现区别在哪里
-
什么情况下对concurrentHashMap是全局加锁的
-
spring中bean生命周期是什么样的由谁管理的(单例模式下的bean生命周期和非单例模式下生命周期的管理)
-
spring MVC的执行流程。
-
为什么使用spring ioc和aop,使用能带来哪些好处,
-
linux你常用的命令都有哪些?
三面:
-
介绍一下你做的项目:数据库表是如何设计的,都有哪些字段,表之间如何关联。给我画一下。
-
会使用ER图来表述一下你数据库表结构之间的关系吗?(我说忘了/)
-
如果现在让你实现这个项目你该如何设计数据表,表之间该如何关联。
-
把每个表起一个名字,我来说需求你来写sql语句,写了好几个
-
数据左连接、右连接和全连接知道吗?使用这个来实现应该简单点
-
说一说Kubernetes的原理。