最近面试一些厂的面经整理(阿里,腾讯,字节等)

1. 经历了一个半月的时间学习,已拿到阿里,腾讯,字节,美团,oppo,(360剩下hr)的实习offer,总结一些面试内容,希望能对后来的面试人起到帮助

2. 阿里(已通过)

一面

1.两道算法题:

  1. 卖酒瓶问题,五瓶啤酒瓶子可以兑换一瓶,三个瓶盖可以兑换一瓶,n个酒瓶,可以喝多少次
  2. map村成String和String存成map
  1. synchronized和volatile
  2. Hashmap和Hashtable和concurrentHashmap的区别

二面

  1. 简答Spring与Springboot之间的问题
  2. 回答JVM上的问题
  3. 回答Java中锁机制
  4. 回答Java中的数据库问题

三面

  1. 回答Java中的数据索引问题
  2. 回答Spring中一些注解问题
  3. 项目中遇到的问题及其解决方案

交叉面

  1. 两道算法题
    1)英文题目,回文串的判断,包含各种字符
    2)假如允许你对字符串进行如下操作,每次花费“1”的代价把任意字符挪到字符串末端.现在给定两个长度相等的字符串 S1 和 S2,问至少需要多少开销将S1变为S2,比如输入:S1:acdk,S2:ckad, output:2
  2. cookie和session之间的区别,如何防止cookie泄露
  3. 什么是JDBC,它有什么用
  4. JDK和JRE是什么,他们之间有什么联系
  5. Java中的值传递问题
  6. final和finalize之间的区别

HR面:这个因人而异,感觉没啥发的,需要的话再发吧

3. 腾讯pcg(已通过)

一面

  1. 两道算法题
    a. 已知整数数组A ,找到一个具有最大和的连续子数组,并返回和。
    如 { -2, 8, -4, 6, -1},其最大连续子序列为{ 8, -4, 6 },最大和为10
    b. 计算二叉树从根节点到叶子节点的路径和,打印和为定值的所有路径
  2. 项目中并发的部署情况及其高并发问题

二面

  1. 来小伙子跟俺聊聊你的项目,有哪些问题,进行过那些优化,为什么
  2. 如果让你设计一个网盘,你从那些角度进行设计,保证网盘的传输速度尽可能快
  3. 牛逼是吧,来整几个算法题
    1)中序和后续遍历后的结果,给整成正常的树结构,并按照先根顺序输出出来
    2)注意,给你一堆数范围在0-1000且以集合的形式进行存放,请设计一个结构,能够迅速进行存取,删除,进行查找,遍历

三面

  1. 如何保证UDP的可靠传输?怎么实现?
    2.Mysql索引?覆盖索引?什么时候使用B+树,什么时候使用哈希表?
  2. 操作系统多进程和多线程?linux底层中进程中存储成什么形式,包含哪些内容?
  3. python和java的区别?python如何实现多线程?python字典如何实现遍历?两种遍历的区别是什么
  4. 讲讲网络中的洪范攻击,会出现什么问题?如何去应对和解决?
  5. 什么是僵尸进程?
    7.java中的hashmap?Table?ConcurrentHashMap之间的关系区别?
    8.多线程如何创建?里面的参数分别表示什么?
    9.Socket用过吗?底层了解嘛?如何让你实现一个socket服务端,你会注意什么?另外select,poll,epoll之间的区别是什么?
    10.MTU知道吗?不知道!那它的大小是多少?我都不知道怎么知道大小?。。。

四面

  1. 如何用命令查看慢查询 ?Mysql如何进行优化?Mysql底层的数据结构是什么样子?为什么使用b+树?
  2. redis缓存底层怎么实现的?redis如何保证主从一致性问题?
  3. 如何理解多进程和多线程?了解过协线程?什么场景下使用多线程,什么场景下使用多进程?
  4. Hashmap和TreeMap的底层原理
  5. 计算机网络中的四次挥手过程,最后的timewait为什么等待2msl?
  6. 手写代码,以空格分隔的一串字符串,求排序后的顺序
  7. redis中了解过分布式锁吗?其中的list数据结构是什么?

HR面:懒得打字,略

4. 字节(已通过,宣传一波,真的效率很高,温柔)

