Java基础
文章平均质量分 74
01空间
生无大事
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL中Json字段
MySQL在5.7.8中提供了Json类型的支持。官网json字段支持:json数组(数组中可以是不同的类型)、json对象json。原创 2024-12-17 23:28:42 · 1710 阅读 · 0 评论 -
Java8到21新特性
使用var自动推断局部变量类型使用上更便捷简单,支持Http1.1、Http2。也支持异步请求。这里直接把JDK中的示例代码扒出来看看就行了。还有一些扩展的东西。像什么BodyHandler、BodySubscriber等等。感兴趣可以去看看异步示例改善Optionaljava8的Optional,仅仅是对一个可能为空的对象的封装。在Java9中,对其进行了进一步封装。在java11中增加了isEmpty方法,逻辑与isPresent相反。ifPresentOrElse直接提供两个函数原创 2024-12-17 00:12:03 · 1177 阅读 · 0 评论 -
Hmac签名算法
其全程大概是:Hash Message Authentication Code(前面的Hash是后面的定语,这是一种基于Hash计算的签名方式,那它就支持一系列的hash算法)因为通常的比较操作,会在从头比到尾,直到发现不一致或者到达末尾就返回结果;其构建密钥,也分为根据外部密钥串构建字节切片和生成指定长的随机密钥。到这里,关于常用的关于常用的加解密、签名、摘要计算的介绍就翻篇了。既然理论上有这个风险,那开发者可以选择使用更安全的方式去比较。从理想的环境中看,每次计算到特定位置的时间是一致的。原创 2024-12-07 01:46:08 · 1355 阅读 · 0 评论 -
Rsa加解密 + 签名验签
Rsa加解密概述聚合算法名称(用于创建加密器)基本概念填充方式分块加密基本使用生成密钥加解密创建加密器设置模式(加密)、公钥对明文加密,并对结果进行Base64编码对以上结果,进行解密 设置模式(解密)、私钥签名 + 验签创建签名器初始化签名器,加载签名明文生成签名初始化验签参数,加载签名明文验签关于初始化加密器和签名器的重载方法概述RSA 是一种非对称加密算法,它使用一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据,或者私钥用于签名,公钥用于验证签名。聚合算法名称(用于创建加密器)JDK官原创 2024-12-01 22:04:15 · 1754 阅读 · 0 评论 -
Aes加解密
长度不是16的倍数,那么则需要进行填充,这就引申出了填充模式。这种方式在加密一个块时,需要使用上一个块加密后的数据与。也就是说每一个块的加密都不一样。AES是一种对称加密算法。通过一系列计算将明文转换成一个密文。在Java中已经将其行为统一了。加密和解密的对象通常是字节数组(通常会将其转换为可见的字符串。加密后的数据,可能有很多是。AES中现在用得最多的就是。原创 2024-12-01 22:03:23 · 1359 阅读 · 0 评论 -
Base64编码概念
首先,要明确一点就是Base64的目的是将一个字节数组转换为上述字符表示。比较通用的是76个字符,这是早期为了方便查看定下来的。在一些需要查看编码后的内容的场景,可能还会对单行字符数进行限制。Base64通常用于以文本形式传输和存储二进制数据。然后在末尾补4个 0,凑齐12位(6位的倍数)。然后末尾补2个0,凑齐18位(6的倍数)特别是在一些相对较小的文件中使用。然后将其分为2个6位的二进制的组。然后将其分为3个6位二进制的组。常规的Base64编码结果由。最后查ASCII码表。最后查ASCII码表。原创 2024-12-01 22:02:47 · 243 阅读 · 0 评论 -
加解密系列之摘要算法
MD5(摘要长度16字节)SHA-1(第一代散列算法,摘要长度20字节)SHA-2(第二代散列算法,后面数字代表 摘要位数衍生具体的算法包括:SHA - 224SHA - 256SHA - 384SHA - 512SHA - 3(第三代散列算法,基于第二代改善而来,后面数字代表 摘要位数但是低版本JDK并不支持SHA3 - 224SHA3 - 256SHA 3- 384SHA3 - 512。原创 2024-12-01 22:01:55 · 495 阅读 · 0 评论 -
nimbus-jose-jwt库简单使用 & 公私钥字符串互相转换
需大于等于 对应算法所需的密钥长度。包括生成RSA密钥对。原创 2024-03-29 00:58:43 · 1045 阅读 · 0 评论 -
浅浅聊下守护线程与用户线程的区别
根据以上的配置:得到一个核心线程和最大线程数都是1,永不销毁的线程池;那么这个线程会一直保持;:其他普通线程基本都可以归到用户线程下,包括主线程。可以看到:JVM几乎是在主线程运行结束的同时就退出了,而没有等线程池中的任务执行完毕。由于这里的线程是以线程池形式运行,因此线程的生命周期实际上由线程池控制,可以看看。核心线程数为:0,也就是说,实际的工作线程都是线程池启动后再创建的非核心线程。不会执行一次指定任务就结束,而是持续运行,直到用户线程全部退出后自动结束。创建的线程池,内部线程均为用户线程,JVM。原创 2024-02-01 15:48:22 · 1230 阅读 · 0 评论 -
JDK21新特性 有序集合
Java集合体系中,原来就有有序集合实现,但是没有规范支持有序操作的接口。,用于定义有序集合支持的操作。JDK21 新增了两个接口。原创 2023-09-26 22:59:32 · 1206 阅读 · 0 评论 -
JDK21新特性 虚拟线程
现有的并发模型最终任务的执行是落到线程上面的。这个线程的实现为操作系统 线程的包装器,操作系统线程的成本很高,因此我们不能创建太多线程。在JAVA21中,传统线程称之为平台线程,在平台线程之下,派生出虚拟线程,而虚拟线程是非常轻量级的,突出一个用完就丢虚拟线程的调度由平台线程控制,切换虚拟线程上下文;在操作系统层面,还是一个同一个线程里面。因此,虚拟线程不该被池化,而是来个任务就直接放到虚拟线程中运行。原创 2023-09-23 17:12:52 · 734 阅读 · 0 评论 -
Maven配置文件加载问题
我们通过。原创 2023-08-08 14:42:36 · 578 阅读 · 0 评论 -
Maven 结合 Nexus
Maven × Nexus,实用配置原创 2023-01-08 00:54:32 · 552 阅读 · 0 评论 -
Java基础之break
Java基础 break定义示例定义手动指定流程跳转到指定标签所属代码块的结尾处示例lab3: for (int i = 0; i < 10; i++) { System.out.println("lab1前"); lab1: { System.out.println("lab1后"); System.out.println("lab2前");原创 2021-12-02 01:47:40 · 373 阅读 · 0 评论
分享