-
BigDecimal除法必须指定scale和RoundingMode,否则抛ArithmeticException;常用写法为divide(divisor,scale,RoundingMode.HALF_UP),需按业务精度(如人民币取2位)和舍入规则谨慎选择。
-
module-path是Java模块系统(JPMS)的模块加载路径,与classpath并行而非替代;前者加载命名/自动模块并强制依赖声明与包可见性控制,后者将所有类归入unnamedmodule且无访问约束。
-
ArrayList在add()时立即扩容:size等于数组长度时触发,无缓冲余量;首次add空数组扩容至10,后续按1.5倍(oldCapacity+oldCapacity>>1)增长,addAll则直接扩至所需最小容量。
-
Postman是独立API测试工具,非Java库,不可通过Maven/Gradle安装;可在Postman中导出请求为Java代码(如OkHttp),或用newman执行集合,但需手动处理环境变量。
-
首先确认JDK安装并配置JAVA_HOME和PATH,通过java-version和javac-version验证;接着编写HelloWorld.java文件,使用javacHelloWorld.java编译生成.class文件,再执行javaHelloWorld运行程序;若含包结构或依赖jar包,需按包路径组织文件并用-cp指定类路径。
-
本文介绍使用ConstraintLayout替代RelativeLayout,通过约束规则与比例偏移实现多Lottie动画在不同设备上始终精准居中、相对对齐的响应式布局方案。
-
Java泛型具有不可变性,List<String>与List<Object>是无关类型,故不能直接赋值;读取用List<?>,写入需用List<?superT>。
-
notify随机唤醒一个等待线程,无法指定目标,易导致生产者消费者等角色错乱;仅适用于单一线程等待或角色完全等价场景,且需用while重检条件;notifyAll虽唤醒所有线程但实际开销可控,是安全兜底选择。
-
Java异常默认自动向上抛出:未捕获的checked异常需声明throws,unchecked异常可直接冒泡;传播由JVM自动完成,无需手动throw;吞掉异常或丢失堆栈是常见错误。
-
原子性指对其他线程不可见中间状态,如++i非原子因含iload、iinc、istore三步;可见性失效源于缓存与重排序,volatile可强制可见但不保证复合操作原子性;有序性由happens-before规则保障,三者常相互关联。
-
GeoHash比直接存经纬度更适合范围查询,因其将二维坐标转为具前缀相似性的字符串,支持用subMap等区间操作逼近邻近查询,但需查多个相邻单元格并二次距离过滤。
-
本文解析Java程序在IntelliJIDEA中因工作目录(workingdirectory)与源码目录混淆导致FileNotFoundException的常见原因,并提供基于类路径(classpath)的健壮解决方案,确保资源在开发环境和打包后(如JAR)均可可靠访问。
-
静态成员优先执行,父类静态→子类静态;2.父类实例初始化→父类构造函数→子类实例初始化→子类构造函数;3.每次创建对象均按此顺序执行,静态内容仅加载时执行一次。
-
abstract修饰类时必须满足:该类不能被实例化,且至少有一个子类(该子类须为abstract或实现全部抽象方法)。
-
Java中Properties.store()写入配置文件需确保键值对正确、输出流打开、编码统一,默认ISO-8859-1易致中文乱码;推荐用OutputStreamWriter指定UTF-8编码并配合try-with-resources管理资源。