-
static修饰符用于声明属于类本身的成员。1.静态变量被所有实例共享,仅存一份副本,常用于计数器或全局配置;2.静态方法可通过类名直接调用,不能访问非静态成员,适用于工具方法;3.静态代码块在类加载时执行一次,用于初始化静态资源;4.静态内部类不依赖外部类实例,可独立创建对象。static核心是“属于类,不依赖对象”,合理使用提升性能,但过度使用易导致状态混乱。
-
使用volatile标志和中断机制可实现Java线程安全取消,通过定期检查状态或捕获InterruptedException响应取消信号,结合Future.cancel(true)统一管理任务生命周期,并在finally块中清理资源,确保无泄漏。
-
Java访问修饰符有public、protected、默认(包级私有)和private四种:public完全公开;protected允许同包及不同包子类访问;默认仅限同包;private仅限本类访问,合理选择可提升代码安全性与可维护性。
-
Java8起支持重复注解,需用@Repeatable标注目标注解并指向容器注解;容器注解必须是仅含value元素的注解,其类型为目标注解数组,且@Target和@Retention需兼容。
-
List允许元素重复且保持插入顺序,因其本质是有序可索引的序列容器,适用于购物车、日志等需重复项的场景;而Set基于数学集合语义要求元素唯一。
-
自定义异常通过继承Exception或RuntimeException,结合业务逻辑抛出具体异常如UserExistsException,并利用@ControllerAdvice统一处理,返回友好提示并记录日志,提升系统可读性、健壮性与用户体验。
-
使用多重异常捕获可简化代码,Java7起支持用|分隔异常类型,如catch(IOException|SQLExceptione),异常变量隐式final,且不能存在继承关系,适用于统一处理日志或资源清理。
-
答案:通过设计Student类和GradeManager类实现增删改查功能,使用ArrayList管理学生信息,并提供控制台菜单进行交互操作。
-
多态传递参数通过父类引用调用子类重写方法实现,提升代码扩展性。使用继承或接口定义统一契约,子类提供具体实现,方法接收父类或接口类型参数,运行时动态绑定实际对象,执行对应逻辑。结合集合可批量处理不同子类型,新增类型无需修改原有代码,符合开闭原则。注意只能调用父类声明的方法,避免频繁类型转换,保持设计简洁。
-
OutOfMemoryError是JVM内存耗尽时的严重错误,常见原因包括堆内存不足、元空间溢出、线程创建失败等;通过堆转储分析、GC监控和代码审查可定位问题;解决方案有合理设置JVM参数、使用对象池、修复内存泄漏,并结合监控预警预防。
-
throws用于声明方法可能抛出的检查型异常,如IOException,提醒调用者处理;例如readFile()方法声明throwsIOException,调用时需try-catch捕获,确保异常向上传递并增强代码健壮性。
-
Collectors.averagingInt用于计算集合中整型属性的平均值,接收ToIntFunction函数式接口,提取int值并返回Double类型的平均数;示例中通过Employee类的getAge方法获取年龄,使用stream结合collect计算平均年龄,输出30.0;空集合处理时返回0.0,需注意与业务上“无数据”的区分;类似方法有averagingLong和averagingDouble,根据字段类型选择使用,如double类型的工资应使用averagingDouble;该收集器简洁高效,
-
自定义异常类能明确标识业务错误类型并携带上下文信息,提升代码可读性与系统健壮性。通过继承Exception或RuntimeException创建如UserNotFoundException等具有语义的异常类,可在业务逻辑中精准抛出和捕获,便于日志记录、分层处理及前端提示。结合命名规范、基类统一管理和必要上下文传递,可实现高效异常处理机制,增强维护性与协作效率。
-
Collections.shuffle()用于随机打乱List元素顺序,适用于ArrayList等可变列表,不支持不可变集合或Set/Map;可传入Random实例实现可重复随机化,常用于抽奖、洗牌等场景,底层采用Fisher-Yates算法,时间复杂度O(n)。
-
正确配置Eclipse构建路径需设置源文件夹、输出目录、库依赖和项目依赖。首先在JavaBuildPath中添加src/main/java为源文件夹并设target/classes为输出路径;将第三方JAR复制到lib目录后通过Libraries标签添加,推荐使用UserLibraries统一管理;若项目依赖其他Eclipse项目,应在Projects标签中勾选对应项目确保编译顺序;避免循环依赖和外部路径引用,保持结构规范,提升协作效率与项目稳定性。