-
应使用sa-token-spring-boot-starter启动,避免手写Filter;需配置路由拦截、Redis桥接及响应头暴露,确保token正确传递与集群支持。
-
Java继承中变量访问取决于修饰符、隐藏与引用类型:public/protected/包内默认变量可直接访问,private需getter/setter;super可访问父类变量,this优先子类同名变量;变量不具多态性,访问由编译时引用类型决定。
-
对象方法属于实例,通过对象调用,可访问所有成员;静态方法属于类,通过类名调用,只能访问静态成员。1.对象方法依赖实例,生命周期与对象相同;2.静态方法随类加载而存在,全局唯一;3.静态方法不能直接访问实例变量或方法;4.对象方法处理对象状态,静态方法用于工具功能。
-
本文介绍如何将数据库中存储的百分比基数(如0.0009)正确转换为带两位小数、德语格式(逗号作小数点)的显示字符串(如0,09%),同时确保零值(如0.0000)也能稳定输出为0,00%,避免NumberFormat默认舍去尾随零的问题。
-
私有化属性并通过getter/setter方法控制访问,能有效保护数据完整性。在Java中,使用private修饰字段(如name、age)可防止外部直接访问,确保只能通过类提供的公共方法进行读写。例如,在setAge方法中可加入年龄非负的校验逻辑,避免非法赋值,从而实现安全的状态管理与封装。
-
字符与字符串转换常用方法包括:String.valueOf()、Character.toString()、字符串拼接实现char转String;charAt()获取指定位置字符,toCharArray()转为字符数组实现String转char;多字符通过newString(chars)或StringBuilder构建字符串。
-
答案是统一编码为UTF-8可解决Java中文乱码。需确保源码文件、编译参数(-encodingUTF-8)、JVM运行时(-Dfile.encoding=UTF-8)及终端均使用UTF-8,避免因环境差异导致乱码,尤其注意生产环境启动参数配置。
-
Java集合对null支持差异显著:ArrayList/LinkedList允许任意位置存null;HashMap/LinkedHashMap允许一个null键和多个null值;TreeMap/TreeSet完全禁止null;ConcurrentHashMap拒绝null键值,CopyOnWriteArrayList允许add(null)。
-
Arrays.asList()返回的是Arrays的私有静态内部类ArrayList,未重写add/remove方法,调用抛UnsupportedOperationException;基本类型数组需用IntStream转装箱;该List与原数组共享数据,非独立副本。
-
InetAddress.getLocalHost()不可靠,应遍历NetworkInterface获取真实网卡IP;getByName("www.baidu.com")抛UnknownHostException是因DNS解析失败;IPv6地址带%后缀需截断或用InetAddress对象直连;DNS缓存需合理配置TTL。
-
项目SDK与模块SDK不一致会导致编译报错或NoClassDefFoundError,因模块SDK才真正决定字节码版本、语言特性及依赖解析,两者冲突时IDE行为不可预测,且Gradle同步可能覆盖设置。
-
确认内存泄漏需观察老年代使用率“只涨不跌”、FGC频次激增且回收无效、OOM频繁复现、特定类实例持续增长;jmap加live可导出纯净堆快照;MAT中通过PathtoGCRoots查强引用链,DominatorTree定位真正内存支配者。
-
hashCode决定对象在哈希集合中的存储位置,影响查找、插入、删除的平均时间复杂度;必须与equals保持一致,否则导致哈希集合行为异常;好hashCode需满足快、散、稳三特征。
-
本文详解如何在Javalin应用中配置静态资源目录,并通过服务端重定向方式自动响应PDF请求,避免流读取失败问题,实现安全、简洁的静态文件分发。
-
JDK包含JRE,JRE包含JVM;装JDK即自带JRE和JVM,仅运行程序只需JRE;JVM依赖JRE的rt.jar等类库,显式使用-cp会忽略默认类路径,导致NoClassDefFoundError。