-
final成员变量必须在构造完成前初始化且仅赋值一次;支持声明时赋值(简洁线程安全)、构造器内赋值(最常用,支持校验)、实例初始化块(少用,封装公共逻辑)及staticfinal类常量(声明或静态块初始化)。
-
super调用父类构造方法必须是构造方法的第一条语句,否则编译报错;super()可自动插入,但父类无无参构造时须显式调用super(…);super与this()互斥且均须首行;super.method()仅绕过子类重写调用直接父类实例方法,不支持多层跳转或private/静态方法。
-
Java命令找不到的主因是JDKbin目录未加入PATH或PowerShell别名冲突;需先用Get-Command验证、检查PATH路径、删除java别名,并重启PowerShell生效。
-
不能把Deque当成普通List用,因为其设计目标是双端操作而非随机访问,get(intindex)不保证O(1),如LinkedList的get()为O(n),ArrayList实现Deque时首尾操作性能极差。
-
Java热加载依赖JVM的HotSwap能力及IDE调用JDWP和Instrumentation.redefineClasses实现,但仅支持方法体修改;字段、方法签名或类结构变更需重启或借助SpringBootDevTools。
-
JVM是运行Java程序的核心,提供跨平台能力,由类加载器、运行时数据区、执行引擎组成;内存分为堆、方法区、虚拟机栈、本地方法栈和程序计数器;堆用于存储对象,是GC主要区域,分新生代和老年代;方法区存储类信息、常量等,JDK8后元空间替代永久代;虚拟机栈管理方法调用,本地方法栈服务native方法,程序计数器记录指令地址;垃圾回收基于可达性分析,判断对象存活,通过Serial、Parallel、CMS、G1等收集器回收堆和方法区内存;合理配置-Xms、-Xmx等参数可优化性能;常见问题有内存泄漏、频繁GC
-
mapUnderscoreToCamelCase只对自动映射生效,即未定义resultMap、未用@Column/@TableField显式绑定、未在@Select中指定resultMap时才起作用;SpringBoot需在application.yml中配置mybatis.configuration.map-underscore-to-camel-case:true,且resultMap须设autoMapping="true"才能兼顾手动与自动映射。
-
2026年初国内高质量Java自学网站包括:入门选how2j.cn与自学精灵(way2j.com);查文档用Oracle官方教程和StackOverflow;练手用LeetCode力扣与LintCode;拓展选并发编程网与Baeldung。
-
Math.round()采用银行家舍入法而非四舍五入:.5时向偶数取整,如round(2.5)=2、round(3.5)=4;负数同理,round(-2.5)=-2;返回类型随参数为int或long;对NaN等边界值返回极值而非抛异常。
-
根本原因是Tomcat默认文件上传限制及注解误用:MultipartFile必须用@RequestPart而非@RequestParam,且需在application.yml中配置max-file-size和max-request-size;前端勿手动设置Content-Type;存储时须校验文件名、生成唯一路径并避免直接写Web根目录。
-
必须重写hashCode(),因为Java规范强制要求equals()为true时hashCode()必须相等,否则HashMap、HashSet等集合会失效;需用所有参与equals()比较的字段共同计算哈希,推荐使用Objects.hash()。
-
本文详解如何使用现代Java时间API(java.time)将形如"25/12/2021"的字符串安全、准确地解析为带纽约时区(America/New_York)的完整时间点,避免传统Date+SimpleDateFormat的时区陷阱。
-
答案是统一版本控制、依赖管理、环境隔离和自动化构建。使用Git进行代码管理,制定分支策略并配置.gitignore;通过Maven或Gradle标准化依赖,采用BOM统一版本;利用SpringProfiles和DockerCompose实现环境隔离;结合CI/CD、代码规范工具和README文档提升协作效率,确保开发环境一致可复现。
-
UnsupportedCharsetException是JVM运行时因未注册指定字符集(如AlpineJRE缺失GBK)而抛出的异常;需用Charset.isSupported()或availableCharsets()验证支持性,避免拼写误判。
-
浅拷贝仅复制对象自身字段,引用类型共享;深拷贝需手动逐层复制或序列化,但序列化有性能、安全及兼容性限制,无通用银弹。