Java 编码和加密
Java 编码和加密Base64 编码Base64 原理Base64 内容传送编码是一种以任意 8 位字节序列组合的描述形式,这种形式不易被人直接识别。 Base64 是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的 ASCII 字符序列,常用在需用通过文本协议(比如 HTTP 和 SMTP)来传输二进制数据的情况下。Base64 并不是加密解密算法,尽管我们有时也听到使用 Base64 来加密解密的说法,但这里所说的加密与解密实际是指编码(encode) 和 解码(decode)的过程,其变换是非常简单的,仅仅能够避免信息被直接识别。 Base64 算法主要是将给定的字符以字符编码(如 ASCII 码,UTF-8 码)对应的十进制数为基准,做编码操作: 将给定的字符串以字符为单位,转换为对应的字符编码。 将获得字符编码转换为二进制 对二进制码做分组转换,每 3 个字节为一组,转换为每 4 个 6 位二进制位一组(不足 6 位时低位补 0)。这是一个分组变化的过程,3 个 8 位二进制码和 4 个 6 位二进制码的长度都是 24 位(3*8 = 4*6 = 24)。...
SpringBoot 知识清单
SpringBoot 知识图谱 预警:本文非常长,建议先 mark 后看,也许是最后一次写这么长的文章 说明:前面有 4 个小节关于 Spring 的基础知识,分别是:IOC 容器、JavaConfig、事件监听、SpringFactoriesLoader 详解,它们占据了本文的大部分内容,虽然它们之间可能没有太多的联系,但这些知识对于理解 Spring Boot 的核心原理至关重要,如果你对 Spring 框架烂熟于心,完全可以跳过这 4 个小节。正是因为这个系列的文章是由这些看似不相关的知识点组成,因此取名知识清单。 在过去两三年的 Spring 生态圈,最让人兴奋的莫过于 Spring Boot 框架。或许从命名上就能看出这个框架的设计初衷:快速的启动 Spring 应用。因而 Spring Boot 应用本质上就是一个基于 Spring 框架的应用,它是 Spring 对“约定优先于配置”理念的最佳实践产物,它能够帮助开发者更快速高效地构建基于 Spring 生态圈的应用。 那 Spring Boot 有何魔法?自动配置、起步依赖、Actuator、命令行界面(CL...
commons-io 框架
IO框架commons-io 框架jar官网下载地址:https://commons.apache.org/proper/commons-io/download_io.cgi其中doc的jar解压之后,就是api文档。这是maven方式: 12345<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.16.1</version></dependency> 该框架提供了相关工具类: FileUtils 方法签名 说明 public static void copyFile(File srcFile, File destFile) 复制文件 public static void copyDirectory(File srcDir, File destDir) 复制文件夹 public static void deleteDi...
java 高级
Java 高级数据结构数组、列表、集合、映射、栈、队列、堆、树。 Java 集合框架 点击查看UML图 类型 描述 特点 常用实现类 Collection 单列数据集合的根接口 存储一组对象的容器 (它下面有List和Set) List 有序、可重复的集合 有索引,允许重复,元素有顺序 ArrayList, LinkedList, Vector Set 唯一、无序的集合 无索引,不允许重复元素,不保证顺序 HashSet(无序), LinkedHashSet(有序), TreeSet(升序) Map 双列数据的集合 存储键值对(Key-Value),Key唯一,排序由key决定 HashMap(无序), LinkedHashMap(有序), TreeMap(升序), Hashtable Collections 操作集合的工具类 提供了一系列静态方法,用于对集合进行排序、搜索、线程安全化等操作 (这是一个工具类,不是接口) 单列集合遍历 iterator 12345678List<Integer> list = new ArrayLis...
java 面向对象
面向对象 五大基本原则:单一职责原则(Single-Responsibility Principle)、开放封闭原则(Open-Closedprinciple)、Liskov替换原则(Liskov-Substituion Principle)、依较倒置原则(Dependency-lnversionPrinciple)和接口隔离原则(Interface-Segregation Principle)。 单一职责原则: 一个类最好只做一件事开放封闭原则: 对扩展开放、对修改封闭里氏替换原则: 子类必须能够替换其基类依赖倒置原则: 程序要依赖于抽象接口,而不是具体的实现接口隔离原则: 使用多个小的专门的接口,而不要使用一个大的总接口 Java继承继承的概念继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 继承的特性 子类拥有父类非 private 的属性、方法 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。 子类可以用自己的方式实现父类的方法。 Java 的继承是单继承,但是可以多重继承,单继承就...
js 问题记录
时区问题处理问题描述:程序时间全局使用的 new Date(),在国内一切正常,但是在国外,就出问题了。最后追踪其根本原因为 new Date(‘xxxx/x/x’).getTime() 在不同时区返回的时间戳不一致,导致查询数据失败。 如:new Date("2025/8/1").getTime() 的解析依赖于客户端时区 北京 (UTC+8):解析为 2025-08-01 00:00:00 GMT+0800 纽约 (UTC-4):解析为 2025-08-01 00:00:00 GMT-0400。 结论:相同字符串在不同时区返回不同时间戳(相差时区偏移) 解决方法: 123456function toUTCTimestamp(dateString) { const [year, month, day] = dateString.split('/').map(Number); // 使用 Date.UTC 创建 UTC 时间戳,month - 1是因为 UTC 方法是从 0 开始计算。 减去 8 小...
Spring 面试
Spring 面试综合篇不同版本的 Spring Framework 有哪些主要功能? Version Feature Spring 2.5 发布于 2007 年。这是第一个支持注解的版本。 Spring 3.0 发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。 Spring 4.0 发布于 2013 年。这是第一个完全支持 JAVA8 的版本。 什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。 它是轻量级、松散耦合的。 它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。 它可以集成其他框架,如 Structs、Hibernate、EJB 等,所以又称为框架的框架。 列举 Spring Framework 的优点。 由于 Spring Frameworks 的分层架构,用户可以自由选择自己需要的组件。 Spring Framework 支持 POJO(Plain Old Java Object) 编程,从而具备持续...
java 基础
简介详细api方法可以查看:官方API文档更多教程可以查看:官方教程文档 语法与 C、C++接近,且丢弃了 C++中很少使用的特性。此外,java 还不使用指针,而是引用,并提供了自动分配和回收内存空间,使得我们不用为内存管理而担忧。 运行环境,最好保证操作系统内存 1G 以上 环境配置oracle jdk 下载:https://www.oracle.com/java/technologies/downloads/ 需要有 Oracle 账户现在压缩包,解压放置在E:\development下,在 “系统变量” 中设置 3 项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓),若已存在则点击”编辑-新建”,不存在则点击”新建”。 变量设置参数如下: 变量名:JAVA_HOME 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\too...
Spring 之 JDBC
Spring 之 JDBCJDBC 是 Java 语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了增、删、改、查数据库的方法。 JDBC 入门示例JDBC 的工作步骤大致如下: 创建实体类。 声明数据库读写接口的 DAO 接口。定义 DAO 的好处在于对于数据层上层的业务,调用 DAO 时仅关注对外暴露的读写方法,而不考虑底层的具体持久化方式。这样,便于替换持久化方式。 创建一个 DAO 接口的实现类,使用 Spring 的 JDBC 模板去实现接口。 最后,定义一个 DAO 接口的实现类的 JavaBean,并将数据源注入进去。 假设,我们要通过 Spring + JDBC 访问一张 Mysql 数据表 user,user 表的数据结构如下: 123456789101112131415-- 创建用户表CREATE TABLE `user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` VARCHAR(255) ...
Spring 之数据源
Spring 之数据源 本文基于 Spring Boot 2.7.3 版本。 Spring Boot 数据源基本配置Spring Boot 提供了一系列 spring.datasource.* 配置来控制 DataSource 的配置。用户可以在 application.properties 或 application.yml 文件中指定数据源配置。这些配置项维护在 DataSourceProperties 。 下面是一个最基本的 mysql 数据源配置示例(都是必填项): 12345678# 数据库访问地址spring.datasource.url = jdbc:mysql://localhost:3306/spring_tutorial?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8# 数据库驱动类,必须保证驱动类是可加载的spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver# 数据库账号spring.datasourc...








