- 0
- 0
- 约4.7千字
- 约 7页
- 2026-08-15 发布于河北
- 举报
程序员通用笔试面试高频题(含详细落地答案)
一、Java基础高频题(通用开发必问)
1.==和equals的区别是什么?
答案:
1、==是比较运算符,基本数据类型比较的是数值本身,引用数据类型比较的是内存地址。
2、equals是Object类的方法,默认底层和==一致,也是比较地址。但String、Integer等包装类重写了该方法,重写后只比较内容值,不比较地址。
3、日常开发中,字符串对比必须用equals,避免地址不同导致判断错误;基本类型直接用==。
2.String、StringBuilder、StringBuffer的区别?
答案:
1、String:不可变字符串,底层是final字符数组。每次拼接、修改都会生成新对象,频繁操作性能差,适合少量固定字符串。
2、StringBuilder:可变字符串,线程不安全,效率高。单线程频繁字符串拼接首选。
3、StringBuffer:可变字符串,方法加了synchronized,线程安全,效率低。多线程共享字符串场景使用。
核心总结:少量固定用String,单线程拼接用StringBuilder,多线程用StringBuffer。
3.重载和重写的区别?
答案:
重载(Overload):发生在同一个类中,方法名相同,参数列表(个数、类型、顺序)不同,和返回值、访问修饰符无
原创力文档

文档评论(0)