一面

  1. 基础问题,hashMap及一些并发包的使用
  2. 网络中常常出现的一些响应代码如200OK等
  3. 如何保证多线程安全
  4. sychronized与volatile关键字的区别
  5. 用过线程池嘛?那就开心的聊聊线程池原理,顺便讲讲里面的参数。
  6. 排序算法,找出K个大的数,尽可能耗时少
  7. 二叉树进行从上到下输出出来,按层次遍历
  8. 单例模式,顺便手写一下,不要用脚丫

二面

  1. 手撕代码,在一堆数组中找到首次出现频次大于n的数字
  2. 手撕代码,数组循环右移k位
  3. TCP三次握手
  4. TCP如何保障可靠传输
  5. 进程之间通信方式,那种最快?
  6. 进程和线程之间的区别,线程之间的同步方式
  7. 让你设计一个锁子,如何实现线程安全?不允许使用锁关键字
  8. 泛型中T怎么实现?extends和super之间的区别?

三面

  1. 进程之间的通信模式
  2. java中的IO,BIO,NIO之间的区别和联系
  3. java中的多线程了解么,如何创建线程?差点答到了线程池上。
  4. 即然了解线程池,那么来写个代码,最外层定义i,定义一个void函数里面新建个线程,对i进行+1操作,最后打印i,请问i的值是多少?为什么?如何保证i之后的值为thread运行后的值?(提示使用wait和notify,或者是join来实现,后想到了countdownLock)
  5. 了解md5么?https?
  6. 手撕算法,写两个数相加,数字范围是大于Integer
  7. LRU的应用场景?(如网页最近浏览记录),那如何实现LRU呢?

HR:略

5. 美团(等HR中)

一面

  1. 计算机网络,如何保证可靠传输
  2. 聊聊mysql底层索引
  3. java种的锁机制,说说sychronized底层与原理,说说volatile
  4. redis种的分布式
  5. 手写一个树,并进行递归和非递归中序遍历
  6. 网络中的三次握手,TCP和UDP中的差异,简述一下http和https的区别,并讲讲https的过程,那DNS查找过程讲讲
  7. mysql的索引失效?聚集和非聚集索引,采用的底层数据结构,为什么不用b树
  8. 操作系统中的死锁是什么,如何解决?讲讲你理解的页面调度算法,手写一下LRU。进程和线程的区别是啥,那sleep和wait的区别呢
  9. 来,手写快排
  10. java中的hashmap?arraylist了解过吗?底层原理?java中的反射机制了解过嘛?反射可以操作私有变量不?
  11. 简述一下jvm中强引用,虚引用,弱引用,软引用,简述jvm内存缓冲区
  12. 计算机七层结构,每层功能和使用的协议,ping属于哪层?
  13. 进程之间的通信如何进行?

二面

  1. 项目中为什么使用redis,有什么优点?
  2. String,StringBuilder,StringBuffer区别
  3. Object种包含哪些方法?一般用在哪个场合
  4. Object种finalized()和finally和final之间的区别
  5. Mysql中使用的索引。为什么使用B+树?
  6. 一个方法被private和static修饰,能被override吗?为什么
  7. HashTable和concurrentHashMap区别,源码中哪些地方使用锁?为什么?
  8. 在数据类型中为什么会有包装类型和基本数据类型?
  9. jvm中的垃圾回收机制
  10. 项目中使用的垃圾回收器?项目中怎么进行JVM调优?如何查看服务器日志?
  11. 做题,美团笔试题类型,贼复杂
  12. java中的内存泄露问题,如何出现?如何解决?

三面

  1. 聊聊HashMap呗,源码一些问题,put过程,resize过程,什么时候会出现resize,你知道底层的数据结构吗?里面有些关键变量分别是什么?
  2. HashMap中你key存放过哪些东西?尝试过放对象么?需要实现两个东西,是什么东西
  3. 怼项目20分钟
  4. 写个代码,链表反转,有没有其他的好方法
    5.java内存堆,栈分别放什么东西?String str = "abc"和String str1 = new String(“abc”);之间的区别?==和equal的区别?你平时重写过equal没?hashcode有没有重写过,为什么要用hashcode?
  5. 操作系统中,进程都存一些啥东西?

6. 在学习过程中遇到过很多优秀的博客,对解释很不错的进行了整理,附带连接

https://blog.csdn.net/l8947943/article/details/104477780

7.其他厂的话问题就没这么复杂,就不记录了,但是大多数都是很基础的问题,内容也要求扎实,本内容在牛客有发,转载请说明并注明出处,希望能对面试者提供帮助

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读