2018春招实习面试经历

 

阿里菜鸟  app后端开发  简历面   3月1日    32分钟

1,hashset的特点 底层数据结构  用的hashmap

2,hashmap底层数据结构 是否线程安全   如何避免hash冲突  用什么可以保证线程安全 concurrentHashmap的底层数据结构

3,秒杀系统的核心数据结构 优先队列  用堆实现的优先队列有什么好处 可以减少流量

4,i++如何实现原子操作?  jdk中concurrent.atomic包中的相关类如 AtomicInteger

5,类加载机制 双亲委派的好处  可以保证一个类只被一个类加载器加载   和JDK自带类同名的自建类不会被加载 http://www.cnblogs.com/lanxuezaipiao/p/4138511.html

6,java有几种类加载器  Bootstrap  Extension  Application  

7,mysql的binlog 

8,spring的ioc原理

9,arraylist和linkedlist的区别

10,servlet是否线程安全

11,like %xx  l和like xx%是否有效率差异  前者会使索引失效

12,mysql索引的种类有哪些

总结:阿里是第一个面试我的公司,晚上8点多突然打电话来,那时我刚和同学出去吃饭回来,猝不及防搞我的很紧张,另外由于个人原因有3个月左右没怎么学习过,所以很多东西都忘了,表现的不好.如问我的第一个问题servlet是否线程安全都没答上来,给面试官的印象很不好,所以简历面就跪了..

 

 

 

美团点评  出行事业部  大数据分析岗   一面 二面   3月2日    共2小时

1,nio aio讲一下

2,hashmap的底层数据结构 如何防止hash冲突 为什么hashmap是线程不安全的 为什么会循环引用

3,spring 的ioc和aop原理

4,跳跃表讲一下

5,垃圾回收有哪些算法 

6,类加载器有哪些 双亲委派原则是怎么样的

7,java内存的5个区域

8,判断对象是否可以回收的算法

9,threadlocal的作用,底层数据结构

10,线程池中的参数介绍

11,volitile关键字的作用  可见性 防止jvm指令重排

12,观察者模式讲一下

13,linux的命令 如何查询一个目录下大于500m的文件

如何查出一个目录下的所有日志文件

如何查询一个日志文件的最后10行

如何统计一个日志文件的字节数   wc -c xx.log

14,tcp协议的3次握手 4次挥手

15,快速排序的原理  手写快速排序

16,手写反转链表

17,一个有序数组 给定一个数target 写一个函数判断这个数组中是否有两个数加起来等于给定的数   如 2 3  7 8 9   给定15  数组中有7+8等于15  

        https://blog.csdn.net/woliuyunyicai/article/details/44222949

18,讲一下一个完整的http请求过程

19,动态规划时间复杂度

20,http中常见的响应头 请求头有哪些

21,concurrent包下知道哪些类   ArrayBlockQueue LinkedBlockQueue  ConcurrentLinkedQueue CopyOnWriteArrayList    CopyOnWriteArraySet  ConcurrentSkipListMap   ConcurrentSkipListSet  SynchronousQueue  PriorityBlockQueue DelayQueue CountDownLatch CyclicBarrier  Semaphore Exchanger  Executors  Callable Future FutureTask  ConcurrentHashMap ...

总结: 由于前一天晚上阿里面试表现不好,后来在去美团的路上看了看虚拟机的东西,由于之前系统看过一遍,所以看一下很快就记回来了,后面就是因为一面的时候虚拟机部分答的好过了一面,但是二面的时候写剑指offer的原题 真的太久没写代码下降很多,是在面试官的提示下勉强答出思路, 一面的时候手写快速排序也是写的很尴尬.. 虽然最后二面面试官(应该是一个leader)说之后会有hr联系我,当时真的以为过了,但是现在想想这个面试表现真的基本不可能会过的,现在想想如果真要找实习不要这么着急的,应该先恢复一下实力再投的.

 

 

 

小米   云平台基础部门  分布式框架改进 一面 二面   3月5日   共2小时

1,说一下nio和io的区别 nio的原理 

2,简单介绍下hadoop、storm

