-
线程池根据corePoolSize、workQueue和maximumPoolSize三者配合决定新建线程、排队或拒绝:先尝试用核心线程执行,满则入队,队满且线程数未达maximumPoolSize才新建线程,否则拒绝。
-
ConcurrentHashMap的size()返回近似值,因采用baseCount与counterCells分片计数,遍历时不阻塞写操作,且存在扩容、CAS延迟及缓存伪共享等导致统计滞后;JDK8起推荐使用mappingCount()。
-
因为Cipher是抽象类,必须通过Cipher.getInstance()指定算法、模式和填充方式才能获取实例,直接new会因未初始化关键字段而抛NullPointerException。
-
Java中通过ExecutorService实现线程池管理,需根据场景选择FixedThreadPool、CachedThreadPool等类型,推荐手动配置ThreadPoolExecutor以精确控制参数;任务提交支持execute()和submit()获取Future结果;关闭时调用shutdown()或shutdownNow()并配合awaitTermination()确保清理;生产环境应使用有界队列、设置合理拒绝策略,并监控活跃线程数、完成任务数等指标以优化性能与稳定性。
-
封装通过私有化字段并提供公共方法控制访问,确保对象状态安全。首先将字段声明为private,防止外部直接访问,增强数据安全性;接着通过getter和setter方法在读写时加入验证逻辑,如检查年龄范围、防止可变对象引用泄露(返回副本或不可修改视图);构造器中同样需校验参数,保证对象初始状态合法;最终实现数据保护与行为可控,确保对象始终处于有效状态。
-
FileNotFoundException是IOException的子类,属受检异常,需显式处理;其抛出原因不限于文件不存在,还可能因是目录、权限不足、路径编码错误或文件被锁定等。
-
新建Maven项目未生成pom.xml,是因为勾选“Createfromarchetype”却未选择具体archetype;应取消该选项或选定maven-archetype-quickstart等模板,并手动标记src/main/java为SourcesRoot、src/test/java为TestSourcesRoot,再通过Maven工具窗Reimport同步依赖,启用DelegateIDEbuildtoMaven确保编译一致性。
-
Volley请求返回空白或报错,往往是因为请求类型与服务器实际返回的数据格式不匹配;本文重点解决因误用JsonObjectRequest加载JSON数组而导致请求“静默失败”的典型问题。
-
不算。同一个类名被不同类加载器加载后,JVM视为两个无关类,因类身份由“类名+类加载器”共同决定;导致类型不兼容、ClassCastException等典型问题。
-
早返回通过提前退出非正常路径提升代码可读性:1.减少嵌套,使核心逻辑更清晰;2.集中前置校验,突出卫语句;3.降低认知负担,便于维护。
-
必须用logger.error(String,Throwable)传异常对象,否则丢失堆栈;日志配置需含%ex或%xEx才输出堆栈;资源关闭异常不可吞没;ERROR仅用于影响稳定性的异常,校验类失败用WARN。
-
Java方法签名仅含方法名和参数列表(类型、数量、顺序),不含返回类型、异常、修饰符;是重载唯一依据,泛型擦除、装箱、桥接方法易引发隐性冲突。
-
登录注册功能需先定义完备的User数据模型,密码必须哈希加盐存储,ID用Long或UUID,username和email设唯一索引,注册登录均用POST防重复提交,服务端做幂等控制,Session交由框架管理,DB操作用PreparedStatement+事务。
-
1.选择高性能库:处理JSON时,Jackson通常性能最优,Fastjson在特定场景更快但需注意安全性,Gson适合中小型项目;处理XML时,JAXB适合开发效率,StAX/SAX适合大数据量和低内存场景。2.优化配置:禁用美化输出、忽略空值、禁用未知属性失败机制;复用ObjectMapper/Gson实例;合理设置数据模型与注解;必要时使用自定义序列化器。3.高效转换策略:优先采用流式API(如JacksonStreaming、StAX)处理大型文件;分批处理逻辑块;减少临时对象创建,结合对象池管理
-
Micrometer依赖需同时引入spring-boot-starter-actuator和对应registry(如micrometer-registry-prometheus),并配置management.endpoints.web.exposure.include显式暴露端点;Prometheus的scrape_config中metrics_path必须设为/actuator/prometheus;@Timed依赖SpringAOP代理,须确保方法由容器注入且为public;自定义指标应规范使用Tag