111升学论坛

 找回密码
 加入家园
专业、学校怎么选?免费公益咨询解答开通学校版块微信:543646没考上高中怎么办,不要慌!
热门:大连报关学校招生网增加印象分,实用新型专利包过申请发明专利申请并不难,代写全部材料,轻松申请!
查看: 1211|回复: 14

美团、腾讯、头条、滴滴面试:并发+MySQL+Redis+Nginx+算法

[复制链接]

35

主题

50

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2021-2-17 21:21:43 | 显示全部楼层 |阅读模式
集群智慧云科服发明专利申请
非常非常不错的一篇面经文章,文中很多的面试题目都值得我们在面试前刷一遍,强烈推荐阅读3遍以上。如果觉得不错,可以收藏分享一下。(面经没有具体答案,需要大家一起来探讨学习一下。)
美团面试常问


  • java虚拟机内存模型
  • 内存溢出一般发生在哪个区?永久代会不会导致内存溢出?
  • 动态加载类的框架了解哪些?
  • 动态代理一般有哪几种实现方式?动态代理的应用场景有哪些?
  • 栈会不会溢出?栈溢出一般抛什么异常?jvm在哪里设置栈的大小?设置的参数是什么?
  • 用过哪些命令查看jvm的状态、堆栈信息?
  • jvm的垃圾回收机制?
  • java类加载机制?如何实现自定义类加载器?findClass与loadClass的区别?
  • String、StringBuffer、StringBuilder的区别?对应的使用场景?
  • 如何实现不可变的类?
  • 浅复制和深复制?怎样实现深复制?
  • HashMap、HashTable、ConcurrentHashMap的区别?
  • CAS是一种什么样的同步机制?
  • NIO的原理,包括哪几个组件?
  • 简单介绍一下java的反射机制?反射在哪些地方有应用场景?
  • spring加载bean的流程?
  • java线程池?线程池构造函数的几个参数含义?keepAliveTime解释一下?
  • 一个接口,要去调用另外5个接口,每一个接口都会返回数据给这个调用接口,调用接口要对数据进行合并并返回给上层。这样一种场景可能用到并发包下的哪些类?你会怎么去实现这样的业务场景?
  • CountDownLatch和CyclicBarrier的区别?
  • 线程加锁有哪些方式?synchronized和lock的区别?
  • volatile关键字的作用?为什么使用AtomicLong而不使用Long?AtomicLong的底层是怎么实现的?
  • mysql的存储引擎有哪几种?
  • sql优化有哪些着手点?组合索引的最左前缀原则的含义?
  • springmvc处理请求的流程?
  • spring的事务怎么使用?事务回滚?自定义异常?
  • 脏读?幻读?
  • tcp四次挥手的过程?TIME_WAIT为什么至少设置两倍的MSL时间?
  • get和post请求的区别?
  • cookie和session的请求?
  • 了解哪些开源的中间件?缓存?消息?分布式框架?
  • 用到过哪些设计模式?单例模式的实现?
  • 数据库的事务实现原理、操作过程、如何做到事物之间的独立性等问题
  • 数据库的脏读,幻读,不可重复读出现的原因原理,解决办法
  • 数据库的隔离级别、MVCC
  • 乐观锁、悲观锁、互斥锁、读写锁的原理实现与区别
  • 线程的生命周期
  • 一致性hash算法原理与应用
  • CAP原则
  • CAS操作
  • 分布式raft算法
腾讯篇

Java基础

  • JAVA中的几种基本数据类型是什么,各自占用多少字节。
  • String类能被继承吗,为什么。
  • String,Stringbuffer,StringBuilder的区别。
  • ArrayList和LinkedList有什么区别。
  • 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序。
  • 用过哪些Map类,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。
  • JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。
  • 有没有有顺序的Map实现类,如果有,他们是怎么保证有序的。
  • 抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接口么。
  • 继承和聚合的区别在哪。
  • IO模型有哪些,讲讲你理解的nio ,他和bio,aio的区别是啥,谈谈reactor模型。
  • 反射的原理,反射创建类实例的三种方式是什么。
  • 反射中,Class.forName和ClassLoader区别 。
  • 描述动态代理的几种实现方式,分别说出相应的优缺点。
  • 动态代理与cglib实现的区别。
  • 为什么CGlib方式可以对接口实现代理。
  • final的用途。
  • 写出三种单例模式实现 。
  • 如何在父类中为子类自动完成所有的hashcode和equals实现?这么做有何优劣。
  • 请结合OO设计理念,谈谈访问修饰符public、private、protected、default在应用设计中的作用。
  • 深拷贝和浅拷贝区别。
  • 数组和链表数据结构描述,各自的时间复杂度。
  • error和exception的区别,CheckedException,RuntimeException的区别。
  • 请列出5个运行时异常。
  • 在自己的代码中,如果创建一个java.lang.String类,这个类是否可以被类加载器加载?为什么。
  • 说一说你对java.lang.Object对象中hashCode和equals方法的理解。在什么场景下需要重新实现这两个方法。
  • 在jdk1.5中,引入了泛型,泛型的存在是用来解决什么问题。
  • 这样的a.hashcode() 有什么用,与a.equals(b)有什么关系。
  • 有没有可能2个不相等的对象有相同的hashcode。
  • Java中的HashSet内部是如何工作的。
  • 什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决。
  • java8的新特性。