3,linux中    如何查看一个进程的cpu占用率  内存占用率  ps aux 或top(动态查看)  或先用top找出要查看进程的pid,然后进入proc文件系统查看 如 cd 1       less status

    如何查看服务器内存使用情况  cpu使用率  vmstat 2 (每隔2秒刷新一次)                  

    如何查看服务器内存使用情况  free -m

    如何查看服务器磁盘空间使用情况 df

    如何查看主机的ip地址 ip addr show 或 ifconfig

  

 查看磁盘空间使用率的命令:df
查看系统进程命令:top
检测Linux性能的命令:ps,free,vmstat,netstat

 

4,手写代码 将一个单向链表每m个数反转一次,最后不足m的不反转

5,一个二叉树,节点中的元素的值为正数负数或0,求最大子树和,  https://blog.csdn.net/andahuzhuang/article/details/52037394

6,手写合并2个有序链表,使得新链表仍然有序

7,详细讲一下多线程生产者消费者例子

8,讲一下并查集  其应用场景在哪里   https://www.cnblogs.com/xudong-bupt/p/8097475.html

9,讲一下java虚拟机的内存结构 5个区域

10,线程池介绍一下

11,手写一个死锁例子

12,讲一下tcp协议的3次握手

 总结:   一面的时候写的代码勉强写出来所以过了一面,二面面试官就是打电话叫我来面试的男人,我之前以为他是hr,他过来的时候我还以为小米只有一面,然后就直接hr面了,然后当他坐下来开始问我多线程问题的时候我才知道我真的是too young too simple,接着就是考我的2道算法题一道没想出来,一道没写对,哎,太尴尬了,我当时还说我因为一些原因很久没写代码了,他说这不是理由,这只能说明你没有完全掌握或者说不够熟练,完全掌握的东西是不会忘的,就像1+1你永远也忘不了,我只能说是是是,确实也是...  接着就是说今天你的表现我是不满意的,但是他说很喜欢我的积极性,自己会去看这么多东西,叫我再回去练练,甚至说只练算法就行,准备好了可以再去找他,他说希望6月份能收到我的消息.走的时候我问他对于应届生,他们最看重的是算法吗?他说是,他们要的是基础好的人,学习速度快的人,不要求一来就能上手做项目,

后来我从去哪儿的面试官那才知道他就是小米云计算平台的老大,真的是大佬,难怪这么有气场, 

这个部门是改进大数据框架的部门,也就是做中间件的部门,对技术的要求还是比较高的,我真的挺想去的,我的程序员梦想就是将来去做写框架的工作,

2面面试官说的那些话是我后面决定转大数据方向的很重要原因之一.

 

 

 

网易有道词典  后端开发   一面  3月6日 1小时10分钟

1,一个二叉树 其中节点满足 左节点值<父节点值<右节点值   将二叉树中的元素值按从大到小的顺序存入数组中 手写代码

     可以用栈或递归(其实都一样),还可以用Comporator接口,

2,spirng都用到了哪些设计模式   ioc用到了工厂模式  aop用到了代理模式 ... 共9种设计模式

3,io中 buffer 和reader writer 用到了什么设计模式  装饰器

4,struts中用户登录用到了什么组件  拦截器

5,如何写一个完整的登录代码  cookie session  数据库

6,linux中查看各端口的情况  netstat

   linux中如何更改环境变量 且不影响其他用户    在home目录下修改.bashrc文件  如export classpath = ..

7,如何防止sql注入  预编译 

8,线程池有哪些 ?线程池达到最大线程数且任务队列满后,有哪些应对方案?   http://blog.csdn.net/u011479540/article/details/51867886

9,如何保证数据库数据被窃取后 黑客最多看到用户名而看不到密码   用md5算法加密密码 数据库中存md5字符串  用户登录时在本地将密码转成md5字符串 再与数据库数据对比

10, String a = "abc"  String b = new String("abc");  String c = "abc"  String d = new String("abc")  四个引用间的关系  http://blog.csdn.net/qq_35448976/article/details/76229408

