- 0
- 0
- 约6.17千字
- 约 8页
- 2026-08-18 发布于河北
- 举报
计算机后端技术面试题库(含详细真实面试答案)
一、Java基础核心面试题
1.讲讲==和equals的区别
核心分两种场景,基本类型和引用类型。基本类型==比较的是数值本身,没有equals方法。引用类型==比较的是对象的内存地址,也就是判断是不是同一个对象;equals是方法,默认也是比较地址,但是像String、Integer这些类都重写了equals,重写后是比较对象的内容值。
日常开发里,字符串对比一定要用equals,避免空指针的话,一般把常量放前面,比如test.equals(str)。
2.String、StringBuilder、StringBuffer的区别
首先是可变性:String是不可变字符串,每次拼接都会生成新对象,频繁拼接非常耗性能。StringBuilder和StringBuffer是可变的,底层是字符数组,不会频繁创建新对象。
然后是线程安全:StringBuffer加了synchronized锁,线程安全,多线程场景用;StringBuilder无锁,线程不安全,单线程性能最高。
实际开发:单线程字符串拼接一律用StringBuilder,多线程共享变量拼接用StringBuffer,固定不变的字符串用String。
3.重载和重写的区别
重载是在同一个类里,方法名相同,参数列表不同(个数、类型、顺序),和返回值、修饰符、异常没
原创力文档

文档评论(0)