自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 零基础深度学习——学习笔记1 (逻辑回归)

因为各种各样的原因要开始学习深度学习了,跟着吴恩达老师的深度学习视频,自己总结一些知识点,以及学习中遇到的一些问题,以便记录学习轨迹以及以后复习使用,为了便于自己理解,我会将一些知识点用以个人的理解用通俗的语言表达出来,如果有错误,请大家指出。线性回归是一种用于建立输入特征和输出之间线性关系的统计学和机器学习算法。它的目标是通过已知的特征值和相应的输出值(或称为标签、响应变量),拟合一条直线(在一维情况下)或超平面(在多维情况下),以最好地预测未知样本的输出值。

2023-07-23 19:45:47 681

原创 每日学一个设计模式23——解释器模式

符合开闭原则可利用的场景较少,一般用于解释语言或表达式。

2022-09-26 14:32:02 420 1

原创 每日学一个设计模式22——命令模式

符合开闭原则实现行为请求者-行为实现者之间的解耦。

2022-09-25 11:58:19 248

原创 每日学一个设计模式21——代理模式

不符合开闭原则符合单一职责原则Proxy类只能解决他能解决的问题,当遇到不能解决的问题时,还是会“转交给”本人解决。如果在一个大型系统的初始化过程中,存在大量的耗时处理。如果在启动系统时连那些暂时不会被使用的功能也初始化了,那么应用程序的启动时间会非常漫长,这将会引发用户的不满。如果我们只需要使用某个功能时才将其初始化,则可以帮助我们改善用户体验。

2022-09-22 13:29:52 297

原创 每日学一个设计模式20——享元模式

减少创建对象的数量,以减少内存占用和提高性能创建一个缓冲池,如果需要的对象缓冲池中不存在则创建对象并加入缓冲池,否则直接从缓冲池中获取。

2022-09-21 22:27:01 157

原创 每日学一个设计模式19——状态模式

符合开闭原则分而治之的思路,将每个状态的处理分散在状态类上,省去了分支条件判断,当类非常多的时候有优势。举例中管理状态迁移(ChangeState)的是ConcreteState角色,我们也可以在Context角色中管理状态迁移。

2022-09-20 13:13:29 122

原创 每日学一个设计模式18——备忘录模式

增加功能需要改动caretaker和Memento,因此不符合开闭原则。Caretaker角色决定何时备份,撤销Memento角色,Originator角色负责生成Memento角色和使用接收到Memento角色来恢复自己的状态,因此做到了职责分担,符合单一职责原则。

2022-09-19 23:26:42 163

原创 每日学一个设计模式17——观察者模式

符合开闭原则将Subject角色的状态变化通知Observer角色,让Observer角色进行相应处理,主要是为了使Subjec角色和Observer角色同步。

2022-09-18 15:45:42 160

原创 每日学一个设计模式16——仲裁者模式

不符合开闭原则,新增ConcreteColleague类需要修改ConcreteMediator类。外观模式中,Facade角色单方面使用其他角色来提供对外接口API,是单向的,而仲裁者模式中,Mediator角色与Colleague角色进行交互,是双向的。仲裁者模式不让互相关联的对象之间直接通信,而是让他们向仲裁者进行报告,由仲裁者统一下达指示。

2022-09-17 21:54:56 513

原创 每日学一个设计模式15——外观模式

不符合开闭原则,如果增加功能的话,需要增加类,并且需要修改Facade类外观模式让API变少了,使复杂的东西变简单。

2022-09-16 21:34:49 233

原创 每日学一个设计模式14——责任链模式

弱化了发出请求和处理请求的人之间的关系可以动态的改变责任链每个Handler专注自己的工作会导致处理延迟。

2022-09-15 20:36:59 207

原创 每天学一个设计模式13——访问者模式

符合开闭原则将处理从数据结构中分离,提高扩展性。

2022-09-14 23:13:10 210

原创 每日学一个设计模式12——装饰器模式

