建议:以下题目是“标”,“本”是背后的知识点。有工作经验
的应该根据自己目标求职岗位,以往的项目经历针对性
的复习知识点,以及看一些常见的高频问题。面试题其实有路可循,且相当个人化,不能一概而论,切忌看到别人问什么都去复习,都去看
一、vivo
- static变量和方法有什么特点,能不能访问非静态成员,为什么
- static方法能不能重写,为什么。父子类调用方法访问顺序
- 抽象类和接口的成员变量有什么差别,类访问权限
- HashSet怎么实现的,底层
- HashMap怎么遍历的
- 线性结构有哪些,二叉树属于吗?
- 二叉树最多有多少个节点,第k层有多少个节点
- 冒泡排序怎么实现,怎么优化,两层循环各是干什么的
- 多线程中wait和sleep方法的区别,锁
- MVC模式怎么实现,流程介绍。
- Hibernate怎么和上层交互,用过哪些数据库,了解多少
- 手写sql,查询从6.1开始到现在每天的评论数量,评论大于1000的数量(注意日期函数)
- 说项目
- 项目方法是自己提出来的还是有前人做过,有什么不同,改进在哪里。
二、顺丰
一面
- 挑一个熟悉的java容器聊一下,我选的hashmap
- hashmap里的hash函数你自己的话如何实现,如果你的hash函数总是取模后在固定的几个位置,如何优化这种情况,各个角度都可以说,可以是算法和数据结构等
- 聊一下你知道的索引
- 有一个表存在字段id(非主键,递增可重复),name,如果有1000W条数据,查其中一条,有索引和没索引的情况下执行时间,建索引是否有用,会走索引吗,为什么
- TCP的三次握手,四次挥手,滑动窗口
- TCP/IP四层协议,ip在哪层
- TCP有无状态
- 如何判断一个链表是环表
- 聊项目
二面
- 聊项目
- dubbo原理,dubbo往zk写入的内容是什么
- dubbo客户端负载均衡如何实现的,给你你如何实现,一步步提示和完善
- zk除了做注册中心还有什么用途
- zk的数据类型,zk分布式锁,讲具体实现
- 聊下hashmap和concurrentHashMap
- Spring启动流程
- spring bean生命周期,bean实例化过程
- 类加载过程
- 二叉树遍历,写了递归,非递归会吗
- 多线程了解吗,threadPoolExcutor构造函数的各个参数详解
三、快手
四、虾皮
五、有赞云
-
出于什么样的考虑,对系统进行了重构
-
有了解过领域模型相关知识吗
-
项目中最大的亮点,或者说项目中最大的难题是怎么解决的
-
索引失效场景有哪些
-
Dubbo服务暴露过程
-
Dubbo的spi和jdk有什么区别
-
rabbitmq和kafka区别
-
kafka适合什么场景,项目中是什么场景
-
rabbit如何保证信息不丢失
-
zk满足了CAP哪些特性
-
项目中缓存使用场景,双写一致性怎么保证的
-
缓存穿透,击穿,雪崩场景,怎么解决
-
HashMap初始化10000,如何扩容(构造函数会把你传进来的转成2n)
-
spring循环依赖有几种,如何解决
-
线上问题的排查
(十三)要求
一、b站
- 扎实的编程功底,熟悉常用的算法和数据结构,掌握Java等语言开发能力
- 熟悉Linux系统,精通一门脚本语言(shell,Perl,Python)
- 熟悉开源分布式计算/存储相关技术,Hadoop/HBase,优先KAFKA,HBASE
二、小红书
- 熟悉Java语言
- 熟悉restful服务,深刻理解MVC,OOP,AOP等概念,了解微服务架构理念以及实现技术
- 深刻理解计算机原理,有良好的数据结构和算法基础
- 熟悉spring,redis,mongobd,thrift等常用组件优先
- 有高并发服务设计和实现经验优先
- 熟练使用关系、文档型数据库
- 熟悉缓存,消息队列,定时任务等相关技术
- github与stackoverflow贡献者优先,对开源社区有贡献者优先。
- 能独立分析问题,善于研究业务,分析产品。