-
变量的作用域指其可访问范围,生命周期指其存在时间。局部变量在方法或代码块内有效,随方法调用结束而销毁;实例变量随对象创建而开始,对象回收时结束;静态变量从类加载到程序结束始终存在。作用域决定访问权限,生命周期决定内存存在时间,二者密切相关但不等同。合理控制作用域可提升代码安全性和性能。
-
轻量级锁是JVM对synchronized的优化,基于CAS和栈帧LockRecord实现,适用于无/低竞争场景;流程含拷贝MarkWord、CAS替换、标记锁状态;重入时新增null记录LockRecord;自旋失败超阈值(默认10次)则升级为重量级锁。
-
答案:IllegalAccessException是Java反射中因权限不足访问私有成员时抛出的检查异常,需通过try-catch捕获,常见原因包括未调用setAccessible(true)、模块系统限制或安全管理器阻止;处理时应结合NoSuchFieldException、InvocationTargetException等异常进行综合判断与响应。
-
Java的复合赋值运算符(如+=)在执行时会自动插入窄化转换(narrowingcast),而普通赋值配合+运算符则不会,因此编译器对二者施加的类型检查规则不同。
-
基本数据类型传递实际值,包装类传递引用副本,因不可变性和null导致行为差异。
-
JavaLambda表达式是JDK8+原生特性,无需第三方库,依托java.util.function包的函数式接口和JVM的invokedynamic指令实现,编译不生成匿名内部类,运行高效且有严格版本兼容要求。
-
项目目标是开发支持显示年月日历、计算每月第一天星期几、切换月份和高亮当前日期的简易电子日历,使用Java标准库实现。2.核心逻辑利用java.time.YearMonth和DayOfWeek计算某月第一天的星期和当月天数。3.控制台版通过字符表格打印日历,先输出标题和星期标签,再按行填充日期,空位补空格,每行7天对齐显示。
-
Java版本不一致导致运行时报java.lang.UnsupportedClassVersionError,因高版本编译、低版本运行;需统一JAVA_HOME、PATH、IDE及Maven配置,并避免中文路径与环境变量污染。
-
本文介绍在Java泛型类中,如何为特定使用场景(如排序、比较)提供仅接受Comparable类型的构造方式,同时保留对非Comparable类型的通用支持——核心方案是用静态工厂方法替代受限的泛型构造器。
-
Java接口多实现能解决解耦合、提升复用性及支持组合优于继承的问题;适用于多个正交职责场景,避免抽象类单继承限制与职责污染,同时满足Spring代理、自动配置与测试Mock等框架需求。
-
Java读取properties文件应避免ClassLoader.getResourceAsStream("/")路径错误,用上下文类加载器并判空;SpringBoot配置优先级需通过debug日志和getPropertySources()分析;@ConfigurationProperties绑定失败主因是缺少@Component/@EnableConfigurationProperties、命名不匹配或Lombok无@Setter;热更新推荐@RefreshScope或AtomicReference+W
-
Java应用在Docker中启动慢、OOMKilled主因是JVM未适配容器内存限制;需启用-XX:+UseContainerSupport(8u131+默认开)、显式设-Xmx/-Xms为容器内存的50%~75%,并选用eclipse-temurin等轻量镜像、多阶段构建、正确配置HEALTHCHECK与actuator端点。
-
ReentrantReadWriteLock不能直接替代synchronized,因其需手动调用lock()和unlock(),遗漏unlock()会导致死锁或饥饿;读锁不可升级为写锁,否则易引发死锁;必须用try-finally确保解锁;公平模式降低吞吐但防写饥饿。
-
内部类提升封装与组织,成员内部类可访问外部私有成员并支持私有化,静态内部类降低耦合与内存开销,局部及匿名内部类适用于临时逻辑与回调,合理使用可增强安全性与可维护性。
-
需确认系统架构与JDK版本匹配,先用uname-m查x86_64或aarch64等,再下载对应EclipseTemurinJDK包;手动解压至/opt,配置/etc/profile.d/java.sh并生效;systemd服务需显式声明JAVA_HOME和PATH,cron或脚本开头需source该文件;清理旧JDK软链避免冲突。