腾讯TME QQ音乐暑期实习一面
《面试题目》
- 自我介绍
- 实习经历拷打
- 实习收获
- 谈一下Java中对象的理解
- 对象的组成
- 介绍一下synchronized关键字
- 7介绍一下synchronized关键字的锁升级过程
- 介绍一下java的内存模型
- 介绍一下jvm的组成
- 介绍一下java的垃圾回收机制
- 哪些对象是GC root对象
- TCP三次握手过程
- 为什么不能改为两次
- 介绍TCP四次挥手
- 为什么要四次
- 为什么要等待2MSL才关闭,2MSL是由什么决定的
- 哪个部分是TIME_WAIT哪个是CLOSE_WAIT
- 如果给你两个库,A是线上正在用的,把A库迁往B库,流程和注意点是什么
《参考解析》
-
计算机网络:TCP(传输控制协议)是面向连接、可靠的传输协议,提供流量控制和拥塞控制;UDP(用户数据报协议)是无连接、不可靠但速度更快的协议。TCP通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手断开(FIN→ACK→FIN→ACK)。
-
JVM与GC:JVM内存模型:堆(对象分配,GC管理)、方法区(类信息、常量池)、虚拟机栈(栈帧/局部变量/操作数栈)、本地方法栈、程序计数器。GC算法:标记-清除(内存碎片)、标记-整理(无碎片,但移动对象)、复制(新生代)。G1按Region划分堆,预测停顿时间。
-
Java并发:Java并发:synchronized关键字(偏向锁→轻量级锁→重量级锁升级);ReentrantLock(可重入、可中断、公平锁);volatile(内存可见性+禁止指令重排,不保证原子性);CAS(Compare-And-Swap,无锁乐观并发);ThreadLocal(线程本地变量,WeakReference,注意内存泄漏)。线程池核心参数:corePoolSize/maximumPoolSize/keepAliveTime/workQueue/handler。