自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yilia学习小园

路漫漫其修远兮,吾将上下而求索。

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

原创 JS基础--子类型重写超类型方法原型链图解

首先我们创建一个父类:// 创建一个父类构造函数function Parent () { this.parentProperty = '父类属性';}// 为父类添加一个原型方法Parent.prototype.getParentProperty = function () { return this.parentProperty;}此时的原型链是这样的:接下来创建一个子类...

2019-05-06 16:13:57 841 2

原创 JS区分迭代器接口、可迭代接口、可迭代对象

2024-02-28 17:10:15 382

原创 redux源码阅读总结(二)- bindActionCreators.js详细解析

// 方法1 参数1是函数bindActionCreators(doSomething, store.dispatch);// 方法2 参数1是objectbindActionCreators({ doSomething }, store.dispatch);// 方法3 参数1是objectbindActionCreators({ key: doSomething }, store.dispatch);

2023-08-03 01:45:11 168

原创 js如何区分bind()/apply()/call()方法

call和apply方法都是用于在给定的this环境下调用函数,返回值是调用函数在对应的this环境和参数情况下的返回值。官网对返回值的描述为:The result of calling the function with the specified this value and arguments. 由此也可知两个函数的目的和返回值都是相同的,只是用法不同而已。call和apply的不同点在于apply传入的参数是数组形式,而call是参数形式。由于这个不同点,可以使用apply进行更多的数组操作,可

2023-07-25 18:37:21 192

原创 解决GET请求内容不变问题

URL相同,默认使用了http缓存机制。

2023-07-25 13:14:12 226

原创 redux源码阅读总结(一)- createStore.js详细解析与思考

