-
本文详解Java程序中FileNotFoundException频发的根本原因——工作目录(WorkingDirectory)与源码目录(src)混淆,并提供跨环境(IDE调试、命令行运行、JAR打包)均可靠的资源加载方案。
-
父子线程无自动绑定,ThreadGroup不传递数据或生命周期,仅InheritableThreadLocal在newThread时单次继承值,资源清理须手动,ScopedValue是Java19+更安全的替代方案。
-
Java类未定义任何构造方法时,编译器自动提供public无参默认构造方法;一旦定义了任意构造方法(如MyClass(intx)),该默认构造即消失,newMyClass()将编译失败。
-
Javadoc是Java标准文档生成工具,需用/**...*/包裹注释并合理使用@param、@return、@throws等标签生成HTMLAPI文档;普通注释不被识别,标签须规范使用以确保文档准确完整。
-
Java中设计可复用类的核心是降低耦合、提高内聚、遵循开放封闭原则,优先用接口抽象、组合、泛型和不可变性,避免滥用继承,确保职责明确、类型安全且易于维护。
-
先设计商品类和库存管理功能,再用HashMap存储商品信息,通过菜单交互实现增删查改。
-
Java中判断字符是否为字母应使用Character.isLetter()方法,它支持Unicode全部字母(如英、中、日、希腊、西里尔等),对数字、标点、空格等返回false;大小写判断应使用isLowerCase()或isUpperCase()。
-
Java接口中default方法可被实现类public覆盖但不可降级为private,static方法只能通过接口名调用且不可重写;二者语义不同:default用于可定制的实例行为,static用于无状态工具函数。
-
Java登录鉴权核心是JWT无状态认证,关键在安全签发、校验、续期与注销:登录成功后签发含用户ID、角色、exp等字段的JWT,HS256/RS256签名,密钥安全存储;通过SpringSecurity拦截校验签名、时效及Redis黑名单;基于Token内角色或权限注解(如@PreAuthorize)实现细粒度授权;采用短AccessToken(15–30分钟)+长RefreshToken(7天,Redis存储并绑定设备指纹)实现刷新;退出时将RefreshToken加入Redis黑名单,敏感操作清空用户
-
类是模板,对象是实例:类定义结构不占内存,对象创建时分配堆内存并存储真实数据;类不能直接访问非静态成员,必须通过对象调用。
-
null是引用的空值状态而非对象,Strings=null时s未指向堆中实例,访问s.length()抛NullPointerException;类字段默认null,局部变量未初始化编译报错,解引用时才触发异常。
-
ApacheCommonsFileUpload仅解析multipart请求,不处理下载或文件系统操作;完整上传需自行实现存储、校验等逻辑,并注意乱码、流重复读、临时文件清理及大小限制。
-
IntelliJIDEA中Lombok插件不生效需确认三件事:安装启用插件、开启AnnotationProcessing、构建工具中正确声明compile范围依赖;新版Lombok1.18.32与Jackson兼容问题需显式配置lombok.config;@Builder与@AllArgsConstructor同用易冲突,推荐@RequiredArgsConstructor+@Builder;单元测试中失效多因testclasspath缺失Lombok依赖或IDE缓存未更新。
-
update-alternatives是Linux管理多版本Java的工具,通过符号链接统一/usr/bin/java指向不同JDK版本,使用--install注册版本,--config交互切换,默认按优先级自动选择,确保java、javac等命令一致性。
-
TreeMap按key排序,依赖红黑树结构与key的可比较性:自然排序(Comparable)或定制排序(Comparator),插入即有序,遍历、范围查询和极值定位均高效。