自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 常用设计模式 精简总结

创建型模式工厂模式:创建工厂接口类(规范),子类(工厂)实现业务。抽象工厂模式:工厂的创建由子类决定,其子类的子类实现业务。(也称为超级工厂模式)单例模式:系统中保持一个实例,实例方法私有,公开全局访问方法。 -[懒汉式]: 获取实例对象时再实例化。加锁的实例化线程安全,但影响性能。 -[饿汉式]: 类加载时即实例化。线程安全。但可能产生不需要的垃圾对象。 -[双检锁]: 被实例化的对象加volatile关键字,并且实例化加锁。线程安全。...

2020-08-04 16:39:25 3226

原创 排序字段正则表达式 (xxx asc|desc) —— 前端传入排序字段

在网上找了很久很久(百度,emmm……),都给的是什么“使用正则表达式排序”,无奈只能自己写,记在这里,以后需要来取。场景:允许前端传入排序字段。在浏览器控制台快速测试。

2023-04-12 16:22:48 190

原创 git clone 自动加斜杆,找不到远程仓库

git clone 自动加斜杆 其实在git安装目录下 /mingw64/etc/gitconfig 文件中。但这样账号密码就会明文保存在本地仓库配置文件中,使用此命令查看克隆下来的仓库的路径。删掉helper这一行就行,但这样每次远程仓库交互都需要输入用户名密码,或者。百度了很久,网上答案很一致,说是此命令惹的祸。仓库路径末尾平白无故多出一个’/’则将保存下一次输入的用户名密码。可采用以下方式克隆项目。

2023-02-23 14:20:59 742

原创 mybatis嵌套resultMap

mybatis嵌套resultMapSQL语句:select c1, c2, c3, c4...cn from some_tableMybatis mapper.xml<select id="query" resultMap="SomethingMap"> select c1, c2, c3, c4...cn from some_table where someconditions</select><resultMap type="com.package

2022-03-16 19:18:34 1324

