美团面经-java开发 - Go语言中文社区

美团面经-java开发


 美团
(1)1 1 2 3 5 8...,求第n项
写了个递归,面试官问了两个,n=-1,和极限最大值情况下怎么办。
我回答,会导致栈的内存空间溢出。又问了,在栈里会是个怎样的过程。
(2)打开摩拜单车页面,问让你去实现,就是实现找到离自己所在位置最近的一些单车的位置信息。
难点是,如何在千万级别的数据中,快速匹配距离最小的单车实体。
(3)问在10T级别的文本数据中,词已经分好的情况下,在只有512mb的内存空间下,找到数量前10的词?
  解答:
  链接:海量数据处理 - 10亿个数中找出最大的10000个数(top K问题),中方法(4)多机+受限内存,比较符合本题。
(4)进程和线程的区别
(5)多线程一定比单线程快吗
(6)乐观锁和悲观锁的概念,分别在什么情况下适用
(7)堆和栈的区别,堆的区划分,gc root 根有哪些类型。默认情况下,新生代的对象多少次gc会进入老年代
(8)新生代内部的eden和survivor关系,和老年代的区别
(9)数据爬区过程中,分了不同的工作区,进行多线程的工作,如何保证,某个区内,多线程的各种单线程的工作不是重合的,即不会爬到相同的数据,造成资源的浪费。
  解答:
  下面的方法解决了三个问题,
  1,考虑了计算机的工作内存,采用MapReduce的方式,分块处理,同时加快了处理和查询的速度。
  2,解决了线程或者MapReduce中分块的可能会重复工作的问题,因为数据hash后,根据hash值范围对数据进行分配,个线程或者分块工作能识别自己的工作的范围没避免重复计算。
  3,消除了大量重复数据占用内存的影响,当然,采用了hash的方法,节省存储空间。
  

 

 

转载于:https://www.cnblogs.com/zz22--/p/11634074.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_30663391/article/details/102436537
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 16:52:41
  • 阅读 ( 926 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