程序开发 工具类 Optional 用法详解 Optional 类是 Java 8 中引入的一个用于避免空指针异常的工具类,请注意它是 java.util 包下的一个工具类。 它提供了一系列方法,用于对可能为 null 的对象进行操作,以便更加安全地访问对象的属性和方法。 Optional 里面几乎全部都围绕其中的一个成员变量 value 在运作。 下面是 Optional 类中常用的方法及其用法: of 方法 创建一个包含指定对象的 Opt…
程序开发 50 个 Java 编程技巧 一、语法类技巧 1.1. 使用三元表达式 普通: String title; if (isMember(phone)) { title = "会员"; } else { title = "游客"; } 精简: String title = isMember(phone) ? "会员" : "游客"; 1.2.利用 fo…
程序开发 Java 彻底理解两种动态代理 在 java 中,有两种常见的动态代理实现方式,即基于接口的动态代理(JDK 动态代理)和基于类的动态代理(CGLIB 动态代理),下面就对这两种代理进行解释和举例。 1. JDK动态代理 这种动态代理实现方式是基于接口的,使用 java.lang.reflect.Proxy 类和 java.lang.reflect.InvocationHandler 接口来创建代理对象。代理对象实现了目标接口,…
程序开发 Java 使用 EasyExcel 导出基本使用方法 工作中要说用到 excel 的情况说多也不多,说少也不少,但是很多次遇到似乎都要去查一遍 EasyExcel 的用法,所以这里把经常用到的注解记录一下。 1. 基本导出 1.1 指定标题 常规导出情况下,只需要指定单元格头部标题,和忽略部分字段即可。 public class DemoData { @ExcelProperty("字符串标题") private String s…
程序开发 Springboot 定义在字段上数据校验注解详解 在进行数据处理时,对于数据的正确性校验是必不可少的。在Java中,可以使用注解来实现对数据的校验。这些注解可以在实体类中的字段上进行标注,用来验证字段的数据是否符合规定。 @Null: 限制只能为null。 @NotNull: 限制必须不为null。 @AssertFalse: 限制必须为false。 @AssertTrue: 限制必须为true。 @DecimalMax(value): 限制必须…
程序开发 Java 如何自定义注解以及如何使用自定义注解 对所有使用 @Tested 的注解运行看是否报错。 NoBug.java import ceshi.Tested; public class NoBug { @Tested public void suanShu(){ System.out.println("1234567890"); } @Tested public void jiafa(){ System.out.prin…
程序开发 Mybatis 详解及详细使用教程 一、Mybatis 是什么 MyBatis 是一个开源、轻量级的数据持久化框架,是 JDBC 和 Hibernate 的替代方案。MyBatis 内部封装了 JDBC,简化了加载驱动、创建连接、创建 statement 等繁杂的过程,开发者只需要关注 SQL 语句本身。 MyBatis 支持定制化 SQL、存储过程以及高级映射,可以在实体类和 SQL 语句之间建立映射关系,是一种半自动化的 ORM…
程序开发 Java 包装类型的缓存机制 缓存机制介绍 Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。 Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据,Character 创建了数值在 [0,127] 范围的缓存数据,Boolean 直接返回 True or False。 Integer 缓存源码: public static Integer…
程序开发 遍历 Map 最常用的两种方式 使用 for-each 循环遍历 Map 中的键值对 Map<String, Integer> map = new HashMap<String, Integer>(); for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer v…
程序开发 Mybatis-plus 中 Java 的 Map 类型如何对应 Mysql 数据库中的 varchar 比如我现在有如下实体类,那么数据肯定是不能直接插入数据库的,因为 mysql 中 varchar 对应的 java 类型应该是 String,而不是 Map。 @Data @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) public class File { private Integer id; private Ma…
程序开发 Springboot 常见注解以及说明 @SpringBootApplication: 启动 Spring Boot 应用的注解,等价于 @Configuration、@EnableAutoConfiguration、@ComponentScan 三个注解的组合。 @RestController: 用于标识 RESTful Web 服务的控制器,返回结果是 JSON 数据。 @Controller: Spring MVC 控制器注解,用…
程序开发 使用 Python 脚本调用 tinypng 递归批量压缩目录下的图片 TinyPNG 是提供在线图片压缩服务的网站,可以帮助用户将 PNG 、JPEG、webp 格式的图片压缩到更小的文件大小,而且不会显著影响图片的质量。TinyPNG 可以有效地减小图片的文件大小,从而使网站的加载速度更快,用户的流量更少,并提高用户的访问体验。 最大的优点就是几乎无损压缩!!!官网在线体验:https://tinypng.com/ 除了网页的方式,还提供了 api 方式进行压缩,…