顺丰科技面试题及答案.docxVIP

  • 4
  • 0
  • 约1.55万字
  • 约 34页
  • 2026-04-21 发布于未知
  • 举报

顺丰科技面试题及答案

Java开发岗面试题及答案

1.请解释String、StringBuilder、StringBuffer的区别,并说明各自的使用场景。

String是Java中不可变的字符序列,底层使用final修饰的char数组存储(JDK9后改为byte数组)。每次对String的修改操作(如拼接、替换)都会生成新的String对象,这会导致频繁的内存分配与回收,影响性能。

StringBuilder和StringBuffer都继承自AbstractStringBuilder,底层使用可变的char数组(非final),支持动态扩容(默认容量16,超过时扩容为原容量的2倍+2)。两者的主要区别在于线程安全性:StringBuffer的方法使用synchronized修饰,是线程安全的;而StringBuilder未做同步处理,线程不安全但性能更高。

使用场景:

-字符串无需修改时(如常量、少量拼接):优先使用String;

-单线程环境下频繁修改字符串(如循环内拼接):使用StringBuilder;

-多线程环境下频繁修改字符串(如共享的日志缓冲区):使用StringBuffer。

2.简述Java线程池的核心参数及工作流程,生产环境中如何合理配置?

线程池的核心参数包括:

-corePoolSize(核心线程数):

文档评论(0)

1亿VIP精品文档

相关文档