-
parallelStream是Collection接口提供的并行流方法,利用Fork/Join框架将流操作分解为多线程任务以提升大数据计算性能,适用于计算密集型场景,使用时需注意线程安全、任务粒度和I/O阻塞等问题。
-
在SpringBoot中,应保持正常响应(ApiResponse)与错误响应(ErrorResponse)分离,通过HTTP状态码区分语义;前端依据status判断解析逻辑,而非强行合并两类DTO,从而兼顾REST规范性、可维护性与前后端协作效率。
-
String.intern()操作的是运行时常量池,JDK7+后该池位于堆内存中;它通过哈希表(StringTable)实现,性能受-XX:StringTableSize影响,滥用易引发FullGC或查找退化。
-
FileSystemException报错原因需看message字段:含“Accessisdenied”等为权限问题,含路径过长提示则为路径超限;Windows下可用\\?\前缀绕过260字符限制,但须Paths.get()显式构造且仅支持绝对路径。
-
Java类加载时静态成员按文本顺序初始化,父类优先于子类;实例创建时先分配内存设默认值,再执行父类构造器、子类非静态块、子类构造器。
-
只有编译期能确定值的staticfinal基本类型或String字段才被JVM视为“类常量”并内联,运行期初始化、包装类、非常量表达式、数组/集合等均不符合;修改后需重编译依赖方才能生效。
-
答案:Java通过Locale和ResourceBundle实现多语言支持。首先创建对应语言的Locale对象,如Locale.CHINA;再使用ResourceBundle加载messages_zh_CN.properties等资源文件,根据用户环境动态获取文本;结合MessageFormat处理带占位符的消息,实现国际化显示。需确保资源文件命名规范且位于classpath中,避免MissingResourceException。
-
IntelliJIDEA中配置JDK需协调项目SDK、模块SDK和语言级别:先在ProjectStructure→Project设置项目SDK及匹配的语言级别;再在Modules→Dependencies中确认或调整模块SDK;最后同步Maven/Gradle的编译插件版本,必要时清理缓存重启。
-
Java无??操作符,需用Optional模拟空合并:常用orElse()取确定值,惰性求值用orElseGet();嵌套Optional须用flatMap;Optional仅适用于方法返回值,非null安全替身。
-
现代操作系统和硬件支持创建成百上千个线程,但单核同一时刻仅能真正并行执行一个线程;多线程通过时间片轮转实现“伪并行”,实际并发度受限于CPU核心数,而可创建数量主要受内存(尤其是栈空间)约束。
-
Android自4.4引入打印框架起,系统PrintManager就强制要求调用必须发生在Activity上下文中;Service、Application或BroadcastReceiver等非Activity组件调用会抛出IllegalStateException,该限制在Android11及更高版本中依然严格生效。
-
final用于限制类不可继承、方法不可重写、变量不可修改,确保代码安全稳定。
-
Java序列化是将运行中对象(含字段值、引用关系)转为字节流,仅保存实例状态,不保存方法、静态变量;反序列化则重建等价对象。必须实现Serializable接口以通过JVM许可检查,该接口为标记接口;未实现则运行时抛NotSerializableException;父类未实现时其字段丢失;内部类序列化要求外部类也实现;建议显式声明serialVersionUID避免InvalidClassException;static和transient字段不参与序列化,transient字段反序列化后为默认值,且全过
-
ConcurrentHashMap通过分段锁(JDK7)或CAS+volatile+synchronized单桶锁(JDK8)避免全局锁;get()无锁但依赖volatile可见性;computeIfAbsent可能重复计算;扩容采用分批迁移与协助机制保障读写不阻塞。
-
volatile关键字确保多线程环境下变量的可见性,1.当变量被修改时立即写回主内存,2.读取时强制从主内存获取最新值,3.禁止指令重排序,适用于标志位等场景,但不保证复合操作的原子性。