2021-12-13 LOG4J2史诗级漏洞 BUGjava漏洞 程序人生 log4j2史诗级漏洞背景12月9日晚,Apache Log4j2被曝出一个高危漏洞CVE-2021-44228,攻击者只需要输入一段代码,就可以控制受害者服务器,利用门槛极低。目前Log4j 团队已注意到一个安全漏洞 CVE-2021-4
2021-10-22 mapstruct java 程序人生 什么是mapstruct?一种属性复制、对象转换的工具。在java项目中,无论是MVC还是DDD模型,都少不了各种对象,例如DO、BO、DTO、VO 等等,那么对象转换就成了比较头疼的一个事情了。 如何解决对象转换?对象互相转换有以下几种方
2021-09-13 知识点整理(七)——java中的AQS java知识点整理 程序人生 什么是AQS? AQS全称是AbstractQueuedSynchronizer ,java中的一个抽象类,AQS定义了一套多线程访问共享资源的同步框架。 许多同步类的实现都依赖于它,例如ReentrantLock/Semaph
2021-09-10 知识点整理(六)——图解Raft协议 Raftjava知识点整理 程序人生 什么是分布式共识?假设我们有一个单节点系统,这个系统用于存储一个值。 我们还有一个可以向服务器发送值的客户端。 图中左侧绿色的圆代表客户端,右侧蓝色的圆代表单节点存储系统,用于存储一个值x。 客户端发送一个数值(8)给服务端,服务端存储
2021-09-09 知识点整理(五)——mysql分页问题 javamysql知识点整理 程序人生 前言mysql在大数据量的情况下使用limit分页,会随着页码增大而查询效率低下。该怎么优化呢? 先看是不是,再看为什么,最后看怎么办 准备mysql本次操作使用mysql8 表为了验证大数据量,我们先准备一张5000万条记录的表。 C
2021-09-07 知识点整理(四)——dubbo中支持的RPC协议 dubbojava知识点整理 程序人生 dobbo中目前支持的RPC协议对比 协议 链接个数 链接方式 传输协议 传输方式 序列化 适用范围 适用场景 dubbo 单连接 长连接 TCP NIO异步传输 hessian二进制序列化 传入传出参数数据包较小(建议小于10
2021-09-07 知识点整理(三)——零拷贝 java知识点整理 程序人生 背景当用户通过浏览器从服务器上下载一个文件时,服务器具体是怎么处理这个文件的呢?大致可以分为以下几步: 应用程序产生一个指定去读取需要的文件。 由于读取磁盘文件涉及到硬件,所以进程陷入内核态。 操作系统检查内核空间是否有文件缓存,有就直接
2021-09-06 知识点整理(二)——https httpjava知识点整理 程序人生 httpsHTTP 有以下安全性问题: 使用明文进行通信,内容可能会被窃听; 不验证通信方的身份,通信方的身份有可能遭遇伪装; 无法证明报文的完整性,报文有可能遭篡改。 HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secu
2021-09-06 知识点整理 java知识点整理 程序人生 知识点整理目录知识点整理(一)——redis知识点整理(二)——https知识点整理(三)——零拷贝知识点整理(四)——dubbo中支持的RPC协议知识点整理(五)——mysql分页问题知识点整理(六)——图解Raft协议知识点整理(七)—
2021-09-06 知识点整理(一)——redis javaredis知识点整理 程序人生 基础知识概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 Redis 支持很多特性,例如将内存中
2021-09-03 CopyOnWrite java 程序人生 写时拷贝 在数据第一次写入到某个存储位置时,首先将原有内容拷贝出来,写到另一位置处,然后再将数据写入到存储设备中,该技术只拷贝在拷贝初始化开始之后修改过的数据。 linux中的cow在Linux程序中,fork()会产生一个和父进程完全相
2021-09-01 用java解数独 java 程序人生 其实也就是用到了回溯算法。 回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。 首先定义一个Sudoku类,用来保存和处理9*9的数组 import ja