自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 数据结构与算法之 十大排序算法

十大排序算法(附代码实现)主要参考自:OI Wiki

2022-02-07 21:33:27 481

原创 Redis 分布式锁笔记

Redis 分布式锁笔记

2021-12-02 10:45:39 3721 2

原创 Spring笔记(1) - 工厂

Spring笔记(1) - 工厂文章目录Spring笔记(1) - 工厂前言正文1. 概述1.1 EJB(Enterprise Java Bean)1.2 Spring是什么1.3 设计模式2. Spring入门2.1 知识铺垫2.2 环境支持2.3 Maven中各类文件的介绍2.4 重要概念2.5 第一个Spring2.6 细节分析2.7 API介绍-ApplicationContext2.8 思考3. 设计模式之工厂模式3.1 简介3.2 通用工厂的使用方式4. Spring5.x与日志框架的整合5.

2020-10-27 13:24:46 2232 17

原创 Dubbo 笔记(六) 集群容错和负载均衡

Dubbo 的集群容错和负载均衡

2022-02-22 18:50:13 1077 1

原创 Dubbo 笔记(二) Dubbo 的 SPI 机制

Dubbo 的 SPI 机制参考自:github: ExtensionLoader.java敖丙:《Dubbo系列》-Dubbo SPI机制SPI 是什么​ SPI (Service Provider Interface),是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。​ 简单来说就是用来解耦,实现插件的自由插拔。使用场景JDBC驱动加载案例:利用Java的SPI机制,我们可以根据

2022-02-21 21:32:53 645

原创 Dubbo 笔记(一) 初始 RPC 框架与 Dubbo

RPC 的基本了解、Dubbo 的基本架构、远程调用方法的大致过程

2022-02-21 21:29:21 513 1

原创 Netty 笔记之粘包拆包问题

在 TCP 的通信过程中,发送数据流的时候,有可能出现一份完整的数据,被 TCP 拆分为多个数据包进行发送,当然也有可能将多个数据包合并为一个数据包进行发送。从而产生了粘包以及拆包的问题。

2022-02-14 17:57:51 1195

原创 MySQL 笔记之 Buffer Pool

MySQL 笔记之 Buffer Pool这篇文章主要参考自《MySQL 是怎样运行的》的第十六章 InnoDB 的 Buffer Pool。图片来自 稀土掘金:MySQL系列(5)— InnoDB 缓冲池Buffer Pool目录MySQL 笔记之 Buffer PoolBuffer Pool 的简介Buffer Pool 的内部组成free 链表的管理缓冲页的快速定位flush 链表的管理LRU 链表的管理简单的 LRU 实现原理划分区域的 LRU 链表LRU 链表的进一步优化Buffer P

2022-02-14 00:06:27 761

原创 数据结构与算法之 二叉树的遍历

二叉树的遍历二叉树的相关概念二叉树:指父节点最多有两个孩子节点的树。满二叉树:一个二叉树的所有非叶子节点都存在左右孩子节点,并且所有叶子节点都在同一层级上。完全二叉树:对树中的结点按从上至下、从左到右的顺序进行编号,如果节点编号与对应的满二叉树中相同编号的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。二叉查找树:又被称为二叉搜索树或者二叉排序树,它经过中序遍历得到的节点序列是有序的。二叉树的四种遍历简介​ 其中一种是层序遍历,属于广度优先遍历;其中三种分别是前序遍历、中序遍历、后序

2022-01-04 13:29:37 408

原创 Spring 注解之 @Import

