自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qingfan_714的博客

啥都没有

  • 博客(23)
  • 收藏
  • 关注

原创 一文详解工作中的git操作

因为会根据commit-id来回退,所以养成在pull之前先把本地的最新改动提交到本地仓库后再pull代码,这样即使你pull错了代码也能回退,并且你本地的修改也不会丢失。因为这个文件已经被小B修改并先一步提交了(小B干坏事,往你的仓库push了代码)适用于在本地pull错了代码,或者我不想要这次pull到的最新代码,想要撤销回退到pull之前的那一次提交代码。强制提交本地代码,覆盖远程代码,这会导致远程仓库小B的修改丢失,这需要慎重操作,一定要协商好。本地修改已经提交了,但未push。

2023-06-11 19:29:33 727

原创 如何优雅的实现分页(Django实现)

在写列表时,肯定少不了分页,那么如何优雅的实现分页呢。我这里实践的是Djiango,使用的是Paginator组件,各类语言大同小异,都有对应的分页组件,

2023-06-02 15:32:00 173

原创 Django引入css文件多拼接了一个路径

在总体上,可以说 STATIC_URL = ‘/static/’ 更适合大多数情况,因为它提供了最大的灵活性。它允许开发人员随时更改静态文件的存储路径(例如使用 CDN 或分布式存储),而不影响 URL 的完整性。今天在使用 Font Awesome 图标库时,先下载了 Font Awesome 图标库的css文件,将其导入到了项目中,并在html文件中引入了这个css文件。后来通过F12查看加载的资源,发现加载的资源路径前面多拼接了一个。= ‘/static/’ 引用指向以 / 结尾的 URL,而。

2023-05-30 15:48:48 225

原创 OSI七层模型及对应的协议

OSI下3层的任务是数据通信,上3层的任务是数据处理。而传输层是OSI模型的第4层。该层提供建立、维护和拆除传输连接的功能,起到承上启下的作用。数据链路层是OSI模型的第二层,负责建立和管理节点间的链路。物理层是参考模型的最低层,也是OSI模型的第一层。网络层是OSI模型的第三层,是通信子网的最高一层。

2022-09-04 10:38:17 9294

原创 前后端分离JWT登录认证

详细的jwt登录认证,以及常用的前后端分离工具类

2022-08-30 14:29:18 849

原创 解决nacos与gateway导入maven依赖报错问题

解决高版本springboot的nacos、gateway依赖问题

2022-08-16 15:40:54 1888

原创 Docker安装redis、mongo、nginx、rabbitmq

mac中docker安装redis、mongo、nginx、mq、nacos

2022-08-07 00:39:51 691

原创 图解一致性哈希算法原理+代码实现

1 传统哈希分布式系统中,假设有 n 个节点,传统方案使用 mod(key, n) 映射数据和节点。当扩容或缩容时(哪怕只是增减1个节点),映射关系变为 mod(key, n+1) / mod(key, n-1),绝大多数数据的映射关系都会失效2 哈希指标评估一个哈希算法的优劣,有如下指标,而一致性哈希全部满足:均衡性(Balance):将关键字的哈希地址均匀地分布在地址空间中,使地址空间得到充分利用,这是设计哈希的一个基本特性。单调性(Monotonicity): 单调性是指当地址空间增大时

2022-03-18 15:35:01 449

原创 超详细HTTP状态码,看就对了

1xx:信息性状态码,表示服务器已接收了客户端请求,客户端可继续发送请求。100 Continue101 Switching Protocols2xx:成功状态码,表示服务器已成功接收到请求并进行处理。200 OK 表示客户端请求成功204 No Content 成功,但不返回任何实体的主体部分206 Partial Content 成功执行了一个范围(Range)请求3xx:重定向状态码,表示服务器要求客户端重定向。301 Moved Permanently 永..

2022-03-18 12:10:54 99

原创 Tomcat的结构+处理url请求原理

