拼多多和小红书面试全过程

拼多多一面(40分钟八股+20分钟做题)

1. 项目(聊了一下项目的业务与自己开发的模块)
2. 实习(主要聊了一下参与的项目,相关业务,以及实习中碰到的难题与解决思路)
3. b+树
4. mvcc原理
5. 数据库事务
6. 做题:lru
7. 反问业务,面试官说是多多买菜,履约相关
项目没有深挖,主要在聊实习,八股也不难

拼多多二面(40分钟八股+20做题)

1. 实习项目,具体说一下业务背景、数据表设计、碰到的技术难题
2. jvm内存区域
3. 永久代的意义,为什么要移除永久代
4. 垃圾回收机制
5. java线程同步的方法有哪些
6. mysql日志有哪些
7. linux下查看某文件下某个字符串的出现个数和所在行数
8. 分数到小数,力扣原题

小红书搜索架构(java)一面

1. 实习项目(介绍了一下任务系统,说了一下项目碰到的技术难题) 

2. 分布式id有哪些方案 

3. 雪花算法具体说一下 

4. 机器id是什么 

5. 可以用IP地址作为机器ID吗 

6. 不同机器IP地址可能相同吗(同一个内网环境) 

7. 不在内网环境下生成的IP呢(用MAC地址) 

8. 分布式锁有哪些方案 

9. 现场写一个基于redis的分布式锁的伪代码 

10. 看到我用@Resource注入,问了一下@Resource和@Autowired的使用场景 

11. 直接给锁一个过期时间好还是执行完删除锁好 

12. 你平时用过期时间还是用删除锁这个方案,为什么 

13. 说一下ThreadPoolExecutor的参数的意义 

14. 具体说一下存活时间这个参数的意思 

15. 这个值设置为多少比较合适 

16. 那核心线程数和最大线程数怎么设置 

17. 怎么终止一个线程 

18. wait和sleep有什么区别 

19. synchronized和reentantlock的区别 

20. synchronized是非公平还是公平锁,为什么 

21. reentantlock为什么可以实现公平锁 

22. final关键字了解多少 

23. 匿名内部类访问外部成员变量时编译器会提示需要final修饰,为什么?

24. 写一下单例模式,要求多线程安全并且是懒汉式的(先写了经典的懒汉式,然后面试官不满意,然后写了双重校验的,面试官还是不满意,最后写了静态内部类的) 

25. 为什么静态内部类的实现是懒汉式&线程安全 

26. 做题:链表排序,时间和空间复杂度越低越好(之前用快排思想写过,太复杂了,最后用归并排序的思想写了)

27.分析一下时间和空间复杂度(空间复杂度o1,这块没分析好) 

28. 反问

小红书搜索架构(java)二面

大概40分钟左右。

1. 自我介绍,然后问了一下入职时间以及可以实习的时间,稍微问了一下实习的项目,加起来十分钟左右。

2. 让我实现一个数据结构,插入是o(logn)时间复杂度,查找中位数是o(1)时间复杂度,马上想到拼多多笔试题第三题,就是一个最大堆和一个最小堆,然后不断维护。

3. 做题,二叉树层序遍历,但是偶数层从左往右,奇数层从右往左。

4. 反问业务,面试官说这边主要是搜索架构,有三层,最底层是大数据相关开发,流处理等等,第二层是c++开发,最顶层java开发,直面用户,我进去主要是最顶层相关业务开发。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些多多面试中可能会涉及到的前端面试题和答案: 1. 说一下 CSS 盒模型? 答:CSS 盒模型是指在网页布局时,每个元素所占据的空间可以看做是一个矩形的盒子。盒模型包括内容区域(content)、内边距区域(padding)、边框区域(border)和外边距区域(margin)。 2. 什么是闭包? 答:闭包是指在函数内部定义的函数,它可以访问到它外部函数的变量和参数,即使外部函数已经执行完毕,闭包仍然可以访问到这些变量和参数。闭包在 JavaScript 中非常常见,比如在事件处理器、定时器、Ajax 请求等场景中都会用到。 3. 什么是跨域?如何解决跨域问题? 答:跨域是指在浏览器中,如果一个网页的脚本试图访问不同源(协议、域名、端口)的服务器资源,就会引发跨域问题。为了保证浏览器的安全性,浏览器会限制脚本访问不同源的资源。 解决跨域问题的方法有很多种,常用的方法包括: - JSONP:利用 <script> 标签可以跨域访问资源的特性,通过动态创建 <script> 标签,将需要获取的数据以参数的形式传递给服务器,服务器在返回时将数据包裹在一个函数调用中,从而实现跨域获取数据。 - CORS:CORS(Cross-Origin Resource Sharing)是一种基于 HTTP 头部的跨域解决方案,它允许服务器在响应头中设置 Access-Control-Allow-Origin 头部,表明哪些源可以访问该资源。 - 代理:通过在同源服务器上设置代理,在代理服务器上转发请求,从而实现跨域访问资源。 4. 如何实现一个简单的 Promise? 答: ```javascript function MyPromise(fn) { var self = this; self.value = null; self.error = null; self.onFulfilled = null; self.onRejected = null; function resolve(value) { setTimeout(function() { self.value = value; self.onFulfilled(self.value); }, 0); } function reject(error) { setTimeout(function() { self.error = error; self.onRejected(self.error); }, 0); } fn(resolve, reject); } MyPromise.prototype.then = function(onFulfilled, onRejected) { var self = this; self.onFulfilled = onFulfilled; self.onRejected = onRejected; }; ``` 5. 什么是事件冒泡和捕获?如何阻止事件冒泡? 答:事件冒泡和捕获是指在页面中,当一个元素触发了某个事件时,该事件会先从最外层的元素开始依次向下传递,直到触发该事件的元素为止,这个过程称为事件冒泡;相反,事件捕获是从最外层元素开始,依次向下寻找触发该事件的元素,这个过程称为事件捕获。 阻止事件冒泡的方法包括: - 使用 Event 对象的 stopPropagation() 方法,可以阻止事件继续向上传播。 - 在事件处理函数中,返回 false 可以阻止事件继续向上传播。 以上是一些常见的多多前端面试题和答案,希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值