2

海康,商汤,顺丰等研发面经

1

今天把其他一些面经总结了一下,分享给大家参考。包括从6月到7月份面的一些公司,包括海康威视,商汤科技,顺丰,有赞,亚马逊(实习生)。主要是Java岗位,而且是主要提前批的面经,甚至包括简历面。

亚马逊  

实习生面试  

7月初面的  

一面  

1聊项目20分钟,难点,重构特点。

2写题,跳台阶的递归和dp方式。

3如何查找一个数组中的局部最小值。

直接遍历复杂度是O(N),但不是最优。

使用二分查找优化,逼近局部最小值,logn,有一些问题,并且死循环了。

接着二面  

1聊聊项目中的重构,数据表设计的方式。谈到了索引。

2使用索引和不使用索引的区别,何时使用索引的效率不如不使用。

因为索引需要logn次IO找叶节点,然后再一次IO去真正找数据。  

而不用索引每次查找都要一次IO,所以数据行为N时,不使用索引要N次IO,使用索引,假设索引包括M行数据,则需要(logn + 1)* N/M次,当两者相等时效率相近,否则不同。  

3聚簇索引,最左前缀匹配索引,B+树。

4算法题,版本号的大小比较

首先正则表达式过滤非法输入,并且拆成数组进行判断。

5算法题2 一个单词变成另一个单词,一次只能变一个字母,并且中间过程需要是一个合法的单词。并且每一个位置都可以修改多次。

使用dfs,没写完整。

海康威视  

7月中旬  

简历面  

1 了解我们公司么

2 实习讲一下

3 Java讲一下集合类,线程安全的那种

4 分别如何实现的呢,copyonwritelist,讲一下,chm讲一下

5 Java内存分区,分代回收,是否有GC调优实践过。

6 clone方法的实现

7 讲一下你这个项目数据仓库的架构

8 了解Hadoop的哪些组件,自己跑过么

9 我就是探探你的底,还没开始正式面试呢!

10 没了

(* ̄︶ ̄)

商汤科技    

7月下旬    

要求转c,并且是实习岗位    

1 愿意转c++吗。巴拉巴拉

2 Java的hashmap和hashtable的两个区别

3 Java中的锁怎么实现,synchronized关键字底层什么命令。

4 Java的cas操作说一下,底层怎么实现的。自旋锁了解么。

5 lock free用于什么场景,自旋锁和普通锁的使用场景

6 Java的countdownlatch的实现原理

7 Java的内存分配是虚拟内存还是物理内存

8 讲一下虚拟地址如何映射成物理地址,TLB了解么,分页机制说一下,页面大小是多少。

9 LRU缓存说一下

10 没了好像

顺丰科技    

上周    

 一面    

1 面试官喜欢抖腿

2 二分,二分找比一个数小的最大数  

3 Java的线程使用方法    

4 线程通信的方法    

5 没了    

二面

hr面,过了两周发了offer。总体来说很水。

有赞 

一面:    

1 Java并发技术了解吗,说了线程,juc的线程池,并发容器,阻塞队列,原子数据类型等。    

2 问我原子数据类型怎么实现,cas    

3 线程池有哪些参数,阻塞队列用的是普通队列么,答不是,是blockingqueue    

4 concurrenthashmap和hashmap的区别,chm的实现原理,你在什么场景下用到chm,为什么,我说了多线程查询数据,put可能覆盖,或者hashmap的扩容可能产生死链    

5 还用过哪些数据结构,list,set,map,stack和queue。    

6 Spring了解么,问我了解五大组件不,不了解,说了ioc和aop。然后问我分别怎么实现的,使用xml和注解配置实现类有什么区别,怎么解析它们的数据。    

7 Spring如何动态地加载一个bean到bean容器中,不是通过配置文件配置的,不会。    

8 Spring aop的实现原理,如何加一层动态代理的,我说是创建bean过程中直接生成代理类的实例。

9 Spring的spring quartz知道么,必须不知道    

10 spring源码看过么,mvc了解么,说了一下mvc的原理和请求过程    

11 hibernate和mybatis的源码看过么,没有    

12 如何实现不同环境中配置文件的自动切换,使用脚本或者命令,他说使用hibernate的注解可以实现切换。    

13 nio和io的区别,nio是阻塞轮询的,如何改用异步通知的机制,我说使用aio注册异步回调函数。    

14 nio的包装框架了解么,我说netty,看得深入么,我说没有深入看。    

15 分布式服务dubbo了解么,有哪些功能,如何自己实现一个dubbo,我分别从rpc和微服务的角度说了一下。问我有哪些序列化方式。    

16 mysql问了几个简单问题。    

17 对我们公司了解么,只是稍微了解。    

二面:    

1 项目    

2 Java的内存模型,堆和栈分别存什么    

3 Java的深拷贝和浅拷贝    

4 Spring的aop怎么实现的,动态代理的原理是什么 。

5 Spring MVC的请求过程。    

6 跳出Spring,说一下浏览器的请求过程    

7 网络编程这一块,你了解哪些,说了socket和nio  。

8 nio的底层实现一般是epoll,讲一下epoll吧。    

9 mysql的索引说一下,二级索引是怎么进行查找的。

10 MySQL的两个引擎区别    

11 hibernate的orm是怎么实现的,我说的是xml和注解的解析,以及jdbc封装    

12 hibernate的事务如何实现,我说是jdbc的事务实现。    

13 分布式数据库查询一个表的前十条数据,对id进行hash来索引节点,如何进行查询。我说那就对id hash,找到节点分别查询。    

14 分布式系统的概念,如果有数据一致性怎么办,答cap和base    

15 了解哪些分布式技术,说了缓存,负载均衡,消息队列,Hadoop    

16 负载均衡的衡量指标,不知道    

17 消息队列了解哪个,rabbitmq和kafka,为什么kafka比rm快,答了零拷贝,具体实现原理答错了,应该是避免复制数据到应用缓冲,直接使用sendfile传输数据。    

18 hadoop了解哪些,hdfs的文件读写机制说一下。    

19 没什么问题了    

20 需要来现场面试,其实我不想去现场面,然后隔天给我发了拒信

▼更多精彩内容

今日头条研发面经

蚂蚁金服研发面经

百度研发面经整合版

拼多多&快手研发面经

腾讯研发面经

大侠,这里有干货!

喜欢记得来一个

--------------------- 本文来自 How_2_Play_Life 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/a724888...


程序员黄小斜
947 声望123 粉丝