1Tomcat如何处理请求Tomcat内部结构图Server:Tomcat最顶层的容器,一个Server可以包含多个ServiceService:一个Service包含多个Connector和一个ContainerConnector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化Container用于封装和管理Servlet,以及具体处理Request请求Container包含了四个子容器Engine:引擎,用来管理多个站点,一个Servi

2022-03-18 11:36:06 495 1

原创 TCP三握、四挥中的几道面试题

1 三次握手三次握手发生在客户端和服务器要建立TCP连接时,主要作用就是让客户端和服务器都知道自己和对方的发送、接收能力均正常,建立可靠连接刚开始客户端处于Closed状态,服务器处于Listen状态第一次握手:客户端向服务端发送一个SYN报文,初始化序列号ISN)。SYN=1的报文段不能携带数据,但要消耗掉一个序号。之后客户端处于SYN_SENT状态。此时头部报文中SYN=1,seq=x第二次握手:服务端接收到客户端的SYN报文之后,也会向客户端发送一个SYN报文作为应答,并指定客户端的ISN+

2022-02-26 22:34:31 434

原创 从输入url到显示页面的全过程(面试)

从输入url到显示页面的全过程客户端网址中输入url将输入的url发送到DNS获得该域名对应的WEB服务器的ip地址客户端游览器与WEB服务器建立TCP连接客户端游览器向WEB服务器发送HTTP或HTTPS请求WEB服务器响应请求,返回指定的URL数据或错误信息客户端拿到WEB服务器的数据后解析源文件,进行页面排版,显示基础页面分析页面中的超链接,渲染页面1、输入url地址当输入了url地址后,按下确定的一瞬间游览器会先查找本地缓存,看是否有该域名对应的页面数据,有就直接加载,就没

2022-02-26 22:28:43 755

原创 JavaWeb两种Servlet映射方式+全局参数和局部参数读取+properties文件读取+乱码问题

方式1 配置web.xml目的:编写一个ParamServlet类,读取web.xml配置文件中的全局参数和局部参数,在游览器中显示1、ParamServlet类public class ParamServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOExceptio

2022-02-26 22:22:40 762

原创 一文详解synchronized

5.3 synchronized1 底层原理synchronized底层原理 = java对象头markword + 操作系统对象monitor对象头的Mark word:Monitor结构://部分属性ObjectMonitor() { _count = 0; //锁计数器 进入数 _owner = NULL; _WaitSet = NULL; //处于wait状态的线程,会被加入到_WaitSet _EntryList

2022-01-28 20:43:30 1098

原创 详解BIO、NIO、AIO

1》 IO BlockOS主动预见这个Block会发生才会主动Block,例如TCP连接数据时,发现Socket Buffer中没有数据,则代表发送方还未发送数据,则此时可以Block像从硬盘读取数据时,OS不知道什么时候会数据卡顿,所以就不会发生IO Block2》BIO(同步阻塞)Blocking IO,类似于网络中进行read, write, connect一类的系统调用时会被卡住单线程的网络服务,这样做就会有卡死的问题。因为当等待时,整个线程会被挂起,无法执行,也无法做其他的工作Blo

2022-01-28 11:29:55 248

原创 Java使用JDBC链接MySQL

1、首先创建一个配置文件 db.properties 文件用于存储数据库链接的驱动、账号和密码使用键值对保存你要链接的数据库名、账号和密码mysqlDriver=com.mysql.cj.jdbc.DrivermysqlURL=jdbc:mysql://localhost:3306/dbName //要链接的数据库名mysqlUser=userName //数据库账号mysqlPwd=userPWD //数据库密码2、在工具类中使用静态代码读取配置文件 static P

2021-04-29 09:49:51 160 1

原创 超详细的maven项目打包成jar包并生成exe安装文件运行

将maven项目打包成jar包,并生成可安装的程序,在其他人电脑上运行。1、点击File->Project Structure 打开项目架构或者使用快捷键ctrl+shift+alt+s2、点击Artifacts,再点击 “” 号,选择 JAR 中的“From modules with dependences”3、点击选择Main Class,选中你要打包的类(有main方法),点击OK非常重要的一步4、系统默认的路径如下图,,这里更改导出路径,这一步非常重要,必须将框中的 \sr

