面试真题

技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
17 道

按赛道技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分

按方向/形式点选即筛,再点「全部」还原

按难度

按企业点选查看该公司全部题目

分类:Java · 企业:阿里巴巴17 道 · 点击进入查看参考答案

简单Java
什么是多态?哪里体现了多态的概念?
结论:多态指相同接口在不同对象上有不同实现,调用时根据实际对象类型动态绑定执行对应方法,提升扩展性。 核心要点:体现于父类引用指向子类对象如Animal a=new Dog(); a.eat()调用Dog重写方法;编译看…
🎤 阿里巴巴
简单Java
Java 中 Class 的生命周期有哪些阶段?
结论:Java中Class生命周期分为加载、连接、初始化、使用、卸载五个阶段。加载:类加载器从文件/网络获取字节码,在方法区建Class对象;连接含验证(文件格式、语义检查)、准备(静态变量分配内存并设零值,final常…
🎤 阿里巴巴
中等Java
常见设计模式,你用过哪些?
结论:设计模式分创建型、结构型、行为型三类,项目中常用单例、工厂、策略、观察者等。核心要点:单例确保全局唯一(双重检查锁注意volatile);工厂解耦对象创建;策略封装可互换算法(如支付路由);观察者实现事件通知(如S…
🎤 阿里巴巴
中等Java
垃圾回收机制,JVM 常见的垃圾回收器?
结论:JVM GC通过可达性分析判垃圾并分代回收;常见回收器Serial、ParNew、Parallel Scavenge、CMS、G1等。原理:1.以GC Roots搜引用链,不可达即回收;2.堆分年轻代(复制算法Mi…
🎤 阿里巴巴
中等Java
类加载,双亲委托机制
结论:双亲委托机制指类加载器收到请求时优先委派父加载器加载,父无法加载时才自己加载。核心要点:1)Java有三层加载器:Bootstrap(核心库)、Extension(扩展)、Application(应用);2)好处:…
🎤 阿里巴巴
中等Java
线程池的核心参数,给了一个线程池问有什么问题?
结论:线程池核心参数有7个,给定线程池需检查参数组合是否合理。核心参数:corePoolSize(核心线程数)、maximumPoolSize(最大线程数)、keepAliveTime(空闲线程存活时间)、workQue…
🎤 阿里巴巴
中等Java
序列化写入后读出的对象变化(版本不一致问题)
结论:序列化写入后若类版本不一致,反序列化可能失败或字段丢失。要点:Java靠serialVersionUID标识版本,读写值不同抛InvalidClassException;兼容变更(增删字段)可保持同serialVe…
🎤 阿里巴巴
中等Java
一条 Java 语句从创建到执行的全过程,类加载流程,JDK 内置类如何被启动类加载器加载?
结论:Java语句执行经历编译、类加载、执行三阶段。类加载流程:1. 加载:ClassLoader读.class二进制入方法区,建Class对象;2. 链接:验证字节码、准备静态变量零值、解析符号引用;3. 初始化:静态…
🎤 阿里巴巴
中等Java
HashMap 源码分析,是不是线程安全?
结论:HashMap线程不安全,禁止在多线程并发写场景下直接使用。原理:JDK1.8源码中putVal()无同步控制,多线程同时put时可能出现:1) 同桶位节点覆盖导致数据丢失;2) 扩容期间线程A转移链表,线程B同时…
🎤 阿里巴巴
中等Java
Java线程模型,Thread类底层实现,线程和内核线程的对应关系,有什么优缺点?
结论:Java线程为1:1模型,Thread底层native映射内核线程;优点简单利用多核,缺点开销大。Thread的start0为native,调用pthread或CreateThread;每Java线程对应一个内核线…
🎤 阿里巴巴
中等Java
Java序列化,serialVersionUID的作用,怎么让字段不序列化(除了transient还有吗?)
结论:serialVersionUID用于序列化版本控制,保证反序列化兼容;除transient外,static字段、实现Externalizable或自定义writeObject也可阻止字段序列化。原理:serialV…
🎤 阿里巴巴
中等Java
Java 内存模型(堆和栈的细节)
结论:栈线程私有存储方法调用与局部变量,堆线程共享存储对象实例。细节:栈由栈帧组成,每调用方法压入帧,含局部变量表、操作数栈、返回地址等,方法结束弹栈;堆分新生代(Eden、Survivor区)和老年代,新对象优先分配E…
🎤 阿里巴巴
中等Java
JVM 内存管理与 C++ 有哪些区别?
结论:JVM内存由虚拟机自动管理(GC),C++由程序员手动管理(malloc/free或new/delete)。区别:1.分配方式:JVM对象基本在堆上由GC统一分配,C++可在栈或堆,栈对象自动析构;2.释放机制:J…
🎤 阿里巴巴
中等Java
Synchronized 和 Lock 有哪些理论上的理解?本质区别是什么?
结论:Synchronized是JVM内置关键字锁,Lock是API层面锁。本质区别:1.实现:Synchronized基于monitor对象,自动获取释放;Lock基于AQS队列,需手动unlock;2.功能:Lock…
🎤 阿里巴巴
中等Java
Synchronized 锁膨胀经历哪些过程?
结论:锁膨胀过程为无锁→偏向锁→轻量级锁→重量级锁。过程:1.无锁:对象头mark word无锁状态;2.偏向锁:首线程访问CAS记录线程ID,后续该线程直接进入;3.轻量级锁:其他线程竞争,撤销偏向锁,线程栈帧建锁记录…
🎤 阿里巴巴
困难Java
ConcurrentHashMap 源码分析
结论:JDK1.8 ConcurrentHashMap采用数组+链表+红黑树,以CAS+synchronized实现线程安全,取代1.7分段锁。要点:1.结构:table数组,冲突链表转红黑树(阈值8/64)。2.put…
🎤 阿里巴巴
困难Java
JNI 效率优化怎么做?
结论:JNI效率优化核心在于减少跨语言调用开销、降低数据拷贝、缓存元数据。要点:1) 批量传递数据,合并多次小调用为数组/结构体单次调用;2) 缓存jclass、jfieldID、jmethodID,避免每次JNI调用查…
🎤 阿里巴巴
题目整理自公开面经,答案由校招宝自研生成,仅供参考