- 1
- 0
- 约5.15千字
- 约 8页
- 2026-07-11 发布于河北
- 举报
太和物联Java面试题及详细答案(真实面试版)
一、Java基础高频题(必问)
1、==和equals的区别?日常开发怎么用?
参考答案:
==是比较运算符,基本数据类型比较值,引用类型比较内存地址;equals是Object的方法,默认也是比较地址,像String、Integer这些常用类都重写了该方法,用来比较内容值。
日常开发规范:字符串、包装类对比一律用equals;基本类型用==;做空判断的时候,我习惯把常量放前面,比如test.equals(str),避免空指针。
2、自动装箱拆箱原理,以及常见坑?
参考答案:
装箱是基本类型转包装类,拆箱是包装类转基本类型,是编译期自动完成的,本质是编译器自动调用valueOf和intValue等方法。
核心坑点:Integer有缓存机制,-128~127之间的数值,装箱后会复用缓存对象,用==对比为true;超出这个范围会新建对象,==对比为false。开发中包装类对比绝对不用==,统一用equals。
3、String、StringBuilder、StringBuffer的区别,业务选型?
参考答案:
String是不可变字符串,每次拼接都会生成新对象,效率低;StringBuffer和StringBuilder是可变字符串。
区别核心在线程安全:StringBuffer加了synchronized,线程安全但性能
原创力文档

文档评论(0)