• 美团面经-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的方法,节省存储空间。
      
  • 相关阅读:
    CSS 之 样式优先级机制
    SQL Server 之 修改时不允许保存更改
    IP_TOS选项
    eXosip2代码分析
    Ubuntu下关闭apache和mysql的开机启动
    linphone3.4.0代码分析
    XMPP/Jingle Vs SIP/SIMPLE 的简单介绍
    git命令常见问题总结
    正向代理与反向代理的区别
    SIP中OPTIONS方法的用法及示例
  • 原文地址:https://www.cnblogs.com/zz22--/p/11634074.html
Copyright © 2020-2023  润新知