自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python 类

使用class关键字定义类,类名通常采用大驼峰命名法。示例class Dog:"""一个简单的狗类""""""初始化属性""""""模拟小狗被命令时蹲下"""print(f"class Dog : """一个简单的狗类""" def __init__(self , name , age) : """初始化属性""" self . name = nameself . age = age def sit(self) : """模拟小狗被命令时蹲下""" print(f" {

2024-10-20 15:29:35 801 1

原创 python 模块 输入与输出

模块是一个包含Python定义和语句的文件。模块可以定义函数、类和变量,还可以包含可执行的代码。通过模块,可以组织和重用代码,促进代码的模块化和维护性。Python提供了丰富的标准库模块,涵盖了文件操作、系统调用、网络编程、数据处理等多个领域。常用标准模块包括sysosmathdatetimejsonre等。包是一种组织模块的方式,使用文件夹和文件实现。包可以包含子包和模块,形成层级结构。Python提供了许多内建模块,随解释器一起分发,无需额外安装即可使用。常用内建模块包括sys。

2024-10-20 14:03:46 959

原创 Python数据结构基本操作总结

有序集合:列表中的元素按照插入顺序排列,每个元素都有一个对应的索引。可变性:列表是可变的,可以在创建后修改其内容,包括添加、删除或更改元素。多样性:列表可以包含不同类型的元素,如整数、字符串、甚至其他列表(嵌套列表)。有序集合:元组中的元素按照插入顺序排列,每个元素都有一个对应的索引。不可变性:元组一旦创建,其内容不能修改,包括添加、删除或更改元素。多样性:元组可以包含不同类型的元素,支持嵌套。无序集合:集合中的元素没有特定的顺序。唯一性:集合中的元素是唯一的,重复的元素会被自动去除。

2024-10-19 15:24:15 1000

原创 计算机网络 TCP&UDP、IP、ARP&RARP、NAT总结

MSL:Maximum Segment Lifetime 报文最大生存时间2MSL 的时间是从客户端接收到 FIN 后发送 ACK 开始计时的。如果在 TIME-WAIT 时间内,因为客户端的 ACK 没有传输到服务端,客户端又接收到了服务端重发的 FIN 报文,那么 2MSL 时间将重新计时。等待MSL两倍:发送方数据包被接收处理后又向对方发送响应,一来一回需要两倍确保四次挥手主动关闭方最后的ACK能到达对端。

2024-08-26 17:20:38 1145 1

原创 计算机网络 DNS HTTP HTTPS,缓存

输入URL之后的全过程URL URIDNS (Domain Name System)为什么分布式域名的层级关系解析过程递归查询和迭代查询HTTP特性版本演变0.91.01.1问题优化2兼容改变推送实现与HTTP1对比并发实现缺陷3特点QUIC协议缓存强制缓存协商缓存基于`Last-Modified`和`If-Modified-Since`的协商缓存基于`ETag`的协商缓存HTTPS(Hyper Text Transfer Protocol Sec

2024-08-14 18:36:01 1095

原创 Redis基础总结、持久化、主从复制、哨兵模式、内存淘汰策略、缓存

Redis 基础Redis 是什么,有哪些特点为什么要使用 Redis 而不仅仅依赖 MySQLRedis 是单线程吗Redis 单线程为什么还这么快Redis 数据类型和数据结构五种基本数据结构及应用场景其他数据类型Redis 底层数据结构Redis 持久化数据不丢失的实现AOF 日志RDB 快照混合持久化AOF 和 RDB 的选择AOF 重写的执行过程RDB 快照的执行过程混合持久化的执行过程Redis 功能和高可用性主从复制全量复制增量复制全量复制使用 RD

2024-08-02 19:10:21 1125

原创 操作系统之Linux相关 内存管理、虚拟内存、设计特点、网络编程模型

虚拟内存空间:32位处理器的虚拟内存空间为4GB。进程视角:每个进程认为自己拥有4GB的连续虚拟地址空间,实际上只有部分映射到物理内存。物理内存与外部存储:物理内存中可能会存在碎片,部分内容会存储在外部磁盘上,需要进行数据的交换(页置换)。

2024-08-01 15:00:21 1275

原创 操作系统中的文件系统概念和实现&磁盘结构和调度算法

文件是字节序列的抽象,为操作系统提供了最大的灵活性。

2024-07-30 14:58:17 842

原创 操作系统中存储系统简介 虚拟内存、内存管理、分页、保护

虚拟内存的思想,整体来看就是:通过结合磁盘和内存各自的优势,利用中间层对资源进行更合理地调度,充分提 高资源的利用率。并提供和谐以及统一的抽象。

2024-07-29 19:01:41 1009

原创 mysql 排序、查询执行流程、幻读

MySQL的 ORDER BY 执行流程示例表和查询语句执行流程全字段排序Rowid 排序全字段排序 VS rowid排序联合索引优化覆盖索引优化小结思考题问题执行过程中是否需要排序?如何在数据库端实现不排序?实现分页需求使用`ORDER BY RAND()`内存临时表与磁盘临时表随机选择算法的优化实际应用和进一步优化小结思考题回答示例优化:误区案例一:条件字段函数操作案例二:隐式类型转换案例三:隐式字符编码转换总结优化策略行动建议为什么单行查询在My

2024-05-21 21:52:19 1044

原创 MySQL前缀索引、脏页和干净页、COUNT(*)讨论、表删除内存问题

如何加索引如何给身份证号添加索引SQL语句变慢脏页 (Dirty Pages)干净页 (Clean Pages)为何区分脏页和干净页处理脏页管理策略flush如何控制为什么删除表数据后表文件大小不变问题背景核心原因数据存储方式参数影响解决方案1. 调整`innodb_file_per_table`设置2. 使用表重建来回收空间3. 定期优化表注意事项online和inplaceInplace DDLOnline DDLCOUNT(*) 讨论`COUNT(*)`

2024-05-12 21:32:32 883 1

原创 MySQL全局锁、表级锁、行锁、死锁、索引选择

本文为MySQL45讲 6-10的总结根据加锁的范围可以分为全局锁、表级锁、行锁。

2024-05-09 22:38:32 1268

原创 MYSQL基础架构、执行过程分析、事务的实现、索引的选择、覆盖索引

本文是mysql45讲的1-5的总结。

2024-05-06 23:01:23 1276

原创 Golang内存、指针逃逸、垃圾回收机制概览

最近看到了一篇文章是关于go的内存、指针逃逸和垃圾回收机制的,发现自己并未很细致的了解过这方面的内容,于是在翻阅各种文章的情况下,写出了这篇总结,参考文章放在文末,可自取。

2024-04-19 19:08:37 1547 1

原创 Golang中的上下文-context包的简介及使用

Go语言中的`context`包定义了一个名为`Context`的类型,它定义并传递截止日期、取消信号和其他请求范围的值,形成一个链式模型。

2024-04-05 18:10:45 1455 1

原创 Golang并发模型-Pipeline模型、Fan-in Fan-out模型

这段时间由于项目的需要,本人正在研究关于如何优雅的进行go的并发,以下是结合资料和视频的结果,文末会给出参考资料Go语言的并发模型主要通过goroutine和channel实现,通过这个我们可以更有效地使用IO和CPU这里我们围绕生成一个随机数并且返回他的平方数的场景来讲解。

2024-04-02 23:42:34 1092 1

原创 MongoDB简单CRUD操作(含GO中的库操作)

入口MongoDB是一种文档数据库,它以其可扩展性和灵活性而闻名,能够满足各种查询和索引的需求。它将数据存储在类似JSON的灵活文档中,这意味着字段可能因文档而异,并且数据结构可以随时间变化。MongoDB的文档模型易于开发者学习和使用,同时具备处理任何规模复杂要求的能力。它是分布式的,因此高可用性、横向扩展和地理分布都是内置且易于使用的特性面向集合存储,易于存储对象类型的数据。模式自由,不需要预定义模式。支持动态查询,可以在任意属性上建立索引。支持复制和故障恢复,确保数据的安全性和可靠性。

2024-03-15 23:26:12 1078 1

原创 WebSocket协议、与HTTP对比

WebSocket和HTTP协议一样,都是基于TCP协议实现的应用层协议。HTTP协议通常是单边通信,主要用于传输静态文档、请求-响应通信,适用于Web浏览器加载网页、API调用等。然而WebSocket则是会主动给你发消息,实现实时双向通信,我们经常玩的游戏、使用的聊天软件什么采用的都是这个协议。这里进行详细比较总的来说,WebSocket和HTTP都是网络通信中的重要协议,但它们在连接性、通信方式和应用场景等方面存在明显的区别。

2024-01-19 18:16:35 1047 1

原创 JWT认证的解析和实际使用

SON Web Token(JWT)是一种开放标准(RFC 7519),定义了一种紧凑且自包含的方式,用于以JSON对象的形式在各方之间安全地传输信息。该信息可以通过数字签名进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。

2023-12-20 14:41:01 363

原创 项目架构-六边形架构的概述和实现

最近在想着写一个个人项目,但是在项目的结构上却犯了难,此时翻到了一个视频,采用Hexagonal architecture(六边形架构),也被称为Ports and Adapters,大致就是下面图片的结构:一共分为三层:Domain: 里面放的是处理的基本逻辑,可以理解为大纲,它决定着Application和Framework的选择和实现Application::它协调使用我们的Domain代码, 通过位于两者之间的方式,调整从framework到domain的请求。

2023-12-07 21:56:17 1355

原创 【算法】对二分搜索的理解

二分搜索大家都很熟悉,首先我们先来看看基本框架。

2023-11-29 22:23:29 344

原创 go当中的channel 无缓冲channel和缓冲channel的适用场景、结合select的使用

Go channel就像Go并发模型中的“胶水”,它将诸多并发执行单元连接起来,或者正是因为有channel的存在,Go并发模型才能迸发出强大的表达能力。

2023-11-26 20:33:53 990 1

原创 golang中的并发模型

传统的编程语言(如C++、Java、Python等)并非为并发而生的,因此它们面对并发的逻辑多是基于操作系统的线程。其并发的执行单元(线程)之间的通信利用的也是操作系统提供的线程或进程间通信的原语,比如共享内存、信号、管道、消息队列、套接字等。在这些通信原语中,使用最多、最广泛同时也最高效的是结合了线程同步原语(比如锁以及更为低级的原子操作)的共享内存方式,因此,可以说传统语言的并发模型是基于共享内存的模型。

2023-11-19 22:03:04 869 1

原创 goroutine调度模型 调度策略

Go在语言层面直接提供对协程的支持称为goroutine。

2023-11-12 17:52:47 347

原创 golang实现极简todolist

最近跟着qimi老师做了一个ToDoList,我做的贴在这里,但由于前端出了点问题,所以都是用postman进行测试。

2023-11-05 22:40:49 687

原创 【golang】Reflect反射整理、值修改、反射结构体、应用

反射整理,值修改,反射结构体,实际应用

2023-11-02 20:35:34 818

原创 golang中的Interface接口 类型断言、接口赋值、空接口的使用、接口嵌套

Interface整理接口嵌套接口类型断言类型判断 type-switch使用方法集与接口空接口实例接口赋值给接口

2023-10-30 18:09:27 737

原创 【golang】Windows环境下Gin框架安装和配置

Windows环境下Gin框架安装和配置

2023-10-26 23:48:54 1075

原创 【golang】Go中的切片slice和操作笔记,垃圾回收机制,重组 reslice ,复制和追加,内存结构

切片将切片传递给函数make() 创建一个切片new() 和 make()的区别多维切片bytes包for-range切片重组 reslice切片的复制和追加字符串、数组和切片的应用获取字符串的某一部分字符串和切片的内存结构修改字符串中的某个字符字节数组对比函数搜索及排序切片和数组append() 函数常见操作切片和垃圾回收

2023-10-24 13:13:03 808

原创 [Golang]多返回值函数、defer关键字、内置函数、变参函数、类成员函数、匿名函数

函数多返回值函数按值传递、按引用传递类成员函数改变外部变量变参函数defer和追踪说明一些常见操作实现使用`defer`实现代码追踪记录函数的参数和返回值常见的内置函数将函数作为参数闭包实例闭包将函数作为返回值计算函数执行时间使用内存缓存来提升性能

2023-10-22 21:16:00 689

原创 Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用

Git项目简单克隆通用操作添加和提交回滚分支变基分支优选远程项目推送认证抓取、拉取和冲突解决IEDA类软件连接

2023-10-14 21:42:08 933

原创 【Redis学习笔记二】三种特殊数据类型、事务的基本操作、锁、持久化、发布订阅、主从复制、哨兵模式

三种特殊数据类型geospatial 地理位置Hyperloglog 基数统计Bitmaps事务基本操作悲观锁乐观锁持久化RDB(Redis Database)AOF(Append Only File)拓展Redis发布订阅命令原理缺点应用redis主从复制概念作用为什么使用集群环境配置一主二从配置使用规则复制原理哨兵模式概述测试哨兵模式优缺点哨兵模式的全部配置

2023-10-07 20:10:06 336

原创 【Redis】五大数据类型 、历史概述、nosql分类

NoSql概述NoSql年代缓存 Memcached + MySQL+垂直拆分(读写分离)分库分表+水平拆分+Mysql集群最近为什么要用NoSqlNoSql的四大分类Redis测试性能五大数据类型keyStringSetHashZset

2023-10-02 22:49:51 640 1

原创 Docker 容器技术 (上) 环境安装和部署、容器镜像、使用IDEA构建Springboot程序镜像、远程仓库、容器网络管理

Docker容器技术容器技术入门环境安装和部署从虚拟机到容器容器工作机制简述容器与镜像初识容器镜像镜像结构介绍构建镜像发布镜像到远程仓库实战:使用IDEA构建SpringBoot程序镜像容器网络管理容器网络类型用户自定义网络容器间网络容器外部网络

2023-09-28 21:54:40 1117 1

原创 【JVM】Ubuntu安装编译gcc 和jdk8时遇到的坑及解决方案

记录一下困扰了很多天、到处查资料最后终于成功安装的过程。

2023-09-16 21:18:35 560

原创 【Java】SpringData JPA快速上手,关联查询,JPQL语句书写

JPA框架认识SpringData JPA使用JPA快速上手方法名称拼接自定义SQL关联查询JPQL自定义SQL语句

2023-09-15 20:38:30 2370

原创 MybatisPlus框架教程:入门、条件构造器、接口操作、代码生成器

前面我们体验了JPA带来的快速开发体验,但是我们发现,面对一些复杂查询时,JPA似乎有点力不从心,反观稍微麻烦一点的Mybatis却能够手动编写SQL,使用起来更加灵活,那么有没有一种既能灵活掌控逻辑又能快速完成开发的持久层框架呢?(简称 MP)是一个的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MybatisPlus的愿景是成为 MyBatis 最好的搭档,就像中的 1P、2P,基友搭配,效率翻倍。

2023-09-06 17:11:03 343

原创 springboot邮件发送和接收验证码

springboot邮件篇

2023-09-04 20:24:47 476

原创 【 SpringSecurity】第三方认证&方法级别安全

文章目录SpringSecurity 第三方认证实现方法级别的安全

2023-08-03 12:37:21 1982

原创 SpringSecurity(6.1.x版本) 认证,授权,自定义登录,内部机制探讨

SpringSecurityCSRF跨站请求伪造攻击SFA会话固定攻击XSS跨站脚本攻击开发环境搭建认证直接认证使用数据库认证自定义验证其他配置自定义登录界面记住我功能授权基于角色授权基于权限授权使用注解权限判断内部机制探究授权校验流程安全上下文安全上下文持久化过滤器

2023-07-18 20:30:01 2578

空空如也

空空如也

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

TA关注的人

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