符合开闭原则在装饰器模式中,装饰器与被装饰物具有一致性(具有相同的方法API),因此即使被装饰物 被 装饰器 装饰起来了,API也不会隐藏,依然可以调用方法。使用委托,使类之间弱关联。

2022-09-13 15:43:15 173

原创 每日学一个设计模式11——组合模式

组合模式可以使容器与内容具有一致性,也可以成为多个和单个的一致性,即将多个对象结合在一起,当作一个对象进行处理通常,树结构的数据结构都适合使用组合模式。

2022-09-12 12:32:00 211

原创 每日学一个设计模式10——策略模式

符合开闭原则使用委托(弱关联),能灵活替换不同策略。

2022-09-12 01:44:24 91

原创 每日学一个设计模式9——桥接模式

符合开闭原则,扩展性极强用于分离类的功能层次结构和实现层次结构,并独立的进行扩展。继承是强关联,而委托是弱关联,在举例中的Display类中使用了委托,将任务委托给DisplayImpl类(调用DisplayImpl方法)。

2022-09-10 17:23:14 137

原创 每日学一个设计模式8——抽象工厂模式

用于创建复杂对象抽象工厂模式易于增加工厂(只需要增加类,不需要改写好的代码,符合开闭原则),而难以增加新的产品(违反开闭原则)。基于上述特性,引入一个产品簇与产品线的概念产品簇苹果手机,华为手机,小米手机,属于同一产品簇产品线苹果手机,苹果电脑,苹果平板,属于同一产品线我们可以看出,假设把每个具体工厂都视作一个品牌,那么可以发现由于易于增加工厂的特性,抽象工厂模式适合扩展产品簇,而又因为难以增加新的产品的特性,抽象工厂模式不适合扩展产品线。

2022-09-10 01:12:32 165

原创 每日一个设计模式7——建造者模式

符合开闭原则用于构造复杂对象。

2022-09-08 22:55:09 186

原创 每日学一个设计模式6——原型模式

符合开闭原则用于克隆一个与原对象完全相同的对象clone方法是浅拷贝,如果需要克隆复杂对象,则需要使用深拷贝,用递归调用clone方法,或者序列化与反序列化实现。

2022-09-07 21:52:47 124

原创 每日学一个设计模式5——单例模式

有些对象,我们希望在程序中只存在一个,我们只要再编写程序的时候多注意,确保一个对象只创建一次,就能完成功能,由于软件往往比较复杂且是往往是团队协作,因此不能确保其他人不会重复创建该对象。于是产生单例模式,确保任何情况下实例仅存在一个。

2022-09-06 20:56:34 162

原创 每日学一个设计模式4——工厂方法模式

符合开闭原则符合单一职责原则思想和实现方式与模板方法模式类似由于要通过Product抽象类调用具体方法,因此客户端需要使用的方法应都在Product类中定义。

2022-09-06 00:34:07 276

原创 每日学一个设计模式3——模板方法模式

模板方法模式符合开闭原则符合里氏替换原则符合单一职责原则。

2022-09-04 16:58:40 124

原创 每日学一个设计模式2——适配器模式

适配器模式符合开闭原则适配器模式多用于软件的新旧版本兼容,将新版本的软件作为Adaptee通过适配器,使他能完成就旧版本Target的工作。

2022-09-03 18:08:56 186

原创 每日学一个设计模式1——迭代器模式

迭代器模式符合开闭原则(对修改关闭,对扩展开放,增加功能只需要增加类,不需要修改原有的代码)符合了单一职责原则,将管理对象(Aggregate),和迭代对象(Iterator)的责任在不同的类中实现。提供一个统一的方法遍历对象,客户不用再考虑数据的具体类型,使用一种方法就可以遍历对象了。在遍历相似对象,或遍历一组相同对象时,适合使用迭代器模式。

2022-09-03 01:12:36 490

原创 UML类图中各种关系的含义及对应的图示

UML类图含义

2022-08-31 11:14:13 1348

