美团面试, 问的贼细~

磊哥课程2024-03-25 09:45:40  61

下面是美团校招的面试真题和答案解析,问的比较细,涉及到的模块有:网络、框架、设计模式(静态代理模式)、手撕代码、MySQL、Java 基础、HashMap 等知识点,接下来我们一起来看吧。

1.自我介绍

自我介绍讲明白三个点:

你是谁?有几年工作经验?哪一届的学生?毕业院线?

你会啥?

你最大成就?

2.HTTP属于传输协议的哪一层协议?

HTTP 属于应用层,基于 TCP/IP 实现。

3.TCP和UDP的区别?

TCP 有连接;UDP 无连接。

TCP 可靠;UDP 不可靠。

TCP 基于数据流;UDP 基于数据报。

UDP 比 TCP 更高效。

TCP 发送缓冲区、接收缓冲区;UDP 只有接收缓冲区,没有发送缓冲区。

4.TCP的可靠性传输怎么保证?

保证可靠性的机制:

确认应答。

超时重传。

连接管理(三次握手和四次挥手)。

拥塞控制。

流量控制。

5.如果让你设计一个协议,你怎么保证可靠性?

可靠性主要依据:

连接管理

确认应答

超时重传

6.TCP为什么需要三次握手?

TCP 通讯的双方都是全双工的,所以他们彼此要证明自己和对方的发送能力和接收能力。

TCP 如果两次握手不能证明服务器端的发送能力和客户端的接受能力 -> 两次握手。

TCP 至少需要三次握手才能证明彼此的全双工能力。

7.TCP为什么需要四次挥手?

原因有两个:

TCP 本身自带确认应答。

TCP 有接收缓冲区的任务可能没执行完。

8.GET和POST请求的区别?

主要区别:

隐私性:通常情况下 POST 的隐私性高于 GET。

Restful 规范:GET 用于查询;POST 用于写入操作。

传参的大小不同:GET 传参有大小限制,而 POST 没有。

9.你刚才说GET请求传输文件大小是有限制是多少?

不同的浏览器是不同。

早期版本通常是 2k~4k,现在是 4K~8k。

10.我看你博客写了很多关于Spring的东西,你可以给我说一下Spring的最重要的两大特性吗?

Spring 核心功能:

IoC

AOP

11.可以聊一下AOP吗?

思路:

讲定义:AOP 面向切面编程。

讲实现

框架添加 AOP 依赖

定义切面(@Aspect)并且将它放到 IoC 容器

定义切点 -> @Pointcut 拦截规则

定义通知 -> 拦截之后的执行方法

讲原理:依靠 AOP 实现:

JDK Proxy

CGLib

12.说一下静态代理的实现类图吗?

UML 类图 -> 设计模式

静态代理 UML 类图:

接口类

真实类(被代理的类)

代理类

13.现在手写一个静态代理?

14.Java基础类型有哪几个?

Java 有以下 8 大数据类型:

整型:byte、short、int、long

浮点类型:float、double

字符类型:char

布尔类型:boolean

15.int是几个字节?

4个字节。

16.int和Integer有啥区别?那你觉得哪一个用起来好,为什么?

区别:

int 属于基础数据类型

Integer 属于对象。

使用场景:

int 使用场景:定义类里面的属性。

Integer 使用场景

传参

泛型

对象工具方法

17.MySQL的事务隔离级别有哪几个?

读未提交:存在脏读、不可重复读、幻读问题。

读已提交:没有脏读问题了,但是依然存在不可重复读和幻读的问题。

可重复读(默认隔离级别):没有脏读、不可重复读的问题,但依然存在幻读问题。

串行化:没有脏读、不可重复读、在幻读的问题,但效率较低。

18.为什么读已提交有不可重复读的问题?

读已提交会查询事务已经提交的数据,所以在两次相同的查询中,可能会读到不同的内容,这个问题就是不可重复读的问题。

19.你可以给我模拟一下读已提交发生不可重复读的问题吗?

begin; -- 开启事务select username from users where id=1; -- 张三-- 事务2将 users id=1 username='李四'-- ....select username from users where id=1; -- 李四

20.写一个SQL语句:查询男生的数量?

select count(*) from users where gender=1;

21.根据写的SQL说一下这个里面索引是谁?生效了吗?

考察的重点:性别是否适合做索引?

无索引,因为性别不适合做索引。

22.HashMap的底层实现原理?

HashMap 使用数组+链表/红黑树来实现的。

23.为什么HashMap要用到链表?

HashMap 会有哈希冲突,HashMap 使用的是链地址法来解决哈希冲突(实现简单、高效),所以使用链表来实现 HashMap 解决哈希冲突。

本文视频解析

飞书链接:https://r6b93q3exi.feishu.cn/docx/GBJPdy5hIoqTZNxMV8WcBDWUnHb

密码:1p6698&1

本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:Redis、JVM、并发、并发、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、设计模式、消息队列等模块。

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/36648.html
0
最新回复(0)