1. gitState拿到的是什么?能否直接修改state?2. 为什么用到了两个listener数组?3. 为什么ensureCanMutateNextListeners函数中需要先进行nextListeners === currentListeners判断,然后才赋值nextListeners = currentListeners.slice()?4. 为什么dispatch触发reducer时不允许getState(),不允许subscribe(listener),不允许unsubscribe(

2023-07-21 18:03:33 232

原创 react页面渲染中key如何影响性能?

给组件赋key值可以提高react性能。key会将react组件和数组一一对应起来,在数组进行排序、插入、删除时,会根据key值找到并修改dom树上对应的组件,如果没有key或者key动态生成,则会将组件从dom树上移除,再重新创建组件,性能会更低。

2023-07-21 14:47:05 410

原创 解决react使用<img>时图像不显示问题,内附代码和解释

在react项目开发时,遇到了使用标签时图像不显示的问题,具体表现如下图所示。为父元素div添加宽和高,或者为img元素添加宽和高都不能解决问题。最终发现问题源自项目结构。本项目是使用create-react-app创建的,其中存在public文件目录,index.html文件入口就在该目录中,因此当把图片等静态文件放到此目录中时,可以采用上面所写的代码直接读取到对应的文件。

2023-07-18 13:12:40 1691 2

原创 三个属性让你学会书写横向滑动窗口!内附代码和详解!

此时子组件child1、child2和child3明显宽度变窄了,要是想保持子组件宽度不变,需要在子组件上添加flex-shrink: 0约束。之所以设置这个属性有用,是因为在默认情况下,flex-shrink的值为1,父元素宽度不够时,子元素会自己调整所占的宽度比。除此之外还有一个属性常被提到,即white-space,可以控制自组件内的文字不换行,如下图所示。父组件改为flex布局之后,子组件默认横向排列,代码和组件如下所示。初始代码和界面如下所示,显示为三个长宽固定的组件,默认从上到下排列。

2023-07-18 12:28:55 476

原创 git常用命令作用画图解析,一目了然的命令!

git add, git commit, git commit -a, git push, git reset, git reset --mixed, git reset --hard, git reset --soft, git revert, git fetch, git merge, git pull, git checkout -b, git branch ,git reset --hard和git revert对比,git checkout -b和git branch的对比

2023-07-13 11:19:40 203

原创 前中后序遍历二叉树详解(递归法,迭代法)

文章目录递归法后序遍历中序遍历前序遍历迭代法后续遍历中序遍历前序遍历递归法后序遍历 def postorderTraversal(self, root: TreeNode) -> List[int]: res = list() def dfs(r): if not r: return dfs(r.left) # 左 dfs(r.right) # 右

2021-10-20 15:57:23 242

原创 [leetcode]求数组的第k个最大值,python快排解法

python版快排class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: self.quicksort(nums, 0, len(nums)-1) print(nums) return nums[k-1] def quicksort(self, nums, start, end): if start >= end:

2021-10-14 15:54:42 134

原创 解决Golang程序运行时占用内存不断增加的问题

日常开发时遇到了这样的问题:死循环程序打包为exe后执行exe文件,打开任务管理器,发现程序占用内存在不断增加。解决方式:删掉defer语句删掉fmt.Print语句提高性能循环语句中添加runtime.GC()回收垃圾...

2021-06-29 16:38:50 4712 3

原创 go使用redis——redigo使用HMSET存储结构体

话不多说,先放方法,再举例子。rc.Do("HMSET", redis.Args{key}.AddFlat(val)...)rc是什么?是一个连接,创建方式如下:var ( rc redis.Conn redisClient *redis.Pool)const REDIS_HOST = "127.0.0.1:xxxx"const REDIS_DB = "2"func initRedis() { redisClient = &redis.Pool{ Max

2021-05-20 18:00:10 2587 2

原创 golang使用redis——redigo安装

点此跳转Redigo工具包Github链接1. 方法1控制台输入下面命令,加载完即可使用。go get github.com/gomodule/redigo/redis2. 方法2文件中引入redigo依赖包。import github.com/gomodule/redigo/redis控制台输入,加载包。go mod tidy可以看到go.mod文件此时刷新了,引入了redigo包。此时就可以正常使用了。...

2021-05-20 17:39:53 537

原创 Javascript字符串长度返回错误的原因

JavaScript 使用 Unicode 字符集。JavaScript 引擎内部,所有字符都用 Unicode 表示。每个字符在 JavaScript 内部都是以16位(即2个字节)的 UTF-16 格式储存。也就是说,JavaScript 的单位字符长度固定为16位长度,即2个字节。但是,UTF-16 有两种长度:对于码点在U+0000到U+FFFF之间的字符,长度为16位(即2个字节);对于码点在U+10000到U+10FFFF之间的字符,长度为32位(即4个字节)。JavaScript 对 U

2021-05-07 15:13:27 799

原创 ES6函数参数的解构赋值,以及2种设置参数默认值方法的区别

1. 函数参数的解构赋值方式下面代码中,函数add的参数表面上是一个数组,但在传入参数的那一刻,数组参数就被解构成变量x和y。对于函数内部的代码来说,它们能感受到的参数就是x和y。function add([x, y]){ return x + y;}add([1, 2]); // 3如下代码所示,函数参数写成对象的形式也可以,毕竟数组也是对象的一种。function add({x,

2021-05-07 14:58:32 385

原创 论文Attention-guided CNN for image denoising解读

文章目录1. 论文简介2. 模型结构分析1) 网络架构2) 损失函数3) Sparse block(SB)模块分析3) Feature enhancement block(FEB)模块分析3) Attention block(AB)模块分析3) Reconstruction block(RB)模块分析3. 实验1. 论文简介该论文介绍了一个注意力引导的降噪卷积神经网络(ADNet)。该网络主要包括4个模块,分别是稀疏模块(sparse block,SB),特征提升模块(feature enhancem

2021-04-28 03:50:27 1148

原创 C语言手写快排算法,两个值时也可以使用哦!

最近刷leetcode经常碰到排序问题,大家都知道排序算法中快速排序是效率很高的算法,因此快排写法是必须要掌握的哦!解题思路利用快排对数组进行排序。快排:冒泡排序的改良。快排目标:将数组从大到小排序快排步骤:将数组的第一个值设置为一个基准数pivot,i指向第二个值,j指向最后一个值。先将j往前移动,直到找到比pivot大的值,固定j。再将i往后移动,直到找到比pivot小的值,固定i。**注意移动i和j的时候最多只能使他俩相遇,不能交叉!**接下来交换i和j指向的数组的值,将比pivot大的

2021-04-19 23:02:02 193

原创 原子操作和杀死goroutine两种方法,解决多协程调用同一个函数的问题

1.使用sync和额外的变量errNum=0,errNum记录所有线程抛出的错误数量。在报错时进行sync同步处理,处理第一个goroutine的错误前,errNum加1,判断errNum的值,大于1则return结束函数,否则执行函数handleEr2.加锁。当一个线程访问到handleError()时,立马给handleError()加锁,禁止其他线程访问。但是很明显,加锁后一个线程处理完,依然要放另一个线程进来处理。除非直接杀死另一个线程。那么不如在调用handleError()之前就杀死多余进程。

2021-04-15 11:52:55 1053

原创 Golang实现Server和Client的TCP通讯

下面代码是我亲自写过测试过的,绝对有效!使用Golang分别构建Server端和Client端,并实现两者之间的TCP通讯。详细发送/接收/处理数据的代码要自己写,这里把通用的建立Server端和Client端连接的方法写一下。这里使用Golang net包来建立连接,建议先查看一下Golang标准库文档的net包,上面已经将通讯格式写的清清楚楚了。 Tips: 写Golang相关代码的时候多参考Golang标准库文档,你想要的应有尽有!

2021-04-15 10:58:45 744

原创 高光谱图像分类

文章目录1. Paper解读2. 代码1. 引入数据和基本函数库2. 定义 HybridSN 类3. 创建数据集4. 训练5. 模型测试6. 显示分类结果3. 思考1. Paper解读下面代码原理来自2019年IEEE论文:HybridSN: Exploring 3-D–2-D CNN FeatureHierarchy for Hyperspectral Image Classification该论文认为二维卷积不能提取光谱维度的特征,只能提取空间维度的特征;而三维卷积计算过于复杂;基于这两种方法

2021-01-05 20:19:14 1510

原创 anaconda安装pytorch1.7.1和torchvision0.8.2的方法,亲测可用

打开Anaconda Prompt,输入`activate 刚刚创建的环境名`可以切换到刚刚创建的环境。这里我用的是下面的命令,你需要根据自己创建的环境名修改相应的激活名称。```bashactivate torch```进入pytorch官网:https://pytorch.org/get-started/locally/选择pip方式加载,得到下图所示命令。**这里有一个需要注意的点,如果你之后要用的设备是GPU而不是CPU,那么这里CUDA那里的选项就不能选None,而是选择相应的版本。后

2020-12-15 23:36:40 25198 5

原创 C++如何读取文件中逗号分隔的数据并存入数组中?(utah茶壶数据为例)

前些日子做作业时,碰到读取utah茶壶数据文件的问题。文件中包括:茶壶上控制点的坐标总数;所有的控制点坐标位置x,y,z,三个值在同一行且由逗号分隔;控制点组成的控制面总数;每个控制面的16个控制点的位置,相当于指针位置。每行16个值,逗号分割。数据结构如下图所示,2和4的部分数据太多故没有全部显示出来,大家看到下图应该能理解文件的具体格式。接下来的目的就是读取文件中的数据,把2中每行的坐标和4中每行的数字存到相应的数组中。下面是c++写法。个人对C++不算精通,如果有更好的方法欢迎各位

2020-12-10 16:19:43 3852

原创 第四次作业:猫狗大战挑战赛

这个作业为 Kaggle 于2013年举办的猫狗大战比赛,判断一张输入图像是“猫”还是“狗”。下面是使用在 ImageNet 上预训练 的 VGG 网络进行训练和测试的过程编码。这里我们使用Google Colab来编写下面的代码。1. 导入需要的包,检查使用设备import numpy as npimport matplotlib.pyplot as pltimport osimport torchimport torch.nn as nnimport torchvisionfrom

2020-11-22 12:52:30 274 1

原创 如何用管程实现生产者消费者问题?

文章目录管程的概念和结构管程主要特征管程语法用管程实现互斥用管程实现同步条件变量管程实现生产者消费者问题管程的概念和结构信号量是操作系统提供的一种同步机制,优点是有效、灵活,缺点是容易出错、死锁。管程是高级语言提供的一种同步机制。包括Concurrent Pascal、Pascal-Plus、Moodula-2、Modula-3、Java等。管程是一个软件模块,由三部分组成:一个或多个过程...

2020-04-17 17:16:07 2189 1

原创 经典同步问题三——读者写者问题

系列同步问题:经典同步问题一——生产者和消费者问题https://blog.csdn.net/weixin_36465540/article/details/105560002经典同步问题二——哲学家进餐问题https://blog.csdn.net/weixin_36465540/article/details/105564907问题描述多个进程共享存储区,读取数据的称为读者,写数据的...

2020-04-16 19:48:56 485

原创 经典同步问题二——哲学家进餐问题

哲学家进餐问题问题描述五个哲学家住在一起,每个人的生活由吃饭和思考组成。饭桌上有一盘菜,五个人每个人一个盘子一支叉子。想吃饭的哲学家会到桌子边的位置上,拿起左、右两个叉子,从中间的盘子中取菜放到自己的盘子中。条件:防止叉子互斥使用;防止死锁和饥饿。解决方案一给哲学家和叉子分别从0到4标号,0号哲学家吃饭时需要0和1号叉子,1号哲学家需要1和2号叉子……4号哲学家需要4和0号叉子。即 i ...

2020-04-16 19:11:12 290

原创 CPU调度算法——FCFS算法/SJF算法/优先级调度算法/RR算法

文章目录一、先来先服务(FCFS)调度算法二、最短作业优先(SJF)算法1. 非抢占式SJF2. 抢占式SJF三、优先级调度算法1. 非抢占式优先级调度算法2. 抢占式优先级调度算法四、时间片轮转(RR)算法五、多级队列调度一、先来先服务(FCFS)调度算法非抢占式调度,选择就绪队列中等待最长时间的进程。评价:简单;系统开销小;对长进程有优势;更利于多CPU处理的进程。带权周转时间=周转时...

2020-04-16 18:08:40 20984

原创 经典同步问题一——生产者和消费者问题

不懂得结构型信号量的小伙伴可参考下面博文,之后再阅读本博文,更易于理解https://blog.csdn.net/weixin_36465540/article/details/105559848生产者和消费者问题问题描述一个或多个生产者产生数据并放在缓冲区中,每次一个。一个或多个消费者从缓冲区取数据项并消费,每次一个。条件:1 在任意时间只能一个生产者或消费者访问缓冲区——互斥2...

2020-04-16 15:59:57 567

原创 如何用结构型信号量实现互斥和同步

信号量方法的基本原则:两个或多个进程可以用信号的方法进行协作;进程可以在任何地方停下来以等待收到特定的信号;信号的实现是用一种称为信号量(Semaphore)的特殊变量。信号量S就是一个特殊变量,包含一个整数值。在S上可以执行两个原子操作:**wait(S)**用来接受信号,也称为P操作;**signal(S)**用来发送信号,也称为V操作。信号量分类:计数信号量(Counting Sema...

2020-04-16 15:56:15 488

原创 以太网CSMA/CD算法&&交换机自学习/转发简述

一、以太网CSMA/CD算法NIC从网络层接收数据报,创建数据帧。监听信道(1-坚持):如果NIC监听到信道空闲,则开始发送帧;如果NIC监听到信道忙,则一直等待到信道空闲,然后发送帧。NIC发送完整个帧,而没有检测到其他结点的数据发送,则NIC确认帧发送成功。如果NIC检测到其他结点传送数据,则中止发送,并发送阻塞信号。中止发送后,NIC进入二进制指数退避:第m次连续冲突后,取n=...

2020-04-07 14:31:40 3331 1

转载 奇偶校验码浅谈

转载自:https://www.cnblogs.com/dushikang/p/8334776.html 1.什么是奇偶校验码奇偶校验码也是一种校验码,它用来检测数据传输过程中是否发生错误,是众多校验码中最为简单的一种。顾名思义,它有两种校验方法:奇校验和偶校验奇校验:原始码流+校验位 总共有奇数个1偶校验:原始码流+校验位 总共有偶数个1 2. 算法跟CRC类似...

2020-04-05 12:27:47 1761

转载 详解差错控制之码距、检错与纠错

详解差错控制之码距、检错与纠错[转载自:http://www.csairk.com/net/200803140941491305.htm]一、什么是码距?  码距就是两个码字C1与C2之间不同的比特数。如:1100与1010的码距为2;1111与0000的码距为4。 ...

2020-04-05 11:39:57 2650 1

转载 TCP/IP之路由算法

转载自https://www.jianshu.com/p/e5cce2958790网络层的重要功能就是路由和转发。而路由是根据路由器根据所维护的路由表进行路由选择。所以,如果创建和更新转发表就是一个很重要的问题。通常,在路由时,我们总是选取所需代价最小的一条路由。首先,我们需要将网络进行抽象,最常见的抽象就是,将网络抽象成图结构。每段链路的费用可以总是1,或者是,带宽...

2020-04-03 16:21:21 449

原创 IP数据报格式,IP分片,IP编址,子网掩码

文章目录一、Internet网络层二、IP数据报格式三、IP分片四、IP编址(addressing)五、子网划分与子网掩码一、Internet网络层Internet网络层是典型的数据报网络。主要功能是进行路由和转发。二、IP数据报格式版本号:4 bit,版本为4或6。首部长度:以4个字为单位。服务类型:8 bit,指示期望获得那种类型的服务。只有在网络提供区分服务(DiffSer...

2020-03-23 00:09:44 1330

转载 传输层TCP(流量控制和拥塞控制)

转载自:https://blog.csdn.net/zgege/article/details/80445324内容关键字流量控制窗口大小,窗口扩大因子M,机理,窗口探测数据段拥塞控制拥塞窗口,慢启动,阈值流量控制概念接收端处理数据的速度是有限的,如果发送方的速度太快,就会把缓冲区u打满。这个时候如果继续发送数据,就会导致丢包等一系列连锁反应。所以TCP...

2020-03-21 13:34:07 281

转载 TCP/UDP的接收缓冲区和发送缓冲区

转载自:https://blog.csdn.net/Swallow_he/article/details/84392285 1、TCP. SO_RCVBUF & TCP. SO_SNDBUF每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的流量(...

2020-03-21 13:24:53 2729

转载 TCP快速重传为什么是三次冗余ack

转载自:https://blog.csdn.net/u010202588/article/details/54563648         先理解ACK的基本工作原理,当发送端发送第N-1个包后,接收端答复的ACK序列号实际上跟发送端发送下一个包,也就是第N个包的序列号...

2020-03-21 13:18:57 1646

转载 虚电路网络和数据报网络

转载自:https://blog.csdn.net/qq_22238021/article/details/80426135 网络层可以在两台主机之间提供无连接服务或连接服务。由网络层向运输层提供虚电路网络:仅提供连接服务数据报网络:仅提供无连接服务一、虚电路网络一条虚电路由如下组成:源和目的主机之间的路径(...

2020-03-21 13:14:00 482

空空如也

空空如也

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

TA关注的人

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