自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 写毕业论文经验贴

写毕业论文技巧

2023-03-28 22:44:35 1831 1

原创 为什么word修改下一节页眉奇偶不同会影响到下一节页眉的奇偶相同

为什么word修改上一节页眉会影响到下一节页眉

2023-03-26 14:28:34 564 1

原创 【meshlab使用指南】06、Select Faces/Vertices inside polyline area功能不能选中点/面

平时都是用①③这两个工具修剪我的obj模型,今天处理一批有点问题的obj模型(有些点是孤点没有组成面)时发现用平时选中再删除的方法不能删除孤立点如图所示:选中删除之后仍有孤立点。

2023-03-18 18:17:10 768

原创 MATLAB GUI pcshow()错误:对象为空时,不允许进行属性赋值。请使用下标赋值创建数组元素。

MATLAB GUI pcshow()错误:对象为空时,不允许进行属性赋值。请使用下标赋值创建数组元素。的两种解决办法

2023-02-28 14:49:54 652

原创 Word在引用3个及以上参考文献的时候如何合并

引用3个及以上参考文献的时候如何合并

2023-02-21 12:29:44 8170 1

原创 bing的搜索框按回车是换行而不是搜索

直接在地址框搜。

2023-02-12 20:38:48 390 1

原创 电脑连不上5GWiFi解决办法:更新驱动

电脑搜不到5G WiFi解决办法

2023-02-11 11:32:36 16068

原创 【自己动手实现一个简单的RPC框架】8、[v4.3]增加SPI机制

本文代码地址:https://github.com/MSC419/msc-rpc-framework文章目录0.实现的改进1.SPI机制1.1 Java SPI1.1.1 示例1.1.2 SPI作用1.1.3 源码分析1.2 Dubbo SPI1.2.1 示例1.2.2 源码分析1.3 RPC SPI总结学到的知识0.实现的改进1.增加SPI机制,方便我们为程序提供扩展功能1.SPI机制参考:搞懂dubbo的SPI扩展机制 - 知乎 (zhihu.com)从零开始实现简单 RPC 框架 .

2022-05-30 20:42:20 393 1

原创 【自己动手实现一个简单的RPC框架】7、[v4.0-4.2]增加Netty心跳机制与自动扫描注册服务

本文代码地址:https://github.com/MSC419/msc-rpc-framework文章目录0.实现的改进1.RPC消息通用格式RpcMessage2.Netty心跳机制2.1 心跳2.2 IdleStateHandler2.3 实现Netty心跳机制2.3.1 客户端2.3.3 服务端3.通过注解自动扫描注册服务3.1 注解类3.2 工具类 ReflectUtil3.3 扫描服务3.4 服务端开启自动注册3.5 测试4.总结4.1 学到的知识3.5 测试4.总结4.1 学到的知识.

2022-05-23 22:01:16 301

原创 【自己动手实现一个简单的RPC框架】6、[v3.1]负载均衡与多种序列化方式的实现

本文代码地址:https://gitee.com/uamaa/msc-rpc-framework文章目录0.实现的改进1.支持服务端暴露多个服务接口2.自定义协议通信2.1 通信协议设计1. 魔数2. 协议版本号3. 序列化算法4. 报文类型5. 长度域字段6. 请求数据7. 状态8. 保留字段2.2 Netty实现自定义通信协议编码器解码器3.使用Netty的半包解码器解决粘包问题3.1 TCP粘包/拆包3.2 Netty解决粘包/拆包问题4.客户端实现负载均衡策略5.多种序列化方式实现序列化6.总.

2022-05-16 21:22:43 233

原创 【自己动手实现一个简单的RPC框架】5、[v3.0]利用zookeeper实现注册中心

本文学习的代码地址:https://github.com/Snailclimb/guide-rpc-framework本文代码地址:https://gitee.com/uamaa/msc-rpc-framework文章目录0.实现的改进1 Zookeeper1.1 什么是Zookeeper?1.2 Zookeeper 能做什么1.3 使用Zookeeper2 用Zookeeper实现注册中心2.1 注册中心的业务逻辑2.2 集成ZooKeeper 实现自己的服务注册与发现2.2.1 服务的注册2.2.

