3.27腾讯云智研发一面
1.自我介绍
2.说一下项目中的难点
我写的是使用springsecurity+JWT做了登录模块,简述了一下关于token续期的问题
3.如果别人窃取到用户token怎么办,你是怎么处理的(没答上来)
4.说一下JVM
介绍了JVM两个子系统和组件,运行时数据区、本地接口、类加载器、执行引擎
运行时数据区包括:本地方法栈、Java虚拟机栈、堆、方法区、程序计数器
Java虚拟机栈:存放局部变量,参与方法的调用与返回
堆:存放对象的实例
方法区:存放常量、静态变量等
5.垃圾回收机制有了解吗?
GC可分类:
部分GC:Young GC,针对于新生代进行垃圾回收;Old GC针对于老年代进行垃圾回收
混合GC:对新生代和部分老年代进行垃圾回收
整堆GC: FullGC 对整个Java堆进行垃圾回收
常用的GC算法:
标记-清除法:标记所有不需要回收掉的对象,完成后对所有未标记的对象进行回收
复制算法:将内存划分为两块,当前一块的内存用完时,将存活的对象转移到另一块,然后对前一块内存回收
6.有没有无法回收的情况呢?
这里我没有理解到面试官的意思,讲了一下内存泄漏的问题
7.你使用过HashMap吗?请说一下HashMap的实现原理?
HashMap的数据结构为数组+链表/红黑树,以键值对进行存储,当我们调用put()方法进行插入时,首先会对key计算出哈希值,再对数组的长度-1进行取模得出索引,如该索引上没有元素,则直接插入,若有元素,则调用equals方法进行对比,若相同说明key是相同的,则直接进行覆盖,若不同则说明发生了hash碰撞,将其插入至链表中,若链表长度大于8且数组长度大于64则将链表转换为红黑树,以免查询性能下降
8.可以说说OSI七层协议或者TCP/IP五层协议吗?
七层协议记不住,我回答了五层协议,应用层、运输层、网络层、数据链路层、物理层
9.TCP和UDP有什么区别?
当时只回答了TCP是可靠传输协议,UDP不保证可靠传输,面试官问我还有没有其他,我表示没有了
10.说一下TCP三次握手四次挥手?
过程太长了,答了一半,大致表明了那个意思,然后我和面试官都笑了一下
11.Htpp和Htpps有什么区别?
HTTP是明文传输,安全性比较低,耗费服务器资源较少
HTTPS运行在SSL上,传输内容经过了加密,安全性比较高,但是耗费服务器资源较多
12.那你说一下SSL是怎样保证HTTPS安全传输的呢?(没回答上来)
13.DNS域名解析有了解吗?他的原理是怎样的?(没回答上来)
14.多线程情况下会出现什么问题?
多线程环境下可能会出现线程安全问题,多线程环境下去访问一个静态变量,当一个线程拿到这个变量返回时,另一个线程对变量进行了修改,导致最终返回的变量与实际值不符合
15.怎么保证多线程下的线程安全问题?
可以利用锁机制保证线程安全问题,介绍了一下悲观锁和乐观锁的原理
总结:
面试官人比较好,没有太多压力,因为他主语言不是Java,没有问太多Java相关的问题,整个问题流程是基本上是按照简历上来的,所以一定不要给自己挖坑
#我的实习求职记录#