Java 8 到 17 新特性实战:从 Stream 到 Record,真正写出现代代码
还在用 for 循环遍历集合、用一长串 if 判空、写一堆 getter/setter/toString?这些写法能跑,但早已不是现代 Java 的最优解。
spring-rest接口LocalDateTime转时间戳
本文介绍spring-rest接口中的LocalDateTime日期类型转时间戳的方法。 具体的代码参照 示例项目 https://github.
单一职责原则:JAVA LocalDate的设计取舍
学习和理解单一职责,一个比较好的办法,是去看一个真正按这个原则设计的类。比如JDK 17里的java.time.LocalDate。第一次接触LocalDate时,很容易会认为,既然它负责表示日期,那日期格式化是不是也应该由它来做?但实际上,LocalDate根本不负责格式化。
线上日期突然跳到1970年,罪魁祸首竟是SimpleDateFormat
交易系统核心接口大面积报错,DBA 查数据库时间戳一切正常,NTP 同步没问题,服务器时区配置也没动过。但日志里密密麻麻的订单创建时间全是 1970年1月1日——有的甚至是 2037年。更诡异的是,流量降下来之后,错误自己消失了。第二天凌晨三点,准时复发。
周五改个时间字段,线上接口全红:TIMESTAMP 换 DATETIME 的隐形坑
摘要:一个库存保存接口,仅把 create_time/update_time 从 TIMESTAMP 改为 DATETIME,发版后大量报“字段没有默认值 / 不能为 null”。
项目预算和交付日期变了,为什么不能直接改台账?
项目预算和交付日期变了,为什么不能直接改台账?一个项目开始执行后,预算需要增加,计划结束时间需要后移,项目经理也可能交接。给台账加一个编辑按钮,就能很快把最新数字填进去。但过一段时间再回头看,团队往往还要回答另一组问题:原来怎么定的,为什么要改,谁批准的,这次到底改了哪些内容?
数据不能只活在内存里
前两天我把Java 8 方法引用和 Optional 那篇写完,发完之后躺在床上刷手机,脑子里还在转那篇文章的代码。转着转着突然反应过来一个事儿,前面两篇文章里用的所有数据,全是我自己在代码里写死的。List.
第27讲 Spring Boot 定时任务与邮件发送
本讲示例与实战用到的全部依赖:说明:1 spring-boot-starter-mail 内置 JavaMailSender、SimpleMailMessage、MimeMessageHelper;2 本讲统计表查询用 MyBatis 注解 SQL,因此需要 MyBatis 依赖;
MCP Server 实战:Java 接口变 AI 工具
摘要: 用 Spring AI 把现有 Java 接口包装成 MCP Server,一次实现,Claude Desktop、Cursor 等所有 MCP 客户端都能直接调用。
Java 8 到 Java 21,到底升级了什么?一文看懂现代 Java 的核心变化
《Java 技术进化论》专栏 · 第二篇如果你是一名 Java 开发人员,可能会发现一个有意思的现象:很多企业项目仍然运行在 Java 8 上,而新一代 Spring Boot 项目已经开始使用 Java 17、Java 21,甚至 Java 25。