2021-04-28 15:48:31 6081 5

原创 谈谈一个网站是如何进行访问的

1、在游览器输入一个域名后回车2、首先会检查本机 C:\Windows\System32\drivers\etc 的hosts配置文件中有没有这个域名映射3、如果有,则直接返回对应的ip地址,在这个地址中有我们需要的web程序,就可以直接进行访问。如本机域名127.0.0.1 或者localhost4、如果没有,则去DNS(Domain Name System)服务器去找,全球的域名都在里面,找到就返回,找不到就返回找不到。https://dnsdaquan.com/...

2021-04-05 10:59:22 775

原创 缓存与缓冲的区别

缓存与缓存的区别1.1、缓冲 Buffer很多时候上层应用的数据传输效率远远大于下次应用,所以要传输数据就要需要上层应用等待下层应用接收数据,会浪费很多时间缓冲的作用就是协调上下层应用之间的性能差异,可以有效减少上层组件对下层组件的等待时间,可提升整个系统的性能当需要把一盆水倒入一个细口瓶时,缓冲区就像中间的一个漏斗,可以将水(数据)完完整整且以较高效率的倒入瓶中1.2、测试//使用缓冲区BufferedWriter 将0-1000000的数字输出到指定文件private s

2021-04-05 10:54:24 2887 3

原创 Linux下使用gcc时conio头文件问题

1、当在linux下使用gcc编译一个.c文件时,出现下图错误我使用gcc编译一个bank.c文件,报错显示conio头文件找不到。2、这是因为conio是一个非标准库,适用于老的DOS系统,在Windows下也可以使用,而在linux中需要其他的库来代替,这个库就是curses.h3、在Linux中安装cursescentos安装sudo yum install ncurses-devel ncurses ubuntu安装sudo apt-get install libncurses5-

2021-04-05 10:48:10 4788 1

原创 二分查找数组中指定数的个数 二分进阶

使用二分查找统计数组中与目标数相同的数的个数该算法思想是基于二分查找数基础上进行改进,目的是统计数组中有多少个数与目标数相等。注:当直接使用for循环去遍历数组,每次遍历都比对一次,时间复杂度将会是O(n)如果使用一次二分查找,首先找到一个与目标数相等数的下标后,使用while以这个下标为中心,向左或向右去比较。如果相同的数只有2个的话,那么向左向右搜寻一次就可以得出结果,但如果一个数组中的所有数都相同,那么还是需要比对n次,按这个思想查找的时间复杂度也是O(n)。这里我采用的思想是 先使用一次

2021-03-22 19:30:17 506 1

原创 二分查找一个数 java实现

使用二分查找算法查找一个有序数组中指定数的索引import java.util.Scanner;public class BinarySearch { static int i = 1; //这里自定义的i是为了方便下面输出每一步查找的下标、上标、中间数 ,无关紧要 可以不要 public static void main(String[] args) { int[] arr = {1,1,1,1, 5, 8, 8, 9, 25, 66, 90, 100,100};

2021-03-22 19:25:44 274

原创 快速排序 Java实现

使用快速排序,将一个无序数组按从小到大的顺序排序快速排序是一种高效的排序算法,其定义了一个基准数(通常选取数组的第一个数或者最后一个数),一般是从后向前搜索,如果当前数小于基准数,则将这个数移动到数组前面,保证在基准数的左边。然后再由前向后搜索,如果当前数大于基准数,则将这个数移动到数组后面,保证在基准数的右边。每进行一次排序,就会以基准数为标准将数组划分为2个部分,左边的比基准数小,右边的都比基准数大。然后在进行递归调用左子表和右子表,直到一个数组被划分到最小,即有序时 排序结束。时间复杂度最坏复

2021-03-22 19:16:57 211

空空如也

空空如也

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

TA关注的人

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