-
Java文件上传下载需匹配Servlet3.0+与Web容器(如Tomcat7+),SpringBoot2.2+默认支持;关键配置包括spring.servlet.multipart.max-file-size、max-request-size;前端须用enctype="multipart/form-data"及正确name属性;常见问题有参数不匹配、流重复读取、中文名乱码等。
-
SQLException捕获后应记录SQL语句、参数、getSQLState()和getErrorCode(),仅e.printStackTrace()会丢失关键上下文;只对“08S01”“40001”等可重试码重试,且需关闭资源、指数退避、避免事务内重试;回滚前须检查事务状态;PreparedStatement参数为null时应统一用setObject或setNull,禁用字符串拼接防注入。
-
Java多态是语言特性而非设计模式,却是策略、模板方法、工厂方法、观察者等模式落地的底层支撑;它通过接口/抽象类实现运行时行为绑定,避免if-else硬编码,提升扩展性与可测试性,但需警惕假抽象、构造器调用抽象方法、类型判断绕过多态等常见问题。
-
Java中栈帧的返回地址由JVM自动管理,存于栈帧方法出口区域,指向调用指令下一条字节码地址,开发者不可访问或修改,仅能通过return、异常抛出、try-finally间接影响控制流。
-
Java集合类默认支持泛型但不强制使用,JDK5起泛型为可选语法糖;不加泛型会导致运行时ClassCastException,而加泛型可在编译期捕获类型错误并自动转型。
-
Chromebook上必须通过Crostini(Debian容器)安装openjdk-17-jdk,而非手动或Arch;装后需确认PATH和javac-version,VSCode需用Remote-Containers连接,且容器重启后服务需手动启动。
-
在iText7中,getWidthPoint()已被移除,需通过BaseFont.getWidthPoint()或PdfFont.getWidth()配合字体实例和字号显式计算文本宽度,不再支持链式调用后直接获取。
-
静态代码块先执行,顺序为:静态代码块→实例代码块→构造函数;静态代码块属类级别、类加载时执行一次,实例代码块属对象级别、每次new时在构造函数前执行。
-
正则表达式可精准删除指定字符串:一、用replace()配字面量正则删固定串;二、用newRegExp动态构建并转义变量正则;三、用捕获组保留内部内容、删除包围结构。
-
Java服务器日志分析需综合异常位置、原因及修复方案:从堆栈底部定位代码行,结合上下文、时间线、调用链与环境状态,交叉验证线索,避免经验误判。
-
for循环用于已知次数的重复执行,语法为for(初始化;条件;更新){循环体},示例打印1到5。
-
SqlSessionTemplate通过动态代理+ThreadLocal绑定事务内SqlSession实现线程安全与事务一致,依赖TransactionSynchronizationManager管理生命周期,避免手动获取原生session导致事务不同步或连接泄漏。
-
Thymeleaf的th:each不能直接作用于<tr>标签来生成重复行——必须包裹在th:block中,否则模板引擎无法正确解析迭代逻辑,导致数据不渲染。本文详解正确写法、原理及避坑要点。
-
Java初学者只需装JDK17(LTS)、IntelliJIDEACommunity和按需启用MavenWrapper;避免JDK21/22或8,禁用IDE插件市场,确保java/javac版本一致、文件名与public类名严格匹配、运行时选对main方法。
-
Java泛型是编译期类型检查机制,非语法糖;擦除后运行时无泛型信息,故禁用newT()、instanceofT、T.class及泛型异常捕获。