JVM

  • 什么情况下会发生栈内存溢出。
  • JVM的内存结构,Eden和Survivor比例。
  • JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor。
  • JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的JVM参数。
  • 你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。
  • 垃圾回收算法的实现原理。
  • 当出现了内存溢出,你怎么排错。
  • JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存等。
  • 简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。
  • 讲讲JAVA的反射机制。
  • 你们线上应用的JVM参数有哪些。
  • g1和cms区别,吞吐量优先和响应优先的垃圾收集器选择。
  • 怎么打出线程栈信息。
开源框架

  • 简单讲讲tomcat结构,以及其类加载器流程,线程模型等。
  • tomcat如何调优,涉及哪些参数 。
  • 讲讲Spring加载流程。
  • Spring AOP的实现原理。
  • 讲讲Spring事务的传播属性。
  • Spring如何管理事务的。
  • Spring怎么配置事务(具体说出一些关键的xml 元素)。
  • 说说你对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的。
  • Springmvc 中DispatcherServlet初始化过程。
  • netty的线程模型,netty如何基于reactor模型上实现的。
  • 为什么选择netty。
  • 什么是TCP粘包,拆包。解决方式是什么。
  • netty的fashwheeltimer的用法,实现原理,是否出现过调用不够准时,怎么解决。
  • netty的心跳处理在弱网下怎么办。
  • netty的通讯协议是什么样的。
  • springmvc用到的注解,作用是什么,原理。
  • springboot启动机制。
操作系统

  • Linux系统下你关注过哪些内核参数,说说你知道的。
  • Linux下IO模型有几种,各自的含义是什么。
  • epoll和poll有什么区别。
  • 平时用到哪些Linux命令。
  • 用一行命令查看文件的最后五行。
  • 用一行命令输出正在运行的java进程。
  • 介绍下你理解的操作系统中线程切换过程。
  • 进程和线程的区别。
  • top 命令之后有哪些内容,有什么作用。
  • 线上CPU爆高,请问你如何找到问题所在。
头条篇


  • 5个人去一个海岛寻宝,最后一共找到了100枚金币。他们约定了一个分配方案。
  • 给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。
  • 一个环有10个节点,编号0-9。从0点出发,走N步又能回到0点,共有多少种走法?
  • 一个乱序数组,求第K大的数。排序方式使用字典序。
  • 一棵二叉树,求最大通路长度。(即最大左右子树高度之和)
  • 进程和线程的区别,使用线程真的能节省时间?
  • go协程的调度方式,使用协程真的能节省时间?
  • 水平触发边沿触发的区别?在边沿触发下,一个socket有500的数据,已读取200然后不再处理,是不是剩下的300就永远无法读取?
  • 有函数如下,输入1,返回什么?
  • 设计http协议,A端发送 AAAA,至少让B端知道AAAA已发送完成。
  • 流量总入口为api_gateway,api_gateway挂了会导致全部挂挂,用什么机制增大可用性?
  • mysql为什么要用b+树,不用平衡二叉树做索引结构?
  • 创建数据库索引应该怎么考虑?
  • 使用int 做primary key和使用string 有什么优劣?
  • 数据库分表的方法?
  • 表结构,订单纪录如下,写一个语句,求卖的最好的 top 10 product_id。
  • 微服务,A服务请求B服务B1接口,B1接口又请求A服务A2接口。会不会有问题?
  • 不使用高级工具,只使用Linux自带的工具,你会如何debug?
  • 如何预估一个mysql语句的性能?
  • go函数中,返回值未命名,发生了panic,但是在函数内recover了。函数返回什么值?
  • socket中,在tcp协议层面,数据分为10个报文发放。1-7次很顺利,第8次丢失。这次通信一定失败吗?如果第8次数据会重发,那在接收端是不是:先读取到1-7次的数据,然后读取到8-10次的数据?还是9-10次的数据会先到达?
  • free -h,buffers 和cached有什么不同
  • 后台进程有什么特点,如果要你设计一个进程是后台进程,你会考虑什么
  • 僵尸进程是什么,如果产生一个僵尸进程,如何查找僵尸进程
  • 孤儿进程是什么
  • 一个进程有20个线程,在某个线程中调用fork,新的进程会有20个线程吗?
  • tcp/ip 流量控制和拥塞控制
  • 301/302有什么区别?应用上有什么异同。
  • 50X相关错误码的内涵是什么?
  • close wait和time wait是什么?如何排查?有什么意义?
  • http req和resp的中数据有哪些
  • 什么是连接的半打开,半关闭状态
  • 假如一个业务依赖单点redis,此redis故障将导致业务不可用,如何改进
  • redis sharding有哪些做法
  • 当大量数据要求用redis保存,单机单点难以满足需要,设计(换寻找)一个负载均衡的方案
  • 当redis 采用hash做sharding,现在有8个节点,负载方案是 pos = hash(key) % 8,然后保存在pos节点上。这样做有什么好处坏处?当8个节点要扩充到10个节点,应该怎么办?有什么更方便扩充的方案吗?(一致性hash, presharding)
  • 如何保证redis和数据库数据的一致性。比如用户名既保存在数据库,又保存在redis做缓存。有如下操作 update_db(username); update_redis(username)。但是执行update_db后故障,update_redis没有执行。有什么简单办法解决这个问题。
  • 数据库表包含三列:广告编号ad_id,广告开始投放时间ad_start,广告投放结束时间ad_end。用一行SQL语句查询给定时间段内存在的广告。
  • 讲讲MapReduce的原理。
  • 举出几种进程通信、线程通信的方式。
  • 对列表中每一个元素找出比它大的第一个元素:输入一个listin,返回一个listout。对于任意listin[x],将满足 y > x 且 listin[y] > listin[x] 的第一个 listin[y] 值作为 listout[x] 的值。时间复杂度限制为O(n)。
