美团一面凉经

美团一面不出意外的凉…面试题也都紧张的快忘了

上来一道笔试题,也不难。
在这里插入图片描述

第一次这么面试,敲代码的时候手都在抖…

在这里插入图片描述
一直空指针异常…还是太紧张了,不是很难的题,还是自己傻了…哭了

面试题记得也不太清了

  1. Linux中硬链接和软链接的区别

硬链接有着相同的inode和data block,仅仅是文件名不同,本质上就是同一个文件;而软连接的inode不同,保存了其代表文件的绝对路径,是另一种文件,它就像windows里的快捷方式,在硬盘上有自己的区块,访问时替换自身路径
硬链接只能对已存在文件创建,不可交叉文件系统;软连接可对不存在文件或目录创建,可交叉文件系统
删除源文件并不影响硬链接访问,但软链接无法访问,重新创建后可以再访问

  1. 排序算法的稳定性是什么,有哪些是稳定的,哪些是不稳定的

排序算法稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序这些记录的相对次序保持不变,即在原序列中ri=rj且ri在rj之前,而排序后ri仍在rj之前,则称该排序算法稳定,否则不稳定。
(通俗来讲保证排序前两个相等元素的a在前b在后,排序后还是a在前b在后)
稳定排序算法:基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序
不稳定排序算法:堆排序、快速排序、希尔排序、直接选择排序

  1. 快速排序的复杂度是什么,他的复杂度会根据情况改变吗,最大是多少,什么情况下最大。

复杂度:平均O(nlogn)
复杂度会根据数据情况改变
理想情况:每次划分前选择的中间元素恰好能将整个序列几乎等分,复杂度为O(nlogn)
最坏情况:每次选择的中间元素是当前序列的最大或最小元素,这使得每次划分出的两个子序列一个为空一个为n-1,这样长度为n的序列要经过n次划分,复杂度为O(n2)
为改善最坏情况,可用“三者值取中”的方法:比较r[low].key、r[high].key、r[(low+high)/2].key,取三者中关键字为中值的元素为中间数

  1. 什么排序算法是O(n)的

桶排序、基数排序、计数排序

  1. Hashmap的底层是怎么实现的

1.7是数组+链表;1.8是数组+链表+红黑树

  1. HTTP在OSI中是哪一层的,HTTP是有状态的吗,有什么状态

我说有状态,面试官就问有什么状态…问了状态是不是404什么的,面试官说不是…(自己给自己挖坑了…)
应用层,超文本传输协议,从web服务器传送超文本到本地浏览器
HTTP是一种无状态无连接协议,即客户端和服务端的每个连接都是独立的,它的执行结构与前面和后面的请求无关,服务器中不保存客户端的任何状态。而状态码是表示一次请求中的服务器响应状态。
为了存储状态,我们可以用cookie和session来存储(引出cookie和session的区别)

  1. Java的类加载器

四种类加载器
启动类加载器bootstrap classloader:负责加载Java核心类库lib下的jar包
扩展类加载器Extension classloader:负责加载lib/ext下的jar包
系统类加载器System classloader:面向用户的加载器,主要加载java.class.path下的类与jar包,是最常用的加载器,用户自定义的类都是它加载
自定义加载器:自己实现的加载器
(后面就可能说到类加载过程和双亲委派机制)

  1. Spring…
  2. 设计模式知道吗,说下单例模式,lazy是怎么保证线程安全的(不知道),让我自己想一个方法来帮助实现if判空造成的线程不安全(说了信号量…),用Java想一下怎么写。

单例模式:只需要一个某个类的对象,就可以用单例,把自己写成自己的静态私有成员变量,然后通过一个方法返回这个变量给别的类用,分为饿汉式和懒汉式,懒汉式有线程不安全问题,可能两个线程进去if创建了两次对象
lazy的话可用synchronized修饰getInstance方法,缺点是效率低,每次调用都要等
lazy可用双检锁改善,if null -> synchronized -> if null,第一个if正常判空,synchronized实现进入if的多个线程排队,第二个if帮助多个线程进入同步下的判断
在这里插入图片描述

  1. 事务了解吗(说了ACID),隔离等级,幻读

事务的四种特性
原子性:一个事务的执行要么成功要么失败
一致性:事务必须使数据库从一个一致性状态转换到另一个一致性状态
隔离性:事务之间相互隔离,互不干涉,不能在执行完成前调用另一个事务的数据
持久性:事务提交后对其改变是不可逆的,后面产生异常也不会影响
隔离级别
读未提交:一个事务读取了另一个事务未提交的数据
读提交:一个事务提交后才能让另一个事务读取
可重复读:在事务开始读取数据时,其他事务不能修改
序列化:事务串行执行,但是效率低下消耗数据库性能,一般不用
并发操作中的问题
脏读:A事务读取了B事务未提交的数据,提升至读提交
不可重复读:A事务正在多次读取数据,此时B事务对数据进行更新并提交,导致A事务两次读取的数据不一致,提升至可重复读
幻读:一个事务在前后两次查询同一范围时,后一次查到了前一次没有看到的行,提升至序列化

  1. 写的时候用过两张表的情况吗,左连接右连接内连接

左外连接(LEFT OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括左表的所有行,没有匹配的用null表示
右外连接(RIGHT OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括右表的所有行
完全外连接(FULL OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括两个表的所有行
内连接按照ON所指定的连接条件合并两个表,返回满足条件的行

  1. 开放性问题,问我最近读什么技术类书籍(在读面试书籍),对什么技术感兴趣(我说对负载均衡、高并发…我为什么要说),自己想一个算法来解决一下服务器压力的问题…

现在知道了一些策略,轮询、权重(又分好几种)、IP哈希等

  1. 还有好多记不清了…问的几乎都还没复习到…

反问:
如果我想进美团,要掌握什么技术,到什么程度

语言基础、计算机知识基础
如果会用工具、框架的话,要懂工具底层,不能只是会用会增删改查
如果在这些基础上能懂高并发、负载均衡、分布式等等,是加分项

然后我就结束了…记第一次大厂面试凉经…又紧张又不会,问了好多还没看到的,后面心里就想快点结束吧请不要再羞辱我了。在这里插入图片描述
大厂问的虽然也是基础知识,但是又是基础中要求比较高的,唉想去大厂还有很长的路要走。各位小伙伴也请给点评论啊。

后面把答案大都补上了,大家觉得有问题可以评论区留言,请一定!

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值