2022-04-09 查阅java字节码 javajavap字节码 程序人生 简介javap是 Java class文件分解器,可以反编译,也可以查看java编译器生成的字节码。用于分解class文件。本文以64位OpenJDK 14.0.2版本来介绍javap工具。 首先看下javap的使用方法用法: javap
2022-01-29 docker内curl外部https失败 curldockerhttpsmtu 程序人生 背景之前使用docker部署青龙面板,现在换了一台服务器,突然发现系统通知失效了,各种request timeout。相同的docker,相同的配置在阿里云上就一点问题都没有。排查了半天才发现是一个以前从没有接触过的设置问题。 排查 配置问
2022-01-25 gremlin基础语法 gremlin语法 程序人生 环境采用apache-tinkerpop-console 3.2.11,可以在官网下载到 先建立一个空的图数据库(内存) g = TinkerGraph.open().traversal() 基础一共有5种通用的单步(gene
2021-12-24 Neo4j语法 neo4j语法 程序人生 环境介绍neo4j是基于Java语言编写图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统或GDBMS。Neo4j的是一种流行的图形数据库。 其他的图形数据库是Oracle NoSQL数据库,OrientDB
2021-12-13 LOG4J2史诗级漏洞 BUGjava漏洞 程序人生 log4j2史诗级漏洞背景12月9日晚,Apache Log4j2被曝出一个高危漏洞CVE-2021-44228,攻击者只需要输入一段代码,就可以控制受害者服务器,利用门槛极低。目前Log4j 团队已注意到一个安全漏洞 CVE-2021-4
2021-11-14 UML之类图 UML 程序人生 UML之类图类(Class) 接口(Interface)接口是一种特殊的类,具有类的结构但不可被实例化,只可以被实现(继承)。 类图中的关系(relation)泛化(Generalization)是一种继承关系,表示一般与特殊的关系,它指
2021-11-13 UML的图 UML 程序人生 UML的图 UML图 说明 用例图 从用户的角度提供系统或业务流程功能的概述。用户“使用”系统的方式是创建用例图的起点。 活动图 对系统中任何位置的流进行建模。特别是,描述正常用户交互以及替代和例外的用例中的流程由这些活动图很
2021-10-22 mapstruct java 程序人生 什么是mapstruct?一种属性复制、对象转换的工具。在java项目中,无论是MVC还是DDD模型,都少不了各种对象,例如DO、BO、DTO、VO 等等,那么对象转换就成了比较头疼的一个事情了。 如何解决对象转换?对象互相转换有以下几种方
2021-09-24 知识点整理(十一)——DH秘钥交换协议 加解密知识点整理 程序人生 什么是DH秘钥交换协议 Whitfield Diffie与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Ag
2021-09-18 知识点整理(十)——cpu的缓存一致性和伪共享 知识点整理系统 程序人生 L1、L2、L3、内存要了解cache的缓存一致性和伪共享问题,就要先了解L1 cache 、L2 cache 、L3 cache和内存之间的关系。 通常cpu内有3级缓存,即L1、L2、L3缓存。其中L1缓存分为数据缓存和指令缓存,cp
2021-09-15 知识点整理(九)——mysql的MVCC mysql知识点整理 程序人生 mysql事务控制并发事务并发事务会带来一些问题 脏读一个事务读取到了另一个事务修改但未提交的数据。 不可重复读一个事务中多次读取同一行记录不一致。 幻读一个事务中多次按相同条件查询,结果不一致。(多了或者少了) 事务隔离级别
2021-09-14 知识点整理(八)——mysql中的B+树 mysql知识点整理 程序人生 背景关于mysql的B+树,经常会遇到有关的这么几个问题: B+树索引是什么? 为什么B+树(比B树)更适合做数据库索引? 为什么B+树索引一页是16k? 为什么建议主键自增? 为什么不建议存储text等大类型?或者建议拆分表来存储? 为
2021-09-13 知识点整理(七)——java中的AQS java知识点整理 程序人生 什么是AQS? AQS全称是AbstractQueuedSynchronizer ,java中的一个抽象类,AQS定义了一套多线程访问共享资源的同步框架。 许多同步类的实现都依赖于它,例如ReentrantLock/Semaphore/C
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协议知识点整理(七)—