原创 报org.xml.sax.SAXParseException错误;元素类型为 “mapper“ 的内容必须匹配(cache-ref|cache|resultMap*|parameterMap*|sql

完整错误表示:org.xml.sax.SAXParseException; lineNumber: xxx; columnNumber: xx; 元素类型为 “mapper” 的内容必须匹配(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete)出现这个错误,看着以为很高大上是不是?其实就是你的mapper.xml结构有问题。怎么会结构有问题?请看:就这个一个不经意的点(“`”),害我白白浪费两小时!网上一大片互抄说什

2022-03-16 16:01:55 2796 4

原创 B+树小结

当磁盘读写成为了性能瓶颈,势必要优化存储结构以提升磁盘读取效率。在平衡树(AVL)的基础上衍生,但B+树加大了每个节点的分支数量,大大减少了树的高度,使得读取key(索引)链路更短,减少磁盘读取次数,从而减少I/O时间。设B+树为M叉树,则- 数据存储在叶节点,非叶节点至多存储M-1个key;- 根节点的子节点数量2~M;- 除根外的非叶节点的子节点数量在M/2~M,由磁盘区块大小及存储的key的大小决定;- 所有叶节点深度相同,数据项为L/2~L,由磁盘区块大小及存储的数据项大小决定。

2022-01-26 18:04:31 277

原创 控制台打印AVL树-java

在控制台打印一棵AVL树,元素为2位数字,左叶节点后空2格,右叶节点后空4格,【打印原理】假设我们的AVL树是完美的理想AVL树,所有叶节点**深度**相同(对于深度不足的,在缺失的位置使用“空格+N”占位),于是从完美AVL树,可以准确计算得出各个元素前后需要空出的位置。以下使用 org.junit 做单元测试打印,以及相关方法:

2022-01-20 16:49:05 688

原创 java 泛型简记

java 泛型简记:用尖括号(<>)指定,可以指定多个泛型<T, R>,可以指定继承的基类;泛型方法、泛型类

2022-01-17 15:54:52 198

原创 有用的git bash命令—改变你的认知

git 小团队/无代码审核三连:git add 、git commit 、git push;git 常用命令、git 暂存/贮藏;git bash中使用 gerrit 规则提交并推送代码

2021-12-27 17:50:18 361

原创 日期计算没有那么难——java简易实现日期跨度计算

日期计算没有那么难——java简易实现日期跨度计算小序定理 & 依据简单实现year-1+=、-=、+=i < month检查 & 测试小序在java中,我们计算日期跨度通常可以使用各种工具包,比如java.util.Calendarjava.time.LocalDate有时候会看看它的实现,发现还蛮复杂的, @Override public long toEpochDay() { long y = year; long m = m

2021-12-23 17:49:01 997

原创 蓝桥杯-完美平方数-java解法

蓝桥杯-完美平方数-java解法 1. 正向解法2. 逆向解法请你计算第 2020 个完美平方数是多少?

2021-12-22 16:57:41 1406 5

原创 习BitMap有感

1. 什么是BitMap?BitMap,可以想当然的从名字出发:点映射。它是以一个二进制点位表示数据的一种数据结构。那么具体是什么意思呢?比如,在java中要存储0-20亿这个范围内的整数,一般做法是存int,但是这样一来它需要的空间是:8bit*4*2*10^9≈7.45G !而BitMap会怎么做呢?如下图所示,二进制位是1表示存在,为0表示不存在。 7 6 5 4 3 2 1 0 (整数)int[0] ...

2021-05-13 17:40:33 70

原创 RabbitMQ 笔记

1.如果你是在虚拟机上建立集群,那么网络分区(network partition)你一定不会陌生。最暴力的解决方式:重启被分区的节点apprabbitmqctl stop_apprabbitmqctl start_app完整解决方案请参考此文:RabbitMQ网络分区解决方案2.即使创建了持久化队列,也并不一定能完全保证消息不丢失。官网原文:Note on message persistenceMarking messages as persistent doesn't..

2021-05-13 15:27:36 61

原创 内存双通道与Java中的Channel

双通道内存:指在北桥(又称之为MCH)芯片级里设计两个内存控制器,这两个内存控制器可相互独立工作,每个控制器控制一个内存通道。在这两个内存通CPU可分别寻址、读取数据,从而使内存的带宽增加一倍,数据存取速度也相应增加一倍(理论上)。*北桥:与南桥对应,负责高速信息处理,如CPU,存储器(内存),PCI,高速端口等。*南桥:处理低速信号,主要指外设如键盘、音频、usb、网络等。*总线:hot bus,指系统共用通信干线。*PCI总线:局部总线,比如负责北桥与显卡通信的PCI总线。Ch.

2021-04-30 00:37:28 250 1

原创 RabbitMQ 集群搭建注意事项

集群搭建参考文档RabbitMQ集群搭建 了解原理参考文档RabbitMQ集群原理 (非常简洁优秀的总结)1.保证各个节点erlang版本一致。RabbitMQ基于 erlang 语言,必须保证各个节点erlang版本完全一致。2.可以跨操作系统建立集群。因RabbitMQ基于 erlang运行,因此只要erlang版本一致即可,与操作系统无关。3.如果节点加入集群失败,请根据给出的错误原因对症解决。一般有以下几点:a.连接磁盘节点失败。...

2020-08-11 10:38:35 823

原创 最新版 ELK W10 单机搭建 几个提示

首先感谢newbe的国内镜像你要的国内镜像都有√(亲测版本elk 7.8.0 ,若部署过程中出现本文未提到的问题,百度上都有,请根据报错提示仔细检查!)第一:可以不额外下载filebeat。logstash直接读取日志(input),输出到自己的elasticsearch(output),详情请看第二。第二:可以不安装为系统服务。e、l、k都可以单独命令行启动(e、l、k即为启动顺序),其中logstash需要指定自定义的配置文件(请自行百度,示例:logstash.c...

2020-08-05 11:00:28 108

原创 docker 与 vm 的那些事儿

在学习docker的时候,发现在w10系统上安装和使用 docker不太顺畅,我的是正版W10,但是安装的时候告诉我要专业版或家庭版,瞅了下我的,哦,“家庭中文版”,安装不了,就下了docker-toolbox,创建linux虚拟机搭建docker环境,在这里记录一下在这个过程中遇到的问题和解决思路,说不定以后还能用的上呢。一、下载docker-toolbox这个我在docker官网上没找到,就搜索国内镜像,从阿里镜像下载:点此直达->二、摸索虚拟机1.创建虚拟机,需要...

2020-08-05 10:48:02 202

原创 记一次 idea 重命名(rename)事故

在一个 spring-boot + mybatis + thymeleaf 的项目中,为了全局更改成员变量name 的名称,我使用了 快捷键来rename它:public class Test {private String name;}然后下边的搜到了很多用例,我按照以前的习惯,直接do refactor,然后我就发现这次它用了很长时间,内心感到 一丝丝不妙。于是我随便打开一个目录看了下,完了,好多不归我负责的文件被修改了,主要是三类文件:1. 被注释的代码。凡...

2020-08-05 10:31:38 1185

原创 Java File、Paths、Path的意外错误:file.exists() 结果错误

最近做项目自己写文件上传和下载,用到了File、Paths、Path,其中出现了如下意外情况:实例化Path:Path path = Paths.get("E://souces/tmp/abc");将此path作为入参:test(path);test方法内调用: if(path.toFile().exists()){ System.out.print("file is exists"); // TODO 接收流并写入文件}输出:fi...

2020-08-05 10:27:11 1889 1

原创 springboot @Test 测试

springboot @Test 单元测试

2020-08-04 17:31:43 200

原创 Mysql 5.7.28 linux 安装记录

1. 从官网获取下载链接, MySQL Community Server 5.7.28 (默认最新版8.x,注意右边的小字Looking for previous GA versions? 不是链接,点一下,然后可以选择之前的版本),选择合适的 linux 版本,选择tar.gz 格式,然后 No thanks 不登陆,右键复制下载地址 (参考地址 linux-generic-64bit https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7....

2020-08-04 17:23:12 119

原创 redis 集群搭建笔记(linux环境)

目的:搭建主从复制模式的redis集群。步骤:一、准备至少 6 个 redis 运行实例; 二、使用 redis 自有工具创建集群; 三、springboot 项目配置 redis 连接。一、准备 redis 运行实例。即安装并运行 redis 实例。如果有多台机器,建议同时进行下面的步骤,并保持一致的安装和运行目录。1. 官网下载最新 tar.gz 包。参考链接:http://download.redis.io/release...

2020-08-04 17:16:52 96

原创 putty 创建自动登录快捷方式

1. 保存登录地址。双击打开putty.exe,在session页面填写 Host Name 和 Port,并在 Saved Sessions 填写具有标识性的名称,如 host100,点击 Save 保存。2. putty.exe 右键 创建快捷方式,重命名为具有标识性的名称,如 putty.exe - host100。3. 在创建的快捷方式上,右键属性,在 目标 一栏追加以下内容,注意与原内容空格隔开。-load "host100" -ssh -l 用户名 -pw 登入密码...

2020-08-04 17:12:04 953

原创 子网掩码 简单表述

直接目的:划分子网,减少IP地址独占所带来的浪费。比如某个B类网络,只有300台主机,若不划分子网,其将独占 2^16 -2 = 65534个IP地址。子网计算:IP和子网掩码的二进制数据进行逻辑“与”运算,即得到子网号。以C类网络(ABCDE五类网络定义请自行百度)为例,如 222.222.222.30,其默认子网掩码为 255.255.255.0,现在欲将其平均划分为4个子网,则其子网掩码应为:2^7 + 2^6 = 192,因其二进制数据为:IP地址 (省略前24位) 0001 ...

2020-08-04 17:04:22 353

原创 Java 类加载机制 简结

一、类加载过程: 加载(loading) -> 链接(linking) -> 初始化(initialization)其中链接又分为三个小部分:验证(verification) -> 准备(preparation) -> 解析(resolution)Ⅰ 加载(loading)将class文件读入内存,并为之创建一个java.lang.Class对象。这一步由类加载器完成,一般由JVM提供,也可以继承ClassLoader实现自己的类加载器。需要注意的是,并不是所有的类都是.

2020-08-04 17:02:09 116

原创 Java 接口 抽象类 简记

接口声明:interface (默认具有abstract)变量:-不包含成员变量 (除非static final 声明) -因为没有实例方法,因此也没有局部变量方法:-只有方法声明,没有方法体 (默认public 和abstract) -没有构造方法特殊:接口可以多继承!抽象类声明: abstract (特殊的类)变量:-遵守普通类的规则方法:-与普通类相同,但可以有 抽象方法特殊:不能...

2020-08-04 16:43:46 52

原创 Struts 2 简记

struts 2由Apache 软件基金会(ASF)赞助的一个开源项目,基于Java Servlet、JSP以及Custom Tag Library 等技术,实现了mvc设计模式的应用框架。参考链接struts2 教程struts2 结构示意图*********************简单项目实例 ********************项目结构struts项目结构web.xml 简单配置<display-name>Hell...

2020-08-04 16:30:41 99

原创 hibernate 示例项目简记

概述一种对象关系映射(Object Relational Mapping)框架,专注于Java对象与关系型数据库之间的映射,助力开发者实现数据持久化。参考链接hibernate框架教程特点反射实现相关对象/概念org.hibernate.SessionFactory 生成org.hibernate.Session的工厂,数据源代理,多数据源须配备多个工厂org.hibernate.Session应用程序和持久化存储介质之间的一个单线程、短周期的轻量级会话对象持久化对...

2020-08-04 11:54:22 110

原创 Java 函数式编程 浅结

参考链接Java 函数式编程基本概念函数式接口:只含有一个抽象方法的接口。@FunctionalInterface 接口声明:表示这是一个函数式接口,修改接口时编译器将会检查是否符合函数式接口规则。方法引用: 形如构造器方法引用 Customer::new 或者普通方法 customer::pay (前面Customer是Java类,后者customer是实例),这种写法被称为方法引用。方法引用遵循一般方法调用规则(构造器方法引用固定为::new),如 静态方法可以直...

2020-08-03 16:58:31 72

原创 mybatis 简记

概念mybatis 一种“半自动化”的ORM(Object Relational Mapping,对象关系映射)实现。需要手动配置映射文件以实现数据库中的数据和java对象间的映射。参考文章mybatis 框架mybatis 结构mybatis 运行示意************************* 简单项目 ***************************项目结构maven配置 - pom.xml&l...

2020-08-03 16:39:39 142

原创 TCP/IP 网络协议 简记

参考文档TCP/IP网络协议TCP/IP 协议**************************** 常见协议****************************IP(Internet Protocol,网际协议)【网络层】IP 负责计算机之间的通信。IP 负责在因特网上发送和接收数据包。ICMP(Internet Control Message Protocol,因特网消息控制协议)【网络层】ICMP 负责网络中的错误处理。IGMP(Internet Gr...

2020-08-03 16:16:11 262

原创 TCP 连接(三次握手)与断开(双向断开)

参考文档TCP连接的建立与释放TCP创建连接:三次握手TCP创建连接:三次握手所谓的三次握手,其实是客户端与服务器间的三次数据交互。其中,前两次握手的报头控制位SYN=1(表示双方都同意建立连接),后两次握手ACK=1(除第一次握手,随后所有的请求ACK均为1,包括之后的数据请求)。TCP断开连接:双向断开TCP断开连接:双向断开u - 客户端发送的最后1字节的编号v - 服务器发送的最后1字节的编号w - 半开半闭状态服务器发送的最后1字节的编号...

2020-08-03 16:10:05 281

原创 一图看懂 spring bean 的生命周期

生命周期无非三个阶段:生成、存续、销毁注:容器关闭:容器指的是 ApplicationContext 容器。aware容器参数:aware 了解、明白之意,在该阶段,可以设置或获取比如beanName(即bean id)、BeanFactory、ApplicationContext.init-method:如果使用 xml 配置文件来配置bean,可以自定义bean的 init-method.destroy-method:同 init-method 释义。...

2020-08-03 16:02:41 98

原创 面向切面的另一种理解:面向过程

面向切面总是听起来很抽象,而且像把数据验证也算作切面上的一层,总觉得有些牵强,但是如果根据程序线性执行的原则,可以把各层抽离开来,重新排布成下面这种面向过程的图案:面向过程如图所示,我们可以在不同的方法执行过程中,找到具有相同需求、执行相同任务的步骤,因此可以抽出这些相同的部分,全局配置,进行一次开发,到处运行,而不是手动编码或者重复引用,从而解除耦合,减少代码维护成本。在实际编程中,总会遇到各种不同需求,代码本身的或者业务的。在项目达到一定规模,有必要针对各类重复开发或引用方法的地方,.

2020-08-03 15:55:50 123

原创 java 线程池简记

参数配置:-corePoolSize:核心线程数。默认创建后一直存在,可以设置为超时销毁。-queueCapacity:任务队列容量。核心线程已满时,任务将被加入队列。-maxPoolSize:最大线程数。当线程数超过核心线程数且队列已满,将开启新线程。若达到最大线程数,将抛错并拒绝处理任务。-keepAliveTime:即允许的线程空置时间。-allowCoreThreadTimeout:允许核心线程超时。即允许核心线程在等待一段时间后销毁。线程池图解四大经典...

2020-08-03 15:49:41 91

原创 Java Servlet 简记

定义:介于客户端请求与后台数据处理之间的中间层。生命周期:用户第一次请求时执行一次init() 创建servlet对象,之后请求不再创建,不同用户产生新的线程,最后容器销毁之前执行一次 destory()。过滤器:实现 javax.servlet.Filter。过滤器执行顺序:按照 web.xml中 filter-mapping 排列顺序。异常捕获:error-page 中定义 错误码或错误类型 与 对应的请求路径(location)。cookie: 实例化cookie对象,设置内容与过期时

2020-08-03 15:36:34 81

EasyTime.java 轻松把握日期处理

1. java日期时间工具类,基于 java.util.Calendar。 2. 提供常用静态方法如快速获取年/月/日初始及终末时间,快速加减年/月/日/时/分/秒,日期解析、格式化输出、严格验证日期格式等。 3. 连续操作时推荐实例化。实例化后可实现日期加减、获取年/月/日初始及终末时间并格式化输出的连续操作。

2022-01-24

错题速记v1.1.zip

错题速记 - 一个用于统计错误题目的本地网页程序,原生js&html。直接打开src下的index.html 开始使用。

2020-08-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除