滴滴篇


  • B+树、B-树的区别?
  • 数据库隔离级别,幻读和不可重复读的区别?
  • 有hell, well, hello, world等字符串组,现在问能否拼接成helloworld,代码实现。
  • 快排算法实现
  • 线程安全的单例模式
  • 25匹马赛跑,有一个赛场,只有五个赛道,没有计时器,只能通过目测来记录快慢,求出第三3快的马要多少场比赛?
  • kmp算法next数组的求解思路
  • 数组中有三个数字出现超过3/4,求这三个数字?
  • 1到n+2个数组中缺了两个数,如何用O(n)时间,O(1)空间找到这两个数字。
  • 一条线段长为1,随机选两个点,将改线段分为三段,三段能成三角形的概率是多少?
  • 有一个教授,他三个学生,脑袋背后分别各写了一个数字,其中一个数字是另外两个数字的和,经过几轮后,有一个学生猜出了自己的数字请问是什么原因?
  • B+树做索引时,B+树通常高度为多少层?要参考哪些条件?
并发编程篇

1、线程与进程的区别?
2、什么是多线程中的上下文切换?
3、死锁与活锁的区别,死锁与饥饿的区别?
4、什么是Executors框架?
5、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
6、什么是Callable和Future?
7、什么是FutureTask?
8、什么是竞争条件?你怎样发现和解决竞争?
9、为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?
10、Java中你怎样唤醒一个阻塞的线程?
11、java中有几种方法可以实现一个线程?
12、如何停止一个正在运行的线程?
13、notify()和notifyAll()有什么区别?
14、什么是Daemon线程?它有什么意义?
15、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
针对以上问题,小编整理了一份并发编程的实战学习文档以及面试答案,整理不易,诚意分享,有需要的朋友帮忙转发此,关注小编+后台私信“资料”即可获取资料领取方式!
hC6a10AZ36VKc0v0.jpg



aIX981IjEjT9OzhK.jpg



MySQL篇


  • 主键 超键 候选键 外键
  • 数据库事务的四个特性及含义
  • 视图的作用,视图可以更改么?
  • drop,delete与truncate的区别
  • 索引的工作原理及其种类
  • 连接的种类
  • 数据库范式
  • 数据库优化的思路
  • 存储过程与触发器的区别
针对以上问题,小编整理了一份MySQL面试答案。关注小编后台私信“资料”获取。
vxssEeXQaQGMQhYQ.jpg



Redis篇


  • 使用Redis有哪些好处?
  • redis相比memcached有哪些优势?
  • redis常见性能问题和解决方案
  • MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
  • Memcache与Redis的区别都有哪些?
  • Redis 常见的性能问题都有哪些?如何解决?
  • redis 最适合的场景
  • Redis的同步机制了解么?
  • 是否使用过Redis集群,集群的原理是什么?
  • redis集群如何保证一致性?
针对以上问题,小编整理了一份Redis的实战学习文档以及面试答案,整理不易,诚意分享,有需要的朋友帮忙转发此文,关注小编+后台私信“资料”即可获取资料领取方式!
YAqwOEOo6OOD90qQ.jpg





