-
多态通过继承和方法重写实现,允许父类引用调用子类方法,提升代码扩展性与维护性;示例中Animal父类引用指向Dog和Cat子类对象,调用makeSound()时输出各自重写后的声音;集合遍历和方法参数通用化是多态典型应用场景;属性不支持多态,父类引用无法直接访问子类特有方法,需强制转型并配合instanceof确保安全;核心原则是“编译看左边,运行看右边”。
-
Optional的核心作用是将空值显式化、类型化,强制编译期处理空值场景,切断null传播链,并提升API语义清晰度;它适用于方法返回值,不适用于字段、参数或集合元素。
-
静态方法不能访问实例变量和实例方法,因其属于类而非对象;调用非static成员会报“non-staticvariablexxxcannotbereferencedfromastaticcontext”错误,解决需改static或先创建实例。
-
应遍历NetworkInterface.getNetworkInterfaces()获取真实网卡名,按isUp()、非loopback、有MAC地址筛选;getHardwareAddress()为null时需检查权限或系统限制;获取IPv4地址时应过滤本地、链路本地、回环及APIPA地址;Windows中文名乱码需用GBK重解码。
-
MicroStream在JDK17+中使用JavaRecords时因模块封装限制无法访问jdk.internal.misc.Unsafe,需显式导出模块或改用传统POJO;Gradle测试可通过正确配置jvmArgs或启用--enable-preview(如适用)解决。
-
组合表示强“has-a”关系,部分生命周期依赖整体,如Car与Engine;聚合为弱“has-a”,部分可独立存在,如Department与Employee。
-
ProjectSDK和Projectlanguagelevel必须匹配,否则会导致语法标红或编译错误;Module的Languagelevel和Targetbytecodeversion需单独检查;Gradle/Maven项目需手动Reload并确认JDK一致性;IDEA编译器应设为Javac并指定正确路径。
-
本文详解如何通过动态规划优化暴力枚举回文子串的低效实现,将时间复杂度从原始代码隐含的O(n³)(实际为O(n²)字符串操作×O(n)反转)降至真正稳定的O(n²),并给出可直接落地的Java实现与关键避坑指南。
-
接口支持多继承,类只能单继承。当多个接口存在同名同参方法时,若返回类型兼容(如协变),实现类只需实现一次;若返回类型不兼容则编译报错。Java8默认方法冲突需子类显式重写并可通过接口名.super.方法名()调用特定父接口默认实现;静态方法和私有方法不参与继承,无冲突。设计时应避免命名歧义以提升可维护性。
-
throw用于方法内抛出异常对象,立即中断执行;throws用于方法声明处声明可能抛出的异常类型,仅作提醒。前者抛一个异常,后者可声明多个,且只对受检异常有强制约束。
-
在使用JAXP(如Xerces)解析XML时,若xsi:noNamespaceSchemaLocation等属性值为相对路径(如xsd/book.xsd),解析器会默认以user.dir为基准解析为绝对文件路径(如file:///home/user/xsd/book.xsd),导致定位失败;根本解决方法是显式提供XML文档的基准URI(baseURI),而非依赖默认回退行为。
-
必须继承Exception或RuntimeException,因JVM仅识别Throwable子类异常;继承Exception强制调用方处理,适合业务可控错误;继承RuntimeException则无需声明,适用于程序逻辑错误。
-
instanceof本质是运行时安全类型探针,只判断对象是否可能属于某类而不做转换;语法为objinstanceofType,左侧须为引用类型,右侧须为已编译类或接口名,null恒返回false,无继承关系时编译报错。
-
Java中ArrayList.clone()只做浅拷贝,新列表与原列表共享元素引用,修改副本中的自定义对象会影响原列表;修复需手动深拷贝或序列化方案。
-
配置Maven国内镜像可显著提升依赖下载速度,建议优先选用阿里云镜像,在settings.xml的<mirrors>中添加id为aliyunmaven、mirrorOf为central、url为https://maven.aliyun.com/repository/central的mirror配置,推荐使用用户目录下的~/.m2/settings.xml文件进行个性化设置,避免全局影响,配置后通过执行mvncleancompile观察下载地址是否变更,或使用mvnhelp:effective-