java教程技术文章
-
分代收集理论的核心是“对象生命周期差异显著”,实战优化关键在于:让短命对象快速回收、长命对象少被扫描、中等寿命对象不卡晋升瓶颈;需根据变量真实存活特征反向设计分配与引用方式,避免误判导致不必要的FullGC。355 收藏 -
Java仅支持8种基本类型及其对应包装类之间的自动装箱/拆箱,如int↔Integer、boolean↔Boolean等;其他类型不支持,编译失败。355 收藏 -
验证阶段首先校验Class文件魔数是否为0xCAFEBABE、主版本号是否在JVM支持范围内,未通过则抛出ClassFormatError或UnsupportedClassVersionError并终止加载。355 收藏 -
String.isBlank()判断字符串是否为null、空或仅含Unicode空白字符,需手动判null防NPE;适用于表单校验等语义空判断,不等价于trim().isEmpty(),且仅Java11+支持。355 收藏 -
自定义异常能提升Java代码可读性和维护性,通过命名明确异常语义,如UserAlreadyExistsException;继承Exception或RuntimeException并封装错误信息;统一组织在exception包中,建立BaseBusinessException基类;结合枚举管理错误码;合理控制异常数量,在业务层主动抛出并包装底层异常,使错误处理更清晰可控。355 收藏 -
用一个可运行的小实验演示 Java Stream 如何把订单列表过滤、分组、金额求和并输出客户消费汇总,补充双维度统计和常见坑检查。355 收藏 -
直接装JDK21并配好JAVA_HOME只需三步:选MSI安装包、装到纯英文无空格路径、JAVA_HOME必须指向JDK根目录而非bin;否则java-version会报错,Maven/IDEA等工具也无法识别。354 收藏 -
ImageIO.read()返回已解码的BufferedImage,直接调用getWidth()/getHeight()获取真实像素宽高;需判空防NPE,因损坏文件、不支持格式等会导致返回null。354 收藏 -
Java17+通过类型模式(如caseStrings)简化类型检查与转换,Java21新增记录模式(如caseCircle(Point(varx,vary),doubler))支持嵌套解构,提升安全性、简洁性与表达力。354 收藏 -
Charset.availableCharsets()返回SortedMap<String,Charset>,键为标准字符集名(如"UTF-8"),值为对应Charset实例;它仅包含JVM当前已加载注册的字符集,不保证穷举所有可能,且结果受JDK版本、厂商、操作系统及动态provider影响。354 收藏 -
switch表达式需显式yield返回值,箭头分支单表达式自动yield,块分支须手动yield;枚举类型必须穷尽所有常量;逗号分隔case支持多常量;类型推导严格,null需匹配声明类型。354 收藏 -
应慎用Executors.newFixedThreadPool,因其使用无界LinkedBlockingQueue易致OOM,生产环境须手动构建ThreadPoolExecutor,显式配置有界队列、拒绝策略及命名线程工厂。354 收藏 -
Java的String.replace()仅支持字面量替换,若需基于正则表达式(如替换首个点号前的内容),必须改用replaceAll()或replaceFirst()方法。354 收藏 -
Java编译器默认只为源文件中声明的public顶级类生成独立.class文件,且该类名必须与文件名(含大小写)严格一致;其余非public顶级类会被编译进同一.class文件中,不对外暴露。354 收藏 -
导出CSV必须用try-with-resources关闭BufferedWriter,字段含逗号或中文需加英文双引号;导入不可用split(","),应使用OpenCSV或手动解析引号;统一指定UTF-8编码并处理BOM头,Contact应为POJO。354 收藏