当前位置: 首页 > news >正文

Java 高频面试题解析

精心整理了最新的面试资料和简历模板,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取


一、Java基础

1. Java基本数据类型 vs 包装类

  • 问题intInteger的区别?自动装箱与拆箱原理?
    • 基本类型直接存储值,包装类存储对象引用
    • 自动装箱:Integer.valueOf()(注意缓存-128~127)
    • 拆箱:Integer.intValue()

2. String不可变性

  • 问题:为什么String设计为不可变类?
    • 安全性:防止参数被意外修改(如网络连接参数)
    • 哈希值缓存:提升HashMap等集合性能
    • 字符串常量池优化(intern方法)

3. ==equals()区别

    • ==比较对象内存地址
    • equals()默认比较地址,需重写实现值比较(如String)

二、集合框架

1. ArrayList vs LinkedList

    • ArrayList:数组实现,随机访问O(1),增删效率低
    • LinkedList:双向链表,增删O(1),随机访问O(n)

2. HashMap工作原理

  • 问题:HashMap如何解决哈希冲突?
    • JDK8前:数组+链表
    • JDK8+:链表长度>8转红黑树
    • 扩容机制:负载因子0.75,2倍扩容

3. ConcurrentHashMap线程安全实现

    • JDK7:分段锁(Segment)
    • JDK8+:CAS + synchronized锁单个桶

三、多线程

1. 创建线程的3种方式

  • 继承Thread类
  • 实现Runnable接口
  • 实现Callable接口(可获取返回值)

2. synchronized与ReentrantLock

  • 区别
    • synchronized是JVM级别锁,自动释放
    • ReentrantLock支持公平锁、条件变量、可中断

3. 线程池参数

  • 核心参数
    • corePoolSize
    • maximumPoolSize
    • keepAliveTime
    • 阻塞队列(ArrayBlockingQueue等)
    • 拒绝策略(AbortPolicy默认抛异常)

四、JVM

1. 内存区域划分

  • 堆(对象实例)
  • 方法区(类信息)
  • 虚拟机栈(方法调用)
  • 程序计数器
  • 本地方法栈

2. 垃圾回收算法

  • 标记-清除
  • 复制算法(新生代)
  • 标记-整理(老年代)

3. 类加载过程

  • 加载 → 验证 → 准备 → 解析 → 初始化

五、新特性

1. Java8 Stream API

  • 示例
    list.stream().filter(s -> s.length() >3).map(String::toUpperCase).collect(Collectors.toList());
    

2. Lambda表达式

  • 替代匿名内部类,如(a, b) -> a + b

六、框架相关(加分项)

1. Spring IoC原理

  • 通过反射创建对象,依赖注入实现控制反转

2. Spring AOP实现

  • JDK动态代理(接口) vs CGLIB(类)

七、设计模式

1. 单例模式实现

  • 双重检查锁
    private volatile static Singleton instance;
    public static Singleton getInstance() {if (instance == null) {synchronized (Singleton.class) {if (instance == null) {instance = new Singleton();}}}return instance;
    }
    

高频追问

  • 深拷贝 vs 浅拷贝
  • fail-fast机制原理
  • volatile关键字作用(可见性、禁止指令重排)
  • JVM调优参数(-Xmx, -Xss等)

建议结合具体代码示例理解原理,并准备项目中的实际应用场景说明。建议使用JVisualVM等工具实践内存分析。

相关文章:

  • 【android bluetooth 协议分析 06】【l2cap详解 9】【L2cap通道生命周期】
  • 【MobaXterm】---修改 MobaXterm 终端 默认字体和大小 保真
  • QSPI flash xip模式运行
  • 四、Python编程基础04
  • 《宝可梦明耀之星》正式登陆中国大陆!4月15日起陆续上市!
  • 母婴店商城小程序制作哪家强?告别传统经营,拥抱线上新机遇
  • TypeScript 开发实战:如何安全替换字符串中的关键字
  • 阿里云99机器总是宕机,实测还是磁盘性能差
  • 多路转接epoll原理详解
  • 应用信息1.13.0发布
  • verilog和system verilog常用数据类型以及常量汇总
  • SVN钩子脚本获取日志中文乱码解决办法
  • Android 混合开发实战:统一 View 与 Compose 的浅色/深色主题方案
  • 嵌入模型(Embedding Models)原理详解:从Word2Vec到BERT的技术演进
  • MyBatis操作数据库---从入门到理解
  • 硬件工程师面试常见问题(7)
  • LeetCode-Hot100
  • CentOS 7 磁盘分区详细教程
  • 【框架学习】Spring AI-功能学习与实战(一)
  • SpringBoot | 构建客户树及其关联关系的设计思路和实践Demo
  • 魔都眼·上海车展④|奔驰宝马保时捷……全球豪车扎堆首秀
  • 中国牵头制定,在线旅游机构和展览与活动领域ISO国际标准发布
  • 特朗普称或将“大幅降低”对华关税,外交部:打,奉陪到底;谈,大门敞开
  • 研讨会|中国古代石刻与历史研究的多重图景
  • 上海市委财经委会议分析研判当前经济运行情况,调度部署下阶段重点工作
  • 张又侠董军分别与印尼国防部长会见会谈