2026-07-31 17:40:52
阿里云Java后端实习一面(已OC)面经总结如下,涵盖面试形式、考察内容及备考建议:
一、面试基本信息存储在常量池,避免重复创建;
线程安全,防止被意外修改;
作为HashMap键时保证哈希值唯一性。
String不可变;
StringBuffer线程安全(synchronized修饰);
StringBuilder非线程安全,性能更高。
每次创建新对象,效率低;
应使用StringBuilder或StringBuffer优化。
新生代(Eden区、Survivor区)、老年代;
对象分配优先在Eden区,大对象直接进入老年代。
Minor GC:回收新生代,频繁且速度快;
Full GC:回收整个堆(含老年代),停顿时间长。
指针碰撞(堆内存规整时);
空闲列表(堆内存不规整时)。
普通文件(-)、目录(d)、符号链接(l)、块设备(b)、字符设备(c)等。
存储文件元数据(权限、大小、时间戳等),不包含文件名;
通过inode号定位文件数据块。
文件名 → inode → 数据块(block)。
解决数据在内核缓冲区与用户缓冲区间的多次拷贝问题;
应用场景:文件传输、高并发IO;
实现方式:mmap、sendfile。
gzip/gunzip(.gz)、tar(打包)、zip/unzip等;
参数示例:-c(压缩)、-d(解压)、-v(显示过程)。
三次握手:SYN → SYN+ACK → ACK(建立连接);
四次挥手:FIN → ACK → FIN → ACK(终止连接)。
出现在主动关闭方;
等待2MSL(最大报文生存时间),确保最后一个ACK到达对方;
避免历史连接干扰新连接。
排序后双指针法;
跳过重复元素避免冗余解。
重点复习高频考点(如JVM、多线程、网络协议);
低频考点(如Linux零拷贝、inode)需理解原理,避免死记硬背。
准备技术选型、难点解决、性能优化等细节的扩展回答。
刷题时注重代码规范性(如变量命名、边界处理);
常见题型(双指针、动态规划)需反复练习。
通过录音复盘回答逻辑,优化表达清晰度;
针对追问场景,提前准备“知识边界”回答(如“这部分了解不深,但大致原理是…”)。
一面以基础考察为主,但涉及部分冷门知识点(如Linux文件系统),需全面准备。面试官会通过追问测试知识深度,建议对每个技术点理解其“为什么”而非“是什么”。算法题需注重细节实现,避免因低级错误扣分。