Java开发工程师面试题及详细答案(真实职场版).docxVIP

  • 0
  • 0
  • 约5.7千字
  • 约 8页
  • 2026-08-24 发布于河北
  • 举报

Java开发工程师面试题及详细答案(真实职场版).docx

Java开发工程师面试题及详细答案(真实职场版)

一、Java基础核心题

1.==和equals的区别?

==是比较运算符,基本数据类型比较的是数值本身,引用数据类型比较的是内存地址。

equals是Object类的方法,默认实现和==一样,也是比较地址。但像String、Integer这些常用类,都重写了equals方法,重写后只比较内容值,不比较地址。

日常开发中:对比字符串、包装类值是否一致,一律用equals;基本类型判断相等用==。

2.String、StringBuilder、StringBuffer的区别?

1、String:不可变字符串,底层是final修饰的字符数组。每次拼接、修改都会生成新字符串对象,频繁操作会产生大量垃圾对象,效率最低。

2、StringBuilder:可变字符串,线程不安全,没有锁,性能高。日常单线程字符串拼接、修改优先用这个。

3、StringBuffer:可变字符串,方法加了synchronized锁,线程安全,但是性能差。多线程共享字符串场景才用,现在基本很少用。

3.final、finally、finalize的区别?

1、final:修饰符。修饰变量是常量,不可修改;修饰方法不能重写;修饰类不能被继承。

2、finally:异常处理关键字。搭配try-catch使用,几乎一定会

文档评论(0)

1亿VIP精品文档

相关文档