腾讯云智一二面经(base长沙)
腾讯云智后台开发一面(50min)
1、自我介绍,问了点关于研究方向的问题
2、进程线程相关
2.1、进程与线程的区别
2.2、进程间如何通信,可以具体讲讲它们的区别吗
2.3、消息队列用过吗?
2.4、什么是死锁?死锁产生的必要条件?
3、网络协议相关
3.1、TCP三次握手过程,为什么要三次握手?
3.2、UDP是不可靠传输,为什么还有很多人在用(UDP的优点)?UDP的使用场景有哪些?
3.3、客户端在网页上输入一个url地址,这个请求如何到达服务器?(http发送请求的过程)
3.4、DNS寻址
3.5、客户端与服务器建立连接后,这个连接会保持吗?还是立刻释放了
3.6、HTTP是无状态的协议,当客户端登录后,一次请求完成,连接会释放,但是又希望服务器能够记住客户端的登录状态,可以怎么做?(客户端使用cookie记录登录状态)
4、Java相关
4.1、所有类的父类(Object),Object类有什么方法,==和equals区别。
4.2、wait、notify、notifyAll为什么定义在Object里而不是定义在线程相关的类里【因为等待和唤醒必须是同一个锁。而锁可以是任意对象,所以可以被任意对象调用的方法是定义在object类中】
4.3、JVM内存结构
4.4、JVM如何判断对象是否为垃圾,有哪些方法?一个线程一旦被判定为垃圾就会被立刻回收吗?GC ROOT有哪些?
4.5、你了解哪些垃圾回收算法,介绍两三种
4.6、synchronized和lock有什么区别
4.7、线程池用过吗?自定义线程池的时候会指定哪些参数?
4.8、ThreadLocal用过吗?ThreadLocal有什么作用?使用场景?有什么需要注意的地方(回答内存泄漏)
4.9、volatile和synchronized的区别?
4.10、集合用过哪些?是线程安全的吗
4.11、ArrayList和LinkedList的区别
4.12、你刚刚说ArrayList插入和删除比较慢,假如现在ArrayList里有16个元素,如果删除中间某一个会对他的性能产生影响吗?
4.13、ArrayList是线程安全的吗?多线程环境下要怎么使用ArrayList?
(a. Collections.synchronizedList b. 为list.add方法加锁 c. CopyOnWriteArrayList d. ThreadLocal)
5、手撕代码(建议提前在电脑上把idea打开并建好项目,我这里光打开工程就花了三分钟,中间为了不尴尬把代码思路介绍了一下)
字符串压缩,把"aaabbbbcd"这样的字符串压缩为"3a4bcd"
6、反问
业务、新人培养、本次面试评价、什么时候知道面试结果?
7、其他
有没有其他offer?确认会在长沙工作?
二面(75min)
自我介绍
技术部分:
项目太弱了就没多问
网络结构五层模型分别是什么,有什么作用
三次握手。如果只有两次握手有什么问题?syn洪水攻击?
地址栏输入了一个url敲回车后经历了哪些过程?(一面也被问了)
jvm内存结构;一个对象从new出来到被回收经历哪些流转过程。
双亲委派模型?new了两个URLClassLoader,分别加载自定义在本地磁盘上的class文件,则在内存里有几个class(没听清问题,大概是这个)
用过哪些数据结构?二叉树有哪些?二叉搜索树查询时间复杂度多少?最坏情况?
讲讲spring容器,怎么理解IOC?
spring里使用了哪些设计模式?知道模板模式吗?为什么要有设计模式?写一个你熟悉的设计模式吧(拒绝写单例和工厂说是太简单..我说我除此之外只了解一个代理模式,随后就实现了动态代理)。
你对框架的学习路径
手撕(每个5分钟):
1、给定一个乱序的整数数组,其中某个元素的占比超过1/2,找出这个元素。要求时间复杂度仅可能低,空间复杂度不做要求。
我自己使用map实现的,保存每个元素出现的次数,超过长度的一半就输出。时间复杂度O(n)。面试官问如果数组已经有序,那么这个元素会出现在哪里,答:中位数。追问:所以使用快排做排序,时间复杂度多少,答O(nlogn)。追问:如果这个元素恰好是数组的第一个元素,时间复杂度是多少?答O(n)。因为只需要遍历一次就可以确定基准数(即第一个数)所在的位置。
2、写一个代理模式。
3、写一个链表反转
非技术部分
对互联网的工作有什么认识?
怎样看待加班?
我的回答:如果是因为我能力欠缺导致任务不能如期完成,那么我会愿意加班赶上进度。如果是无意义的耗时间,那不能接收。
面试官补充:很多时候并不是你能力的问题,而是任务就是需要加班完成,不如期交付公司就垮掉了,这时你怎么办?
我内心:那还能咋办,还有的选?
怎么定义靠谱?如果有一个任务你无法胜任,你会怎么做?
面试官总结:靠谱就是给你一个任务,不管遇到什么困难都要克服,把它完成。就算无法胜任也要想方设法完成