2022-05-15 23:58:07 584 1

原创 【深入浅出Spring Boot】1、搞懂Spring Boot下的IoC

参考书籍:《深入浅出Spring Boot 2.x》杨开振文章目录1.IoC2.IoC容器3.Spring Boot创建IoC容器3.1 @SpringBootApplicationSpringApplication.run()4.装配Bean到IoC容器5.依赖注入4.1 @Primary4.2 @Qualifier1.IoCIoC:Inversion of Control控制反转。传统的Java项目是程序员手动用new来实例化对象,而Spring是用IoC容器来管理对象(Spring中把需要管.

2022-04-18 21:12:37 3127

原创 【自己动手实现一个简单的RPC框架】4、[v2.0]利用Netty传输数据;利用Kryo实现序列化

【前言】本文主要实现了如下改进:1.利用Netty传输数据2.利用Kyro实现序列化

2022-04-05 14:41:10 3141

原创 【自己动手实现一个简单的RPC框架】3、[v1.2]改进:用map和set实现注册服务

【前言】本文主要实现了如下改进:1.将注册中心的注册服务与开启Socket套接字连接分开了;用map和set实现注册服务2.将调用方法独立成类

2022-04-03 20:45:14 1220

原创 【自己动手实现一个简单的RPC框架】2、[v1.1]改进:加入异常情况的考虑

【前言】本文主要实现了如下改进:1.考虑了各种异常条件,细化了公共类2.处理客户端请求写得更详细了些,讲清楚了“请求类只传入了接口类名称,服务端怎么拿到相应的实现服务并调用”

2022-04-03 11:52:58 1835

原创 【自己动手实现一个简单的RPC框架】1、[v1.0]实现一个最简单的RPC框架

这篇文章打算先看看原作者guide的第一版代码,实现一个最简单的RPC框架

2022-03-29 23:30:53 1224

原创 【git】在GitHub上下载历史版本

GitHub上的项目很多都是从简单到复杂,一点点迭代的。当我们需要看懂别人的代码时,按照别人commit的历史版本一步一步跟踪,或许是个好办法。这时候我们就要用到下载历史版本功能了1.git clone2.点击commit3.找到自己想下载的版本,复制SHA4.cd到刚下载的代码目录5.git chckout SHA当前目录的代码就变成了该版本!如果想直接下载该版本的代码的话:就得到了当前版本代码的压缩包...

2022-03-29 10:32:35 9450

原创 【meshlab使用指南】05、将歪了的模型摆正

有时候模型可能相对于坐标轴是歪的,需要旋转或者平移一下保存:File – export mesh as

2022-03-26 19:27:08 3123 2

原创 【剑指 Offer】 07. 重建二叉树 | 数组的索引作为递归参数

文章目录题目思路代码题目思路方法非常简单,先序遍历的根在先序数组的第一个元素;而中序遍历的根在中序遍历数组的中间,左边是根的左子树的中序遍历,右边是根的右子树的中序遍历。举例如:先序遍历数组为3、9、20、15、7;中序遍历数组为9、3、15、20、7根节点在先序数组的第一个元素即3而3又可以将中序遍历划分为左右两部分,一部分是9,为3的左子树的中序遍历;另一部分为15、20、7,为3的右子树的中序遍历我们很容易构造一个递归,返回值为根节点,根据先序遍历得到根节点,按照先序遍历将中序遍历分

2022-03-23 09:58:12 349

原创 【剑指 Offer】 64. 求1+2+…+n

文章目录题目思路代码题目思路一开始想的是位运算 1+2+…+n=(1+n)n/2位运算实现加法:a+b = a^b + (a&b)<<1位运算实现减法:a-b=a+(-b)=a+(~b+1)位运算实现乘法:a2=a<<1位运算实现除法:a/2=a>>11+n好说,/2好说,n呢?假设n=9,an=a*1001=a<<3+a这样只要一个循环就能用位运算实现题目了但是不能用循环看了题解知道了逻辑运算符的短路效应if(a &amp

2022-03-22 18:49:53 623

原创 【剑指 Offer】 68 - II. 二叉树的最近公共祖先

文章目录题目思路代码题目思路对于某个节点node而言当p、q分别位于node左右子树或者node是p、q中的一个时,node是其最近公共子节点;当p、q都在node左子树里,则递归判断node.left;当p、q都在node右子树里,则递归判断node.right;p、q在node左/右子树,这件事要怎么来判断呢?递归遍历树的左右子树,如果碰到了p、q,则向上返回p、q,否则就向上返回null。如果一个节点的左右子树分别返回p、q,则这个节点就是要求的最近公共祖先,向上返回该节点,

2022-03-22 14:57:52 339

原创 【剑指 Offer】 40. 最小的k个数

文章目录题目思路代码题目思路找出最小的k个,可以k次冒泡排序,或者快速排序,当基准的索引为k时返回代码class Solution { public int[] getLeastNumbers(int[] arr, int k) { if(k>=arr.length) return arr; return quickSort(arr,k,0,arr.length-1); } int[] quickSort(int[] arr,int

2022-03-21 21:54:52 357

原创 【剑指 Offer】 61. 扑克牌中的顺子

文章目录题目思路代码题目思路注意是若干副扑克牌,所以所有牌都可能重复。除大小王之外,如果有牌重复,就不是顺子。并且除大小王之外的最大点-最小点<5,才有可能是顺子,如果>=5,就不是顺子。在不重复的前提下,根据大小王有几个来分类:5个:是顺子4个:是顺子3个:除大小王之外的最大点-最小点<5则是顺子,否则不是2个:除大小王之外的最大点-最小点<5则是顺子,否则不是1个:除大小王之外的最大点-最小点<5则是顺子,否则不是0个:最大点-最小点<5则是顺

2022-03-21 21:20:58 449

原创 【剑指 Offer】 36. 二叉搜索树与双向链表

文章目录题目思路代码题目思路二叉搜索树的中序遍历为递增序列,我们可以中序遍历二叉树,遍历当前节点时,执行:pre.right=node;pre=node;node.left=pre;需要考虑边界条件:遍历第一个点时并无pre,此时pre为空,所以需要加入pre是否为空判断;遍历完成后,第一个点的左指针指向最后一个点,最后一个点的右指针指向第一个点。代码class Solution { Node pre,head; public Node treeToDoublyLi

2022-03-21 20:12:23 518

原创 【剑指 Offer】 34. 二叉树中和为某一值的路径 | 搜索与回溯

文章目录题目思路代码题目思路此题同样可用搜索与回溯算法。因为是二叉树,所以用二叉树的遍历此题适用于二叉树的中序遍历,即遍历顺序为左右根。#中序遍历1.访问根节点2.递归访问其左子树3.递归访问其右子树先明确递归的返回类型:题目要求返回路径,所以需要一个全局变量来存储路径,如果符合条件,就将节点加入路径,否则不加入。则递归的返回类型可以设为void,符合条件,将节点加入路径;不符合条件,直接return。边界条件:节点为空,return;节点值大于target,return;

2022-03-21 19:57:29 1175

原创 【剑指 Offer】 13. 机器人的运动范围 | 搜索与回溯

文章目录题目思路分析题目思路分析先解决位数之和的问题mn范围是0-100,坐标[m-1,n-1]范围是0-99在0-99之内,都满足如下条件:当发生进位时,位数之和-8;当不发生进位时,位数之和+1。如:19->20,位数之和从10到2,29->30,位数之和从11到3;33->34,位数之和从6到7。可以表示为:设当前元素为x,其位数和为sx,则x+1的位数和为sum_of_digits = (x+1)%10 == 0 ? sx-8 : sx+1本题机器人规定了起始位

2022-03-21 16:59:05 72

原创 【剑指 Offer】 12. 矩阵中的路径 | 搜索与回溯

文章目录题目思路构造递归代码题目思路本题可以用搜索与回溯算法,本质上是递归,当遍历到当前元素时,递归遍历当前元素的上、左、下、右方元素构造递归1.边界条件行列超出索引,返回false;当前元素与字符串单词不符,返回false;当前元素已经匹配到字符串单词最后一位,返回true;2.递归处理当当前元素与字符串单词相符,但是并没有匹配到最后一位时将当前元素置为’ ',避免重复访问递归访问当前元素的上、左、下、右方元素将当前元素恢复返回第2步的调用结果(四个调用只要有一个tr

2022-03-21 16:25:29 255

原创 【RPC】自己动手实现RPC框架

文章目录RPC (Remote Procedure Call)

2022-03-15 00:20:29 707

原创 【剑指 Offer】 48. 最长不含重复字符的子字符串

题目思路此题可以用动态规划定义状态:dp[i]为以s中第i位字符结尾的不包含重复字符的子字符串状态转移方程:如果s中第i位字符没有与前面的子字符串里的字符重复,则dp[i]=dp[i-1]+1;如字符串ab,dp[1]=1,b没有与前面重复,则dp[2]=dp[1]+1=2。如果s中第i位字符重复了,则dp[i]=i-重复处索引如字符串aba,dp[1]=1,dp[2]=2,第三位的a与前面重复了,重复处为第1位,则dp[3]=3-1=2。初始值:当s为空时,最长的不包含重复字

2022-03-05 17:12:10 193

原创 【剑指 Offer】 46. 把数字翻译成字符串

题目思路此题可用动态规划求解定义状态:dp[i]表示第i位数结尾时,有几种翻译方式返回值:返回dp[nums.length]状态转移方程如果第i位数不可以与前面第i-1位数连着翻译,则第i位数只有一种翻译方式,如58中的8只能翻译成i,那么dp[i]=dp[i-1]如果第i位数可以与前面第i-1位数连着翻译,则第i位数有两种翻译方式,如12中的2,可以翻译成c,此时dp[i]=dp[i-1];也可以12连起来翻译成m,此时dp[i]=dp[i-2]。所以dp[i]=dp[i-1]+dp[

2022-03-05 15:58:44 451

原创 【剑指 Offer】 47. 礼物的最大价值

题目思路右下角grid[m][n]最多能拿到多少礼物只与grid[m-1][n]与grid[m][n-1]最多能拿到多少礼物以及他们本身的值有关,这题可以用动态规划求解。定义状态:dp[i][j]代表走到第i行第j列能拿到的最大的礼物状态转移方程当i=0时,即在第0行,只能由dp[0][j-1]向右走向dp[0][j],所以dp[0][j]=dp[0][j-1]+grid[0][j]当j=0时,即在第0列,只能由dp[i-1][0]向下走向dp[i][0],所以dp[i][0]=dp[i-

2022-03-05 14:51:30 345

原创 【剑指 Offer】 42. 连续子数组的最大和

题目思路此题用动态规划定义状态:用dp[i]表示以元素nums[i]结尾的连续子数组的和(注意是和,不是题目中的最大和)状态转移方程:如果dp[i-1]<0,说明前面的贡献是负的,即dp[i-1]+nums[i]还不如nums[i]大,此时dp[i]=nums[i]如果dp[i-1]>=0,dp[i]=dp[i-1]+nums[i]可以简化为:dp[i]=Math.max(nums[i],dp[i-1]+nums[i])边界值:dp[0]=nums[0],表示以第一个元素结尾

2022-03-05 11:30:55 479

原创 【剑指 Offer】 28. 对称的二叉树

题目思路一棵树是镜像对称的,当且仅当它的左右子树是镜像对称的,如图:而两棵树A,B镜像对称,当且仅当满足以下条件:两棵树的根节点数值相等A左子树与B右子树镜像对称,A右子树与B左子树镜像对称构造递归当A,B节点都为空时,A、B树是镜像对称的。返回true当A,B节点只有一个为空时,A、B树不是镜像对称的。返回false当A,B节点都不为空时,如果A、B数值不等,A、B树不是镜像对称的。返回false当A,B节点都不为空时,如果A、B数值相等,则递归判断是否满足条件“A左子

2022-03-03 16:39:13 253

原创 【剑指Offer】27. 二叉树的镜像

题目思路要想输出这颗树的镜像,只需要递归交换左右子树即可。递归的构造终止条件:当前节点为空时,即到达终止条件递归:交换当前节点的左右子树当前节点的左右子树也递归执行该函数。代码class Solution { public TreeNode mirrorTree(TreeNode root) { if(root==null)return root; exchange(root); return root; }

2022-03-03 16:05:26 201

原创 【剑指 Offer】26. 树的子结构

解题思路如果B树是A树的子树,则A树中必有一个节点的数值与B树的根节点数值相同。因此,判断B树是否是A树的子树分为两步:遍历A树,找出与B树根节点数值相同的节点node判断B树是否为以node为根节点的子树。空树不是任意一个树的子结构,如果B树为空,返回false;如果A树为空,则B不管是否为空也不可能是A的子树,返回false。遍历A树,找出与B树根节点数值相同的节点node随便用什么遍历方式都行注意,A树中可能有多个与B树根节点数值相同的节点node,所以找到满足条件的node之后就判

2022-02-28 17:30:41 145

原创 【Python脚本入门】01、基础知识

文章目录

2022-01-20 21:20:10 5105

原创 【杂谈】抢九价的经验

12月底有个师姐抢到九价,这是第一个身边近距离打到九价的,于是元旦收假后的1.4开始认真抢九价,1.11抢到,1.14接种第一针,分享一下我抢九价的经验。1 九价群去小红书搜当地九价群,多加几个,要加到那种很活跃,分享消息很及时的群对我帮助最大的就是九价群,是小姐妹在小红书找到之后拉我进去的(免费),这个群的信息虽然不是第一手的,但是也很有用。九价群里分享的有用信息大概有以下几类:1.1 检测到约苗里订阅量较少的医院图:群主分享的在约苗里订阅量较少(新开)的医院这里有个技巧是:下载好约苗ap

2022-01-14 19:13:45 10598 2

原创 Redis入门与Spring整合Redis

文章目录1 Redis入门2 Spring整合Redis1 Redis入门2 Spring整合Redis

2021-12-27 11:32:15 714

原创 搜索及代码在GitHub上查重小技巧

记录一下做助教查重时学会的搜索及代码在GitHub上查重小技巧1 搜索1.1 指定网页内搜索site:网页 搜索内容示例:这样搜出来全是GitHub网页结果https://zhuanlan.zhihu.com/p/41997799其实只用到了上面那一个技巧~还有其他技巧这篇文章总结得很好了2 代码在GitHub上查重找得到源码的都是用变量名找到的,因为搜索引擎会将一句代码分开成几个关键字分别匹配,如果搜索的是代码的关键字如“public”、“static”、“cout”,就会把搜索结果

2021-12-26 19:51:56 4377

原创 【Java基础学习】03、String和StringBuilder的区别

参考:https://www.cnblogs.com/mrxy/p/8057657.htmlhttps://www.liaoxuefeng.com/wiki/1252599548343744/1260471862687712String对象是不可改变的,只能赋值一次,每次改变其内容都是重新申请一块内存,这样效率很低下图来自:https://www.cnblogs.com/mrxy/p/8057657.html而StringBuilder是一个可变对象,可以预分配缓冲区,这样,往StringBuil

2021-12-15 20:26:57 454

空空如也

空空如也

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

TA关注的人

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