xKs5AbqNjk7dq7fA.jpg



Nginx篇


  • 请解释一下什么是Nginx?
  • 请列举Nginx的一些特性?
  • 请列举Nginx和Apache 之间的不同点?
  • 请解释Nginx如何处理HTTP请求。
  • 在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
  • 使用“反向代理服务器”的优点是什么?
  • 请列举Nginx服务器的最佳用途。
  • 请解释Nginx服务器上的Master和Worker进程分别是什么?
  • 请解释你如何通过不同于80的端口开启Nginx?
  • 请解释是否有可能将Nginx的错误替换为502错误、503?
  • 在Nginx中,解释如何在URL中保留双斜线?
  • 请解释ngx_http_upstream_module的作用是什么?
  • 请解释什么是C10K问题,后来是怎么解决的?
  • 请陈述stub_status和sub_filter指令的作用是什么?
  • 解释Nginx是否支持将请求压缩到上游?
  • 解释如何在Nginx中获得当前的时间?
  • 用Nginx服务器解释-s的目的是什么?
  • 解释如何在Nginx服务器上添加模块?
  • nginx中多个work进程是如何监听同一个端口的?如何处理客户连接的惊群问题?
  • nginx程序的热更新是如何做的?
针对以上问题,小编整理了一份Nginx的实战学习文档以及面试答案,整理不易,诚意分享,有需要的朋友帮忙转发此,关注小编+后台私信“资料”即可获取资料领取方式!
L28nn8Z2AK4GKdNN.jpg





Rn7U8ec7YBFcN8c7.jpg



算法篇


  • 10亿个数字里里面找最小的10个。
  • 有1亿个数字,其中有2个是重复的,快速找到它,时间和空间要最优。
  • 2亿个随机生成的无序整数,找出中间大小的值。
  • 给一个不知道长度的(可能很大)输入字符串,设计一种方案,将重复的字符排重。
  • 遍历二叉树。
  • 有3n+1个数字,其中3n个中是重复的,只有1个是不重复的,怎么找出来。
  • 写一个字符串(如:www.javastack.cn)反转函数。
  • 常用的排序算法,快排,归并、冒泡。 快排的最优时间复杂度,最差复杂度。冒泡排序的
  • 优化方案。
  • 二分查找的时间复杂度,优势。
  • 一个已经构建好的TreeSet,怎么完成倒排序。
  • 什么是B+树,B-树,列出实际的使用场景。
  • 一个单向链表,删除倒数第N个数据。
  • 200个有序的数组,每个数组里面100个元素,找出top20的元素。
  • 单向链表,查找中间的那个元素。
更多面试专题答案、实战学习文档,需要获取的朋友们可以转发分享此文,关注小编后台私信:“资料”即可一并获取。
Ky6jpXPZS9xpZJy3.jpg



YtPZSWv5wZvRwqZS.jpg



PGQ4L887Nse1801t.jpg



Java后端面试高频题视频讲解
ko0Uc5654UJOz436.jpg
回复

使用道具 举报

41

主题

92

回帖

413

积分

中级会员

Rank: 3Rank: 3

积分
413
发表于 2021-2-17 21:26:00 | 显示全部楼层
没有找到私信功能,
回复

使用道具 举报

52

主题

57

回帖

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2021-2-17 21:30:17 | 显示全部楼层
转发了
回复

使用道具 举报

46

主题

70

回帖

356

积分

中级会员

Rank: 3Rank: 3

积分
356
发表于 2021-2-17 21:34:34 | 显示全部楼层
start
回复

使用道具 举报

31

主题

69

回帖

317

积分

中级会员

Rank: 3Rank: 3

积分
317
发表于 2021-2-17 21:38:51 | 显示全部楼层
转发,谢分享
回复

使用道具 举报

37

主题

42

回帖

195

积分

新手上路

Rank: 1

积分
195
发表于 2021-2-17 21:43:08 | 显示全部楼层
资料
回复

使用道具 举报

59

主题

60

回帖

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2021-2-17 21:47:25 | 显示全部楼层
已转发
回复

使用道具 举报

27

主题

49

回帖

222

积分

中级会员

Rank: 3Rank: 3

积分
222
发表于 2021-2-17 21:51:42 | 显示全部楼层
已转发
回复

使用道具 举报

32

主题

56

回帖

253

积分

中级会员

Rank: 3Rank: 3

积分
253
发表于 2021-2-17 21:55:59 | 显示全部楼层
收藏了
回复

使用道具 举报

52

主题

106

回帖

515

积分

高级会员

Rank: 5Rank: 5

积分
515
发表于 2021-2-17 22:00:16 | 显示全部楼层
转发了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入家园

本版积分规则

QQ|Archiver|手机版|小黑屋|111升学论坛

GMT+8, 2024-12-28 03:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表