多益网络软件工程师面经(Java基础)
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- Java 对象除了
new之外还有哪些创建方式? - Java IO 流是什么,字节流和字符流有什么区别?
- 反射创建对象为什么通常比直接 new 慢?
Set<String>能否放入其他类型,如何安全处理不同类型对象?- 如何避免类型强转换错?
- 如何实现全排列?
《参考解析》
- 还可通过反射、克隆、反序列化或工厂方法创建;实际选型要考虑构造逻辑、类型安全和生命周期管理。
- IO 流抽象数据读写过程,字节流适合二进制,字符流适合文本并处理字符编码;不要用字符流直接处理任意二进制文件。
- 反射需要查找类和方法、做访问检查及参数适配,运行时开销更高;热点路径应缓存元数据或使用直接调用。
- 泛型集合在编译期限制为 String,不能安全加入其他类型;若确实需要混合类型,应使用共同接口并在边界做显式校验。
- 优先使用多态、泛型和
instanceof模式匹配,避免未经检查的强转;边界数据应先校验类型并给出明确错误。 - 用回溯逐位置选择未使用元素,递归到底复制结果,再撤销选择;有重复元素时先排序并跳过同层重复项。