11,有道有时候要调用第三方翻译接口,但是要先获取到第三方的密钥,没有密钥无法调用翻译接口,密钥每10分钟更新一次,问如何设计程序?

      volitile String authKey;  一个线程执行定时器获取密钥代码,一个线程调用翻译接口,volitile保证可见性,

总结: 这个面试官人非常好,没答出来的问题当场教你,所以网易的面试体验给我感觉很好.走的时候面试官问我学java多久了,我说是研究生开始学的,我说我本科没有好好学习,

         他说没有关系,只要有兴趣就好,他说他认识好几个大牛本科的时候也挂过科,现在github上都有自己的项目了.最关键是要有兴趣,而不是为了钱而去做程序员的.

 

 

 

今日头条 西瓜视频后台开发  一面  3月14日 45分钟

1,map接口常见的实现类有哪些  treemap和hashmap的区别  treemap和hashmap查找的时间复杂度  一个logn 一个o1  

2,进程间通信方式有哪些

3,osi7层模型

4,分页的关键字 limit(x,x) 后面跟的2个参数的含义

5,mysql的索引用的什么数据结构?  B+树           为什么用b+树?  减少磁盘io 范围查找快   B+树查找的时间复杂度

6,tcp为什么是安全的?   tcp3次握手具体过程? 包括握手过程中状态的变化 传输的seq ack

7,Object中的hashCode方法是怎么hash的?  Object中还有哪些方法  wait notify notifyAll等   notifyAll方法调用后发生了什么  把对象的等待池中的所有线程唤醒

8,进程间可以共享内存吗?线程间可以共享内存吗?

9,两个字符串怎么比较相等 用equals 为什么不能用==

10,  http内容分成哪几块 请求和响应   请求分成请求行 请求头 实体内容   请求行里有什么?  http常用的状态码有哪些?

 11, 剑指offer或leetCode原题  复杂链表的复制  手写   

总结: 今日头条的面试是出了名的难,去之前就觉得可能很难通过面试,但是没想到一面就跪了,因为考我的算法题没做出来,但是面试官是我的学长,感觉还是很亲切的,他也说见到我很亲切,

         

 

 

去哪儿 机票部门后端实习    1面2面+hr面  3月15日  2小时

1,spring 注解都用过哪些    ssm框架怎么整合

2,springMVC controller介绍  处理流程

3,讲一个动态规划的例子   黄金矿工(0-1背包问题)   LCS  写出方程组

4,动态规划的思想  动态规划为什么时间复杂度低  避免重复计算 

5,threadlocal为什么能实现变量拷贝  底层实现是什么

6,volitile用在什么场景   http://blog.csdn.net/vking_wang/article/details/9982709

7,常用的线程池有哪些 线程池中参数介绍

8,Future Callable 讲一下     http://souly.cn/%E6%8A%80%E6%9C%AF%E5%8D%9A%E6%96%87/2015/06/06/java%E4%B8%ADfuture%E5%92%8Ccall%E7%9A%84%E5%88%86%E6%9E%90/

9,手写   线程安全的单例模式

10,介绍一下storm

11,一个二维数组 行代表用户 列代表物品  数组中的值0代表没买过 1代表买过,  写函数实现给定一个用户 返回和他最相近的用户   再写个函数实现给 输入的用户推荐物品

总结: 我面试的部门是去哪儿的机票部门里负责用户退改签高并发处理的,面试到去哪儿我的算法功力已经恢复了一点,所以考我的算法题算是写出来了,直接就到了hr面,她让我下星期就去上班,我当时在等其他offer,就说能不能4月份再去,在这个问题上两人扯了一会,最后说到最迟下下周去,她又问我还去哪边面试过,我说小米 美团 网易这些都去过,可能hr面让hr觉得我以后不会留下来,还是说我哪里让她不爽了,几天后得知最后被她刷了,当时一面面试官也不知道我被hr刷了,面试完还请我吃饭跟我说什么时候来提前跟他说下,可能我当时内心已经决定要转大数据了吧,如果他们给我发offer我后面也不会去了,这是真心话.

 

posted @ 2018-03-23 15:57  红茶不知道  阅读(289)  评论(0)    收藏  举报