原创 [踩坑] Vue项目部署后 刷新页面就404

history模式中会出现这样的问题,具体原因看大佬的解释好像是因为路由跳转是js操作,直接输入路径(或刷新路径后),服务器没有匹配的处理方法,因此需要将请求转交给js去执行。今天部署将vue3+vite项目部署在nginx上,运行是没有问题,就是只要一刷新页面,就会报404,之前也部署过vue2+vuecli的项目,并没有出现过这种错误。经过一番查资料发现并不是,问题是出在之前vue2项目使用的vue-router是。(路径中有#),而这个项目使用的vue-router是。...

2022-08-01 01:20:26 2026

原创 项目部署——Vue项目部署到云服务器(linux)

因为期末了,要检查web大作业,虽然没有要求,但我想把项目部署一下,以免每次都要打开运行了,部署过踩了许多坑,这里总结一一下这次部署的流程吧。项目我个人进行前后端分离的全栈开发,有后台,后台部署的过程由于篇幅原因将在下一篇中讲解准备工作准备一台虚拟机或者云服务器(linux系统)首先,由于真实的项目基本上都部署在linux系统上,因此为了贴近真实,我们需要准备一台带有linux系统的虚拟机或者云服务器,由于虚拟机不能在自己的电脑关机了以后继续运行,因此这里推荐云服务器,目前用过阿里云,腾讯云两款云服务

2022-05-26 11:31:49 9775

原创 JS总结——数组,对象遍历的方法

对于数组或者对象的遍历,筛选,提取等操作是前端开发中经常有的需求,不要再只会写普通的for循环了,虽然普通的for循环已经能完成一切的功能的,是一个特殊方法,但是针对各种需求,js给我们提供了许多方法,来更优雅的遍历,来学习一下吧!1. for infor in 循环,数组和对象都可以遍历,item为array的下标,或者object的key这样的代码,比起for循环可读性能强一些。2.for of与for in 不同的是,for of只能遍历数组,item为数组元素的值3.Object.keys

2022-05-22 16:16:12 11623

原创 JS总结——关于数组的方法2

取数组对应元素的下标1.indexOf,lastIndexOf这两个较为简单,作用是传入一个参数,判断该参数在数组中是否存在,如果存在,返回其第一次出现(最后一次)的下标,如果不存在,返回-1区别是:indexOf是返回第一次出现的下标,而lastIndexOf是返回最后一次出现的下标2.includes该函数作用与上两个差不多,区别是上两个函数 是返回下标 ,而includes是返回true或false,即该数组中是否存在该参数,因此includes可以做的,indexOf和lastInd

2022-05-20 14:16:24 126

原创 JS总结——关于数组的方法1

数组转字符串的方法1.toString功能:将数组转为字符串,用逗号连接console.log([[1,[2]],[3,4,10086]].toString())打印结果 1,2,3,4,10086toString方法可以先将数组扁平化(多维转化为1维),然后对每个元素用逗号连接,形成一个字符串2.join功能:将数组转为字符串,用连接符连接//如果不传递参数console.log([1,[2,[3,4,5]]].join())打印结果 1,2,3,4,5//如果传递参数为空

2022-05-20 13:53:48 116

转载 JS总结——获取元素的各种高度宽度

由于该内容属于记忆性内容,因此这次就copy了一下别人的博客鼠标的横坐标,X轴:  event.clientX; 鼠标的竖坐标,Y轴:  event.clientY; 网页可见区域宽:   document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域高(包括边线的宽):document.body.offsetHeight; 网页正文全文宽:   document.body.scr...

2022-05-15 22:03:27 958

原创 JS总结——闭包定义及其应用(防抖与节流)

1.什么是闭包在函数中嵌套函数,内部函数另一个作用域中被调用,就形成了闭包。2.闭包的例子我们来看一个闭包的例子<button id="btn">按钮</button> <script> // 定义全局作用域变量 let a = 3 let b = 4 function outFn(){ //定义函数作用域变量 let a = 1

2022-05-08 16:32:57 2471

原创 CSS总结——瀑布流布局

瀑布流布局瀑布流布局是一种新型的布局方式,可以将大小不一的图片完整的显示在页面上,并且在杂乱的布局中保持着一定的美感,今天学习了一下如何使用瀑布流布局,总结了有以下三种方式。(瀑布流还可以使用grid布局实现,还没有学习过这种方式)瀑布流的实现方法可以用纯CSS,也可以用JS实现,如何选取决于需求,这几种方法各有优略,如何选取取决于需求。以下案例均采用如下的html代码<div class="container" id="con"> <div class="item

2022-05-07 21:46:36 43139

原创 JS总结——IntersectionObserverAPI

什么是IntersectionObserver文档中的描述为:​​​​​​​Intersection Observer API​的IntersectionObserver接口提供了一种异步观察目标元素与祖先元素或顶级文档视口的交集变化的方法。祖先元素或视口称为根。ntersectionObserver能做什么可以监视页面中的一个元素是否出现在视口中,以此可以衍生出许多功能,当这个元素出现在视口中时,可以处理发送请求,触发动画等等业务。如何使用我们来分析一下官方给的案例在使用之前,我们需要对Int

2022-05-03 19:20:34 1792

原创 JS总结——Promise与async,await

Promise是什么?Promise是JS中进行异步编程的新解决方案(ES6规范)异步任务:例如文件IO,AJAX,定时器等等,异步任务,简单地说,异步任务就是把任务先放一放,等当前手头的任务处理完之后再处理。为什么要使用Promise在Promise出现之前,我们想要执行异步函数,必须先指定其回调。如果想要在基于第一个异步任务的处理结果执行第二个异步任务,那么我们就需要再第一个异步任务的回调函数中编写第二个异步任务的回调函数。这样会产生一个回调地狱的问题。即如图所示,代码疯狂缩进,回调函数

2022-05-01 14:54:14 5329

原创 项目总结——使用localStorage实现记住密码

由于每次都输入用户名密码太累,想在自己的个人网站上添加一个记住密码功能,以前的项目是使用浏览器cookie实现的,而后发现cookie实现代码较为复杂,而且localStorage可以完美替代功能且代码简单,故使用localStorage实现。具体代码如下部分html代码,当remove<input type="text" v-model="login.username"><input type="password" v-model="login.password">&lt

2022-04-27 01:00:33 530

原创 Vue总结——组件间通信

组件间通信组件间通信在Vue中十分常用,有多种 方式可以实现,总结几种常用的1.父传子——props使用方法父组件中,传递两个参数parameter1,parameter2,注意Vue官方建议props传递的数据不要进行修改可以直接传递字符串<Child parameter1="parameter1" parameter2="parameter2"></Child>也可以通过v-bind动态绑定 数据传递<Child :parameter1="paramete

2022-04-26 21:32:09 79

原创 Vue学习总结——computed/methods/watch的区别

computed/methods/watch的区别1.computed官网描述模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如:<div id="example"> {{ message.split('').reverse().join('') }}</div>在这个地方,模板不再是简单的声明式逻辑。你必须看一段时间才能意识到,这里是想要显示变量 message的翻转字符串。当你想要在模板中的多处包

2022-04-26 17:36:55 94

原创 Vue学习总结——Vue2生命周期

Vue2生命周期每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。vue中每一个组件都会创建一个vue实例,这个实例从出生到死亡,经历的过程如下(官网给出)生命周期函数(也叫生命周期勾子),用于在Vue实例 创建的生命周期的不同阶段,执行业务逻辑 。Vue2有8个生命周期钩子,都是成对出现:分别是

2022-04-26 16:45:07 2572 2

原创 Vue学习总结——前后端分离

对于前后端分离从是什么,为什么,怎么办三方面谈谈自己的见解

2022-04-26 14:22:42 12003

空空如也

空空如也

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

TA关注的人

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