自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(401)
  • 论坛 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 用springboot+mybatis+mysql+thymeleaf写的简易商品管理系统(系统地址:http://120.55.192.105:8080/含源码)

文章目录简介源码页面样式页面及数据库表结构各模块功能及源码解析登录功能以及拦截器功能商品管理功能和价格分析功能库存管理功能简介简易的商品管理系统,主要用springboot + mybatis +thymeleaf注意 链接的mysql数据库是8.0版本 如果自己运行 可能会遇到mysql数据库版本问题造成的影响此系统 主要是看b战狂神说 springboot实战模仿写的前端的页面也是搜的模板,只是简单的商品的增删改查。而且有点小问题 就是 每次第一次加载登录页面的时候加载不了 登录页面的静态

2021-01-16 23:41:14 298 5

原创 记一次typescript爬虫全过程

文章目录前言初始化项目电影名和评分等数据的爬取代码前言这几天疯狂学习typescript,让我感受到了它的无线魅力,无意中了解到了typescript也可以操作爬虫技术,欣喜落狂。于是进行了第一次typescript爬虫记录github代码地址初始化项目先创建一个叫做tsScrapy的文件夹,用cmd命令进入命令行窗口依次输入下列命令npm init -y tsc --init这两部命令分别出现了pakage.json文件和tsconfig.json文件后需要npm安装许多的依

2020-12-01 20:11:09 155

原创 ES6系列知识点深入理解全面复习

ES6学习复习系列文章目录ES6所有知识点学习复习文章链接地址,持续更新中(9.25)ES6字符串和数字格式新增的所有知识点(全面详细)ES6解构赋值(各种情形详解)ES函数默认值ES6的箭头函数应用和注意点ES6函数尾调用,尾递归及优化深入理解ES6数组之扩展运算符应用场景详解ES6数组的常用的拓展方法详细应用ES5,6数组的空位处理ES6symbol数据类型学习与应用ES6对象方法的拓展(深入理解Object.assign的拷贝等知识点)ES6的对象的数据结构的拓展ES6的

2020-09-25 17:04:13 1172

原创 javascript高级程序设计的几种经典继承

文章目录构造方法继承原型链继承组合继承原型式继承寄生式继承寄生组合式继承借鉴:https://www.jianshu.com/p/85899e287694构造方法继承优点:可以传参给父类利用call的参数列表传递避免了所有属性被实例共享缺点:没创建一个实例 就要创造一个方法只能继承父类的实例属性和方法,不能继承原型的属性和方法function Parent(name){ this.name = name||'default_name'; this.getInfo =f

2021-02-27 21:06:00 11

转载 剑指offer:数组中只出现一次的数字

map<int ,int> maps; for(int i=0;i<data.size();i++){ maps[data[i]]++; } vector<int> a; int j=0; for(const int e:data){ if(maps[e]==1){ a.push_back(e); ...

2021-02-19 22:20:07 35

转载 剑指offer:求两个链表的第一个公共节点

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { ListNode *ta = pHead1; ListNode *tb

2021-02-19 22:12:29 9

转载 剑指offer:数值的整数次方

文章目录题目描述思路及代码方法一:暴力方法方法二:递归法(快速幂)方法三:非递归的快速幂题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0思路及代码方法一:暴力方法很显然就是n个b相乘。循环n次。class Solution {public: double Power(double base, int exponent) { if(exponent == 0

2021-02-17 21:48:40 8

转载 剑指offer:构件乘积数组

文章目录题目描述思路代码题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)对于A长度为1的情况,B无意义,故而无法构建,因此该情况不会存在。思路此题目能用暴力的方法肯定是能做出来的,可以将B数组的每一个数一个个的求

2021-02-13 18:39:50 12

原创 剑指offer:不用加减乘除法做加法

文章目录题目描述思路源码题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路这道题不可以用上面的方法,那大概只可以用二进制运算求解了,由此可以联想到计算机组成原理学的加法器,两个二进制数相加的结果可以用异或运算,而两个二进制的进位相加是用与运算求解。下面是牛客网大神的易懂解说:首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2。第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终

2021-02-10 16:59:27 40

原创 我在校园自动打卡autojs脚本

前言遇到以前的初中同学问我会不会写个抢购东西的脚本,于是我到网上搜了一下,对写androd脚本的autojs产生了兴趣。操作步骤下载autojs(下面有我的百度云分享)百度云分享:autojs下载百度云提取码:nhpl二维码下载打开autojs软件的无障碍服务创建文件(代码如下)点击左下角的加号创建,将下列代码复制注意:我这可以在选中我在校园公众号点击的代码部分的drawingOrder值是15,我尝试多种方式,只有这种可行,所以在此之前 你最好将我在校园公众号在微信消息里

2021-02-05 12:47:55 145

原创 剑指offer:数组中出现次数超过一半的数

题目描述题目抽象:给定一个数组,找出数组中的众数,若有,返回众数,若没有,返回0众数定义:数组中出现次数大于数组一般的元素思路及代码哈希此题目一开始我想到的就是这种哈希的方法,先把每个数的出现次数存到数组中,再把此数组遍历一次,返回众数;下面第一个是我自己的代码有点繁琐。第二个是灵活运用c++的map结构后的简化代码,两种思想相同;代码一时间复杂度:O(n^2)空间复杂度:O(n)class Solution {public: int MoreThanHalfNum_So

2021-02-04 11:59:57 15

转载 我在校园自动打卡

我在校园自动打卡

2021-02-03 12:12:09 130

转载 剑指offer:合并两个排序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路及代码迭代求解如果l1指向的结点值小于等于l2指向的结点值,则将l1指向的结点值链接到cur的next指针,然后l1指向下一个结点值否则,让l2指向下一个结点值 循环步骤1,2,直到l1或者l2为nullptr 将l1或者l2剩下的部分链接到cur的后面/*struct ListNode { int val; struct ListNode *next; ListNode(in

2021-02-01 12:30:34 13

原创 剑指offer:变态跳台阶和跳台阶

前言这道题目如果能写出迭代式,就会感觉极其简单。由于我大一的时候遇到过此题;优点印象,所以两分钟就写出来了,极其开心。(完全靠自己所想,所写出的题目实在不多)题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路f(n) = f(n-1)+f(n-2)+…+f(1);f(n-1) = f(n-2)+…+f(1);所以:f(n) = 2f(n-1);代码class Solution {public: int

2021-01-31 12:28:32 19

转载 剑指offer:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。题解方法一:暴力方法:直接遍历一遍数组,即可找到最小值。但是本题的附加条件就没有用上。肯定不是面试官所期望的答案。方法二:二分查找这种二分查找难就难在,arr[mid]跟谁比.我们的目的是:当进行一次比较时,一定能够确定答案在mid的某一侧。一次比较为 arr[mid]跟谁比的问题。一般的比较原则

2021-01-31 11:54:46 18

原创 剑指offer:给定一棵二叉搜索树,请找出其中的第k小的结点。

题目给定一棵二叉搜索树,请找出其中的第k小的结点。思路递归:由于二叉搜索树的性质是左子节点小于根节点,右子节点又比根节点大,所以我们可以先递归到最左边的子节点,那么这个节点就是最小的节点。从此节点开始计数,刚好就是从大到小排列的了。用栈的方法中序遍历,可以利用栈来模拟递归遍历,首先根入栈,然后令根节点的左孩子不断入栈直到为空,弹出栈顶,令其右孩子入栈,重复以上操作,直到遍历结束或者访问第k个节点为止。代码:递归/*struct TreeNode { int val;

2021-01-30 21:00:47 23

原创 输入一棵二叉树,判断该二叉树是否是平衡二叉树。(剑指offer-平衡二叉树)

class Solution {public: map<TreeNode*,int> depthArr; int depth(TreeNode *node){// 如果没有节点,直接返回0 if(!node) return 0;// 下面的代码就是为了计算出每一个节点的深度,并把它存在c++映射结构map中 if(depthArr.find(node)!=depthArr.end())

2021-01-27 11:52:27 19

转载 C++ STL 各种数据结构知识点速查

C++ STL 各种数据结构知识点速查

2021-01-23 21:22:21 38

原创 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

题目输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路(2种)分治法,求左子树的深度和右子树深度的最大值,采用递归的方法层次遍历,一层一层的加得到深度此题目和我昨天做的差不多,点击这里看另一道相似题目,所以我很快用下面的第二种层次遍历的方法做出来了,现在我发现这种二叉树的题目大部分是可以用遍历的方法解决的代码(2种)1. 分治法,求左子树的深度和右子树深度的最大值,采用递归的方法/*struct TreeNo

2021-01-23 20:52:13 27

原创 操作给定的二叉树,将其变换为源二叉树的镜像的多种方法多种题解(已通过)

文章目录题目及分析思路(2种)代码(2个)1. 在原有的树上直接将所有左右子树节点交换2. 重新遍历生成一颗树,这棵树刚好是原来的镜像题目及分析操作给定的二叉树,将其变换为源二叉树的镜像。分析:就是将二叉树的所有左右子树节点交换过来就可以了思路(2种)这里思路可以有以下两种在原有的树上直接将所有左右子树节点交换重新遍历生成一颗树,这棵树刚好是原来的镜像代码(2个)1. 在原有的树上直接将所有左右子树节点交换递归的方法很是简便,但是需要注意的是在有些地方会ac不了,毕竟很耗内存

2021-01-22 11:15:11 25

原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。js代码已通过

文章目录算法题目思路js代码算法题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路假设推入1,2,3,4这几个元素进栈,那么栈顶元素是4,栈底是1将stack1的所有元素推到stack2中,此时stack2中的栈顶是1,栈底是4。此时将stack2的1 pop出来,刚好就满足了队列元素的先进先出的特性最后将stack2的退回到stack1js代码var stack1 = []var stack2 = []function push(

2021-01-21 11:49:12 28

原创 解决navicat没有手动激活以及出现 rsa public key not found等一系列问题

文章目录前言如果是重装记得删除注册表解决navicat没有手动激活出现 rsa public key not found问题前言Navicat激活搞了我三个小时,针对几个易错问题的解决,写此博客希望帮助到大家。如果是重装记得删除注册表打开注册表删除HKEY_CURRENT_USER\SOFTWARE\PremiumSoft解决navicat没有手动激活这是你需要把你的网断开,再点激活就行了,别问我是啥原因,我t,m也不知道出现 rsa public key not found问题这时你需

2021-01-20 18:46:23 3014 5

原创 springboot项目出现:Resource interpreted as Stylesheet but transferred with MIME type text/html

问题访问自己springboot项目的登录页面 结果发现 没登录 的时候登录页面的 静态文件加载不出来,一但登录之后再返回登录页面才能加载。于是我考虑到肯定是登录拦截器,拦截了解决加上excludePathPatterns方法把你不想过滤的文件写上去...

2021-01-17 13:32:54 25

原创 用docker部署springboot项目链接不上数据库

问题当我用docker创建好了springboot项目的容器和一个 mysql8.0的容器时。出现了The last packet sent successfully to the server was 0 milliseconds ago出现的原因 是根本 没链接上数据库解决由于是第一次用docker 部署 还不知道 要改一下数据库的配置地址,将下面的localhost改为自己服务器的主机地址...

2021-01-17 13:26:09 72

原创 vue3自定义组件v-model和vue2的用法比较

文章目录vue3自定义组件v-model实例vue3自定义v-model的优点(较vue2)vue3自定义组件v-model实例注意:我这里是typescript的语法,只是有个别地方和js相比要确定一下类型,比如函数传参时,和使用input元素的value时父组件App.vue<template> <div> <InputModel v-model="inputVal"/> <span>{{inputVal}}</span&

2020-12-07 17:13:09 162

原创 计算机网络实验基本命令(ping,tracert,ipconfig,netstat,route)详细操作演练

文章目录pingping的作用ping的参数ping -tping -aping -i TTLping -n countping -l sizetracerttracert命令的作用tracert的参数tracert -dtarcert -h maximum_hopstarcert -w timeoutipconfigipconfig的作用ipconfig的参数ipconfig/allipconfig/releaseipconfig renewnetstatnetstat的作用netstat的参数net

2020-12-07 12:22:50 484

原创 vue中的一些高级特性

文章目录自定义v-model组件$nextTickslot自定义v-model组件子组件CustomVModel.vue<template> <!-- 例如:vue 颜色选择 --> <input type="text" :value="content" @input="$emit('changeEvent', $event.target.value)" > <!-- 1. 上面的 input 使用了 :va

2020-11-30 17:17:51 201

原创 快速入门typescript基础知识点总结

前言有一位著名大佬说过:所有javascript的代码今后都可以typescript代替。这句话是绝对正确的,因为typescript是javascript的超集。相对javascript最大的特点就是多了类型检测等功能基本数据类型string类型限定的表示形式就是在定义的变量名后面加上冒号,在加上需要限定的类型,如下let name: string = "bob";name = "smith";let name: string = `Gene`;let age: number = 3

2020-11-30 15:00:00 64

原创 vue3生命周期和vue2的比对

vue2和vue3的生命周期函数对应关系以下表格是按照生命周期的顺序从上到下品牌列的vue2vue3beforeCreatesetupcreatedsetupbeforeMountonBeforeMountmountedonMountedbeforeUpdateonBeforeUpdateupdatedonUpdatedupdatedonUpdateddestroyedonUnmountedactivatedonAct

2020-11-27 16:48:32 85

原创 vue3 ref 和reactive的区别

文章目录RefreactiveRefref数据响应式监听,和react-hook好像差不多。ref 函数传入一个值作为参数,返回一个基于该值的响应式Ref对象,该对象中的值一旦被改变和访问,都会被跟踪到,就像我们改写后的示例代码一样,通过修改 count.value 的值,可以触发模板的重新渲染,显示最新的值<template> <h1>{{name}}</h1> <h1>{{age}}</h1> <button

2020-11-27 15:45:14 905

原创 解决vue3+ts 创建项目其中的.vue文件出现 ‘interface‘ declarations can only be used in TypeScript files.

在首选项->设置里面打开setting.json文件删除或者注释掉下面代码, "files.associations": { ".eslintrc": "json", "*.vue": "html" },出现这个问题的原因可能就是一些插件之间的配置冲突什么的,反正搞得我这几个小时 是真的累了...

2020-11-27 11:22:20 733 2

原创 创建vue3.0的第一个组件,学习vue3较vue2的改变

前言vue3继承了vue2的大部分功能,增添了一些特性,所以vue叫做渐进式框架,所以还是可以用vue2的大部分语法的vue3组件代码<template> <h1>{{name}}</h1> <h1>{{age}}</h1> <button @click="sayName">按钮</button></template><script lang="ts">import

2020-11-26 21:08:12 64

原创 深入理解Dockerfile

理解DockerFileDockerFile是用来构件docker镜像的文件,命令参数脚本,定义了镜像创建的一切步骤构件步骤编写一个dockerFile文件docker build 构件为一个镜像docker run 运行镜像docker push 发布镜像(DockerHub,阿里云)DockerFile的指令FROM #基础镜像,一些从这里开始构建MAINTAINER #镜像是谁写的,姓名+邮箱RUN #镜像构建的时候需要运行的命令ADD #步骤:tomc

2020-11-23 11:35:13 35

原创 Docker数据卷容器--实现两个或多个容器之间的数据同步

文章目录什么是容器数据卷实现三个容器之间的数据共享启动一个叫docker1容器依次启动docker2和docker3并用---volumes-from挂载即使删除容器docker1,其他容器的数据还是存在的实现mysql数据共享的方法结论什么是容器数据卷先看下面一副图自己先创造了一个叫centos1的容器,再用–volumes-from命令创建一个叫centos2的容器centos1和centos2实现了数据共享,centos1被称作是数据卷容器,还可以称作父容器==通过volumes fr

2020-11-23 10:51:46 165

原创 Docker匿名挂载,具名挂载,指定路径挂载,生成镜像挂载

文章目录匿名挂载具名挂载指定路径挂载匿名挂载在-v只写了容器内的路径,没有写容器外的路径。-v 容器内路径 # 匿名挂载docker run -d -P --name=nginx01 -v /etc/nginx nginx# 查看多有的volume 情况docker volume ls具名挂载·所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data下 通过具名挂载可以方便地找到一个卷,大多数情况在使用具名挂载

2020-11-20 14:42:54 85

原创 Docker容器数据卷

文章目录容器数据卷的产生与含义操作容器卷实战:安装mysql容器数据卷的产生与含义容器数据卷的产生是为了解决:数据都在容器你,如果容器删除,数据就会丢失的问题。所以这里我们使用容器数据卷是为了将数据可持久化。数据就放在容器中的风险是非常大的,删除容器,相当于把数据都删除了,删库跑路。我们希望是mysql数据是可以存储在本地的,而且容器之间需要有一个数据共享的功能。Docker容器产生的数据,同步到本地。所以容器卷技术就相当于目录的挂载,将我们容器内的目录,挂载到liunx上面容器卷增强了容器

2020-11-20 14:07:19 40

转载 docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp

docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp

2020-11-19 19:41:22 28

原创 Docker提交(commit)镜像

文章目录对容器概念的理解Docker提交镜像的基本命令案例:提交一个tomcat镜像容器1、启动一个默认的tomcat2、发现这个默认的tomcat 是没有webapps应用,官方的镜像默认webapps下面是没有文件的!3、从webapps.dist拷贝文件进去webapp4、将操作过的容器通过commit提交为一个镜像!我们以后就使用我们修改过的镜像即可,而不需要每次都重新拷贝webapps.dist下的文件到webapps了,这就是我们自己的一个修改的镜像。对容器概念的理解Docker利用容器技

2020-11-19 17:34:14 57

原创 深入理解Docker镜像

镜像是什么镜像是一种轻量级,可执行的独立的软件包,用来打包软件运行环境和基于运行环境开发的软件,他包含某个软件 所需的所有内容,包括代码,运行时的库和环境变量和配置文件所有的应用直接打包docker镜像,可以直接跑起来得到镜像的方法从远程仓库下载(常用)别人拷贝给你自定义一个镜像DockerFile镜像的特点:Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部!这一层就是我们通常说的容器层,容器下的都叫镜像!Docker镜像的加载原理联合文件系统(u

2020-11-19 16:07:24 47

转载 docker: invalid reference format.

docker: invalid reference format.

2020-11-19 15:14:19 102

空空如也

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

TA关注的人 TA的粉丝

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