@Import 注解文章目录@Import 注解源码简介如何使用1)Spring 4.2 之前,支持带有 @Configuration 的配置类;之后也支持普通类2)ImportSelector 接口的实现类3、ImportBeanDefinitionRegistrar 的接口实现类源码@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Import { /**

2021-12-22 15:02:21 529

原创 源码分析:Java 集合类之 ArrayList

ArrayList 源码+扩容机制ArrayList 的底层数据结构是数组,它的容量可以动态增加。在添加大量元素前可以通过 ensureCapacity() 来指定增加的容量,可以减少递增式再分配的数量。ArrayList 实现的 RandomAccess 接口是一个标志接口,表明这个 List 集合是支持快速随机访问的。比如在 Collections.binarySearch() 中,调用的是 Collections.indexedBinarySearch() 方法,而不是 Collections

2021-12-02 10:42:01 105

原创 JVM 之对象的内存布局(2.3.2)

《深入理解 Java 虚拟机》笔记2.3.2 对象的内存布局在 HotSpot 虚拟机中,对象在堆内存中的存储布局可以划分为三个区域:对象头(Header)实例数据(Instance Data)对齐填充(Padding)(1)对象头其中,对象头部分包括两类信息:存储了对象自身运行时数据的信息:如哈希码、GC 分代年龄、锁状态标志、线程持有的锁、偏向线程 ID、偏向时间戳等。类型指针,即对象指向它的类型元数据的指针,Java 虚拟机通过这个指针来确定该对象是哪个类的实例。(长度确定的

2021-11-08 16:38:24 404

原创 SpringBoot 启动时执行:CommandLineRunner、ApplicationRunner 和 ApplicationListener

SpringBoot 启动时执行:CommandLineRunner、ApplicationRunner 和 ApplicationListener零、前置知识:SpringBoot run() 源码解析SpringApplication.run 方法源码 /** * Run the Spring application, creating and refreshing a new * {@link ApplicationContext}. * @param args the applic

2021-10-31 17:05:18 3218 2

原创 Java面试:Spring中循环依赖的解决方案

Spring 如何解决循环依赖问题?入门:Spring解决循环依赖的思路竟然来自于一道算法题详细:(CodeSheep)Spring:我是如何解决循环依赖问题的?源码:( JavaKeeper)烂了大街的 Spring 循环依赖问题,你以为自己就真会了吗源码:面试官:Spring 为何需要三级缓存解决循环依赖,而不是二级缓存?回答:【每日一题】Spring如何解决循环依赖问题?参考自:(CodeSheep)Spring:我是如何解决循环依赖问题的?循环依赖一个或多个对象实例之间存在直接或间接

2021-09-08 20:36:35 1475

原创 Java面试:反射机制

面试官:直接 new 对象不行吗,为何用反射?​ new 是静态编译,只能用于编译期就能确定的类型, 而反射可以在运行时才确定类型并创建其对象。Java的反射机制就是动态编译,增加程序的灵活性,解耦。​ 具体来说就是静态编译是在编译的时候把你所有的模块都编译到程序中,当你启动这个程序的时候所有模块都加载进来了。当程序比较大时,加载的过程(就是当你运行程序时初始化的过程)就比较慢了。动态编译就不一样了,你编译的时候那些模块都没有编译进去,一般情况下你可以把那些模块都编译成dll,这样你启动程序(初始化)

2021-09-08 20:33:30 507

原创 设计模式之单例模式(附代码实现)

设计模式之单例模式初步理解简介​ 在三大类设计模式中(共计23种),可以分为 创建型模式、行为型模式、结构性模式,单例模式 属于创建型模式中的一种。​ 单例模式确保某个类在系统中只有一个实例,并提供一个全局访问入口。特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。隐藏所有的构造方法。实现思路一个类能返回对象的一个引用(每次都是同一个),和一个获得该实例的方法(必须是静态方法,通常使用 getInstance 这个名称)。调用

2021-09-07 10:41:05 407

原创 (多图,手把手教学)Vscode 的安装与配置 (Win10 c++环境)

Vscode 的安装与配置 (Win10)软件下载Vscode 官方下载地址:https://code.visualstudio.com/MinGW和.vscode文件夹下载:Getting StartedVisual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It c

2021-06-30 20:19:29 619 5

原创 页面置换算法 (全)

页面置换算法 (全)文章目录页面置换算法 (全)(1)最佳页面置换算法 OPT (OPTimal replacement)(2)先进先出页面置换算法 FIFO (First In First Out)(3)第二次机会页面置换算法 SC (Second Chance)(4)时钟页面置换算法 CLOCK(5)最近最少使用页面置换算法 LRU (Least Recently Used)(6)最不经常使用页面置换算法 LFU (Least frequently used)(7)最近未使用页面置换算法 NRU (N

2021-06-24 20:39:17 5153

原创 广州大学 操作系统实验之银行家算法

实验二 银行家算法一、实验目的1、了解什么是操作系统安全状态和不安全状态;2、了解如何避免系统死锁;3、理解银行家算法是一种最有代表性的避免死锁的算法,掌握其实现原理及实现过程二、实验环境Win10 操作系统,VsCode 编程软件三、实验内容根据银行家算法的基本思想,编写和调试一个实现动态资源分配的模拟程序,并能够有效避免死锁的发生。四、实验原理 实验中用到的系统调用函数(包括实验原理中介绍的和自己采用的),实验步骤,进程申请资源时,系统通过一定的算法判断本次申请是否不可能产生

2021-05-16 16:02:48 865

原创 C++学生管理系统

(草稿)学生信息默认存储在同文件夹下的 test01.txt 文件中#include <iostream>#include <string>#include <fstream>using namespace std;constexpr auto FILENAME = "test01.txt";//学生类struct Student{ string id; //学号 string name; //姓名 float chi; //语文成绩

2021-04-26 13:58:47 967 3

原创 解决浏览器运行本地项目的跨域问题

解决浏览器运行本地项目的跨域问题报错信息test01.html:1 Access to XMLHttpRequest at ‘http://localhost:9001/test01/str’ from origin ‘null’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.报错原因 XMLHttpRequest 同源策略

2021-04-26 00:20:07 3724 3

原创 一文教你学会使用 th:block

th:block 笔记文章目录th:block 笔记说明1. 官方文档2. 使用说明3. 特别之处(1) `th:block` 特性(2) 同时控制多个相连标签是否显示(3) 循环同级标签说明时间赶的话可以直接看 2 中的粗体部分,和 3分行被csdn吞了,2 部分排版紧凑点,后续修改一下。1. 官方文档https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#synthetic-thblock-tag2. 使用说明

2021-04-23 10:03:58 3728 1

原创 一文掌握 bootstrap 4 的用法

bootstrap 4 笔记Bootstrap v4 中文文档​ 这份笔记是本人在 Bootstrap v4 中文文档 学习时记录的,记录一些本人认为重要或会常用到的内容,部分文段翻译如有误,请联系 qq: 1337647373文章目录bootstrap 4 笔记1. 快速上手1. 1 CSS文件1.2 JS文件集成包分开加载1. 3 入门示例1.4 图标库使用(1) 内嵌(2) Sprite(3) 作为外部图片文件引用(4) 图标字体 (推荐)1.5 Overview2. 布局(Containe

2021-04-20 17:46:27 1487 2

转载 mysql笔记(三):多表查询与事务

mysql笔记(三):多表查询与事务1. 多表查询2. 事务3. DCL文章目录mysql笔记(三):多表查询与事务1. 多表查询2. 事务3. DCL1. 多表查询* 查询语法: select 列名列表 from 表名列表 where....* 准备sql # 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept (NAM

2021-04-13 15:41:35 67

转载 mysql笔记(二):SQL约束

mysql笔记(二):SQL约束1. DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询2. 约束3. 多表之间的关系4. 范式5. 数据库的备份和还原1. DQL:查询语句1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... * 排序方式: * ASC:升序,默认的。 * DESC:降序。 * 注意: * 如果有多个排序条件,则当前边的条件值一样时

2021-04-13 15:25:32 175

转载 Server、Service和Servlet的区分

Server、Service和Servlet的区分源自同一个词 servus意思是奴隶。不过词根的词性是动词serve服务,也许是servus去掉了表名词-us,于是serve就是奴隶干的事…Service,-ice是名词化后缀,表示动作的内容。service就是指服务的内容,但是电脑里一般指不直接和用户交互的后台软件,为前台软件提供各种服务,并不是直接对用户的。Server,-er是表示动作发出者的名次化后缀。server显然就是提供服务的人。但是这个概念在电脑里很混乱… 普通人平时说的s

2021-04-13 09:19:16 6024

原创 MYISAM 和 INNODB 的区别 (对比)

MYISAM 和 INNODB 的区别文章目录MYISAM 和 INNODB 的区别数据库引擎物理文件数据库引擎MYISAMINNODB(默认)事务支持不支持支持锁针对表加锁行级锁外键约束不支持支持全文索引支持不支持表空间的大小较小较大,约为两倍优势节约空间,速度较快安全性高,事务处理,多表多用户操作物理文件所有数据库文件都存在 data 目录下,故数据库的本质还是文件的存储InnoDB:在数据库表中只有一个 *

2021-04-05 20:58:22 79

转载 mysql笔记(一):SQL操作

mysql笔记(一):SQL操作文章目录mysql笔记(一):SQL操作数据库的基本概念1. 什么是SQL2. DDL:操作数据库、表3. DML:增删改表中数据4. DQL:查询表中的记录数据库的基本概念1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库? * 用于存储和管理数据的仓库。3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL 4. 常见的数据库软件

2021-04-05 15:50:41 72 1

原创 LeetCode 781. 森林中的兔子

LeetCode 781. 森林中的兔子文章目录LeetCode 781. 森林中的兔子题目描述示例解法一解法二思考题目描述森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。难度:中等示例示例:输入: answers = [1, 1, 2]输出: 5解释: 两只回答了 "1" 的兔子可能有相同的颜色,设为红色。 之后回答了 "2" 的兔子不会是红色,否则他们

2021-04-04 21:30:48 83

原创 手写HashMap

手写HashMap(put、get)文章目录手写HashMap(put、get)说明代码1. m_Map.java2. m_HashMap.java测试1. 测试代码 mapText.java2. 运行结果两道相关的LeetCode题目[705. 设计哈希集合](https://leetcode-cn.com/problems/design-hashset/)答案[706. 设计哈希映射](https://leetcode-cn.com/problems/design-hashmap/)答案说明功

2021-03-31 23:12:52 304 2

原创 SpringBoot插件之Develop Tools: DevTools, Lombok, Spring Configuration Proccessor

SpringBoot 插件之 Develop ToolsSpring Boot DevToolsLombokSpring Configuration Proccessor1. Spring Boot DevTools1.1 功能简介使 Spring Boot 应用支持热部署,提高开发者的开发效率,无需手动重启 Spring Boot 应用。1.2 原理 深层原理是使用了两个 ClassLoader,一个 Classloader 加载那些不会改变的类(第三方Jar包), 另一个

2021-03-04 18:58:17 498 1

原创 SpringBoot配置读取application.yml

SpringBoot配置读取application.yml说明使用IDEA中的 Spring Initializr 来创建Springboot 项目,在resourse目录下默认会有application.properties 的配置文件。操作如果想要使用yml(yaml) 格式的配置文件,应该按一下步骤操作在resourse目录下,删除原有的propertise 文件,新建yml 文件(重要) 在IDEA右侧Maven -> Lifecycle 中先执行 clean,

2020-12-15 15:21:48 498 1

原创 Java: Swing + 网络编程 实现多人聊天室功能

文章目录服务端代码客户端代码运行效果分析服务端代码import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.DataInputStream;import java

2020-12-13 08:22:25 2645 4

原创 LeetCode题解 83. 删除排序链表中的重复元素

LeetCode题解 83. 删除排序链表中的重复元素文章目录LeetCode题解 83. 删除排序链表中的重复元素题目描述题解迭代写法解题思路细节分析代码递归写法解题思路代码题目描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例一:输入: 1->1->2输出: 1->2示例二:输入: 1->1->2->3->3输出: 1->2->3题解迭代写法解题思路1. 用cur表示当前节点,利用wile循环遍历

2020-12-09 21:28:56 349 1

原创 c++代码实现哈夫曼树的创建、编码以及求WPL (顺序结构)

c++代码实现哈夫曼树的创建、编码以及求WPL (顺序结构)文章目录文章目录c++代码实现哈夫曼树的创建、编码以及求WPL (顺序结构)exercise problemcoderunning resultsummaryexercise problem​ 构造哈夫曼树生产哈夫曼编码,并求出带权路径长度(WPL)。code#include <iostream>#include <cstring>#include <string>using namespac

2020-12-03 19:12:36 2414 1

原创 简单算术表达式二叉树的构建和求值 (数据结构)

简单算术表达式二叉树的构建和求值 (数据结构)文章目录简单算术表达式二叉树的构建和求值 (数据结构)题目要求思考过程二叉树的特点思路分析代码实现运算结果总结题目要求先用二叉树来表示一个简单算术表达式,树的每一个结点包括一个运算符或运算数。在简单算术表达式中只包含 加 减 乘 除 和一位正整数且格式正确(不包括括号),并且要按照先乘除后加减的原则构造二叉树,下图所示为 “1+2*3-4/5” 代数表达式对应的二叉树,然后由对应的二叉树计算该表达式的值。先用二叉树来表示一个简单算术表达式,树的每一个结

2020-12-03 19:12:29 17922 4

原创 递归算法入门

初识递归算法作者: Wyt文章目录初识递归算法@[toc]1. 什么是递归2. 为什么要用到递归3. 递归的本质4. 怎么用递归书写代码5. 什么时候应该用递归1. 什么是递归概念: 在数学与计算机科学中,递归(Recursion)是指在函数的定义中使用函数自身的方法。 "递" "归" 我们可以把” 递归 “比喻成 “查字典 “,当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词。 可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是

2020-12-02 20:23:55 219 1

原创 记忆化递归入门

圆环套圆环 (知识点:记忆化递归)题目题目描述: 一个有趣的圆环套圆环函数被定义如下: G(n)=n-G(G(n-1)) (n是正整数) G(0)=0 请你计算出圆环函数的值。输入: 一个非负整数n,n<=200。 输出: 一个正整数,即G(n)。第一次提交 (时间超限83)#include<bits/stdc++.h>using namespace std;int a(int k){ if(k==0) return 0; return k-a

2020-11-30 14:17:31 1639 2

原创 Spring笔记(7) - 纯注解编程(完结)

Spring笔记六 - 纯注解编程(完结)作者: Wyt文章目录Spring笔记六 - 纯注解编程(完结)1. 纯注解版AOP编程1.1 搭建环境1.2 开发步骤1.3 注解AOP细节分析2. 纯注解版 Spring + MyBatis整合2.1 基础配置 (配置Bean)2.2 编码2.2.1 MapperLocations编码时通配的写法2.2.2 配置Bean数据耦合的问题3. 纯注解版事务编程4. Spring框架中YML的使用4.1 什么是YML4.2 Properties配置的问题4.

2020-11-29 13:03:41 138

原创 Spring笔记(6) - 注解编程基础

Spring笔记六 - 注解编程基础作者: Wyt系列文章目录Spring笔记(1) - 工厂Spring笔记(2) - AOP编程Spring笔记(3) - 持久层整合Spring笔记(4) - MVC框架整合Spring笔记(5) - 注解编程入门Spring笔记(6) - 注解编程基础3. Spring的高级注解 (Spring3.x 及以上)3.1 配置Bean//Spring在3.x提供的新的注解,用于替换XML配置文件@Configurationpublic cla

2020-11-26 18:35:26 161

空空如也

空空如也

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

TA关注的人

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