-
答案:Java中类型转换分自动和强制两种,自动转换从小到大类型安全提升,强制转换需显式声明但可能丢失精度;基本类型与引用类型通过包装类实现装箱拆箱;字符串与数值转换常用parseInt、valueOf等方法。
-
-XX:+PrintAdaptiveSizePolicy是确认堆空间是否动态波动的唯一途径,因G1/ParallelGC的自适应决策(如新生代扩容、Survivor重分配)默认不输出,仅在此参数开启时才记录PSAdaptiveSizePolicy::compute_eden_space_size或G1Ergonomics等具体调整行为。
-
Java中级项目软删除核心是用状态字段替代物理删除,通过标记(is_deleted)和筛选(统一过滤)实现数据可追溯与恢复;数据库加tinyint字段及索引,MyBatis-Plus用@TableLogic自动拦截,服务层提供软删/强制删双接口并统一处理关联查询。
-
Stream.iterate()默认无限,因只接受初始值和迭代函数,无内置终止条件;需用limit()截断或Predicate谓词终止。
-
StackWalker的核心价值是「按需拉取」调用栈帧以降低开销,关键在于合理配置Option(如省略RETAIN_CLASS_REFERENCE、不开启SHOW_REFLECT_FRAMES/SHOW_HIDDEN_FRAMES),并用filter优先过滤代理类再skip,避免Lambda合成类干扰。
-
本文介绍如何不依赖SSLSession,直接基于X509Certificate对象手动实现主机名验证逻辑,检查目标主机名是否匹配证书的SubjectAlternativeName(SAN)或CommonName(CN)字段。
-
SpringBootActuator的监控接口需通过权限控制、网络隔离、HTTPS加密及限制暴露端点等方式安全配置。首先,结合SpringSecurity配置拦截规则,仅允许特定角色或IP访问敏感端点;其次,将Actuator部署在内部网络或通过堡垒机访问,避免公网暴露;第三,启用HTTPS确保通信安全;第四,按需暴露必要端点,而非无差别开放全部接口。此外,可自定义HealthIndicator扩展健康检查逻辑,并利用healthgroups划分核心与非核心服务状态,实现更细粒度的健康监测。
-
线程安全指多线程读写共享数据时结果始终符合预期;count++非原子,因拆为load-add-save三步,易发生竞态;volatile不解决中间插队;synchronized可快速止血;高并发宜用ReentrantLock或AtomicInteger。
-
Java项目集成MySQL需添加JDBC驱动依赖而非安装;Maven用mysql:mysql-connector-java,Gradle用implementation'mysql:mysql-connector-java:8.0.33';MySQL8+驱动类为com.mysql.cj.jdbc.Driver,URL须含serverTimezone等参数。
-
嵌套循环变量命名应优先体现业务语义而非节省字符;i/j/k仅适用于简单场景,多层业务逻辑需用order/item/sku等具名变量,并保持层级区分、避免缩写与复用,性能不受变量名长度影响。
-
关键在于将Java进程视为Linux真实进程,深入理解其内存申请、系统调用、线程调度及I/O交互机制;仅掌握SpringBoot等框架远不够,必须穿透JVM与OS的交互层,才能准确定位GC、锁竞争、DirectBuffer等瓶颈根源。
-
短路特性使&&和||返回最后一个被求值的操作数,且仅右侧操作数可被跳过;应将轻量、高失败率(&&)或高成功率(||)条件置左,耗时操作置右,并警惕隐式转换与副作用。
-
三次握手发生在内核协议栈中,由系统调用connect(2)触发,Java层仅传递参数;四次挥手同样由内核异步完成,close()只关闭文件描述符引用。
-
并发是任务“看起来同时”执行,依赖时间片切换;并行是“真正同时”执行,取决于CPU核心数与JVM调度。单核只能并发,多核才可能并行;可用核心数由Runtime.getRuntime().availableProcessors()返回。
-
在JPA双向关联(如@OneToMany/@ManyToOne或@ManyToMany)中,仅靠单边赋值并保存可能引发数据不一致或外键为空问题;必须明确“拥有方”与“被映射方”,并通过合理设计(如双向同步setter)确保关系完整性。