自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 【vue2.0后台项目之登陆】01登陆开发流程分析

本文将致力于描述一个vue2.0后台系统的登陆业务流程,从后台项目常用的模板 vue-admin-template模板分析,到axios的二次封装,发起请求接口都会涉及到。不足之处,还请各位大佬指正。后台管理系统API接口在线文档1后台管理系统API接口在线文档2登陆接口在线文档。

2023-03-29 23:01:45 684 1

原创 【字体图标iconfont】字体图标部署流程+项目源码分析

今日,心情甚是烦闷,原由…公司项目需要将字体图标做一些细微的调整,我一人分析了许久,看不大懂源码的逻辑,产生了自我怀疑。深吸一口气,重新鼓起勇气,调整心境,一下子豁然开朗,所以决定写一份字体图标部署的教程,以此吸取教训和总结经验。

2023-03-21 17:28:33 1144 2

原创 【前端工程师之ajax基础】原生XML请求+jquery发请求+axios发起请求

- 请求行【POST URL,HTTP/2.1协议版本】 - 请求头:一组组键值对 - 请求体:一般POST请求才有,在浏览器调试工具的form data或者request payload 中看

2023-02-23 16:31:27 707

原创 【前端攻城狮之vue基础】03路由守卫+actived生命周期钩子+独享路由守卫+组件内路由守卫+history与hash模式

包括beforeRouteEnter 函数【根据路由规则,进入组件之前调用】和beforeRouterLeave函数【根据路由规则,离开组件之前调用】,to 要去的组件的路由对象,from 离开的组件的路由对象,next放行函数。与全局前置路由守卫没太大区别,只是函数名和写代码的位置不同,独享路由守卫作为路由单独的一个配置项使用。某一个路由单独享用的路由守卫,只有独享前置路由守卫,没有独享后置路由守卫。作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态。

2023-02-16 16:24:56 841

原创 【前端攻城狮之vue基础】02路由+嵌套路由+路由query/params传参+路由props配置+replace属性+编程式路由导航+缓存路由组件

路由是一条条对应的key-value关系,key就是前端地址栏的路径,value就是对应的组件,用于展示对应内容路由器:统一管理多条路由工作过程:当浏览器的地址发生改变时,对应的组件就会显示。

2023-02-14 14:46:12 332

原创 【前端攻城狮之ES6基础】01迭代器原理及自定义迭代器遍历对象

使用迭代器遍历一个对象(for of遍历) 迭代器原理:调用Symbol.iterator接口,返回一个指针对象,这个指针对象指向数组起始位置 - 第一次调用next,指针指向数组的第一个元素 - 调用对象中的next函数,指针后移,指向下一个元素,直到指向最后一个元素 - 每次调用next会返回一个包含value和done属性的对象,done用来表示遍历的状态是否结束

2023-02-14 00:01:39 89

原创 【前端攻城狮之vue基础】01原生事件和vue事件知识基础和拓展

事件循环模型,进程和线程,事件的三个阶段,事件的冒泡,事件的委托,事件的捕获,vue事件和原生事件的区别,vue事件修饰符,js代码分类,浏览器内核,浏览器内核模块等

2023-02-05 00:09:18 430

原创 java后端web前端10套项目开发案例源码,毕设,期末作业

html,css,js,jquery期末作业项目毕设,SSM,springboot毕设,期末大作业,Vue项目毕设,大作业。

2022-11-22 11:36:46 3251 1

原创 【前端攻城师之JS基础】11Bom浏览器对象模型

BOM对象包括Window 代表整个浏览器窗口,同时window也是网页中的全局对象Navigator 代表当前浏览器的信息 通过该对象可以识别不同的浏览器Location 代表当前浏览器的地址栏信息,通过Location可以获取到地址栏信息,或者操作浏览器跳转页面History 代表浏览器的历史记录,通过该对象可以操作浏览器的历史记录,该操作不能获取到具体的历 史信息,只能操作浏览器向前或向后翻页,而且该操作只在当次访问时有效。

2022-10-26 21:40:25 566

原创 【前端攻城师之JS基础】10事件对象

当事件被触发时,浏览器会调用响应函数,同时将一个事件对象作为实参传递给响应函数在事件对象中封装了当前事件相关的一切信息,包括鼠标的坐标,哪个按键被按下,鼠标滚轮滚的方向等可以在响应函数中定义一个形参,来使用事件对象,但是在IE8以下浏览器中事件对象没有做实参传递,而是作为window对象的属性保存,以下方法兼容IE8和其他浏览器元素.事件 = function(event){};元素.事件 = function(e){};

2022-10-26 21:37:57 433

原创 【前端攻城师之JS基础】09Dom对象 文档对象模型

可以通过js去操作整个网页文档指的是整个html页面,对象指的是文档中的任何内容都可以看作是一个对象,模型指的是对象之间的关系节点:文档节点(整个html文档)元素节点(文档中的标签)属性节点(标签的属性)文字节点(标签中的文本内容)

2022-10-26 21:32:27 272

原创 【前端攻城师之JS基础】08JS中的包装类

但是在实际应用中千万不要这么干,因为实际应用中经常用到数字的比较。包装类是给浏览器底层自己用的,需要将基本数据类型转换成对象。通过这三个包装类可以创建基本数据类型的对象。

2022-10-26 21:20:01 494

原创 【前端攻城师之JS基础】07Date日期对象和Math对象

Date和Math都是JS的内建对象,可以直接拿来使用。

2022-10-24 08:46:34 82

原创 【前端攻城师之JS基础】06函数的方法和隐含参数

2.以方法的形式调用时obj.fun(),this是调用方法的对象fun,如果以绑定事件响应函数调用时,this是绑定的那个对象。4.使用call和apply调用时fun.call(obj1),this是指定的那个对象obj1。通过两个方法可以直接调用fun函数,并且可以通过第一个实参来指定函数中this。3.以构造函数的形式调用时new Person(),this是新建的那个对象。this是函数的上下文对象,根据函数的调用方式不同会执向不同的对象。这两个方法都是函数对象的方法需要通过函数对象来调用。

2022-10-24 08:42:56 455

原创 【前端攻城师之JS基础】05数组

语法 数组.length修改length如果修改的length大于原长度,多出来的部分会占用内存,但是没有值如果修改的length小于原长度,则多出来的部分会被删除。

2022-10-24 08:37:58 874

原创 【前端攻城师之JS基础】04原型对象

in运算符通过该运算符可以判断一个对象中是否含有指定的属性,返回值是true,或false语法:“属性名” in 对象名。

2022-10-21 19:16:40 270

原创 【前端攻城师之JS基础】03函数进阶

如果我们想要创建多个对象,每次都使用字面量创建,就要重复写很多遍,不妨将相同的代码提取出来,封装成一个函数,封装成创建对象的函数叫做工厂方法(批量生产)​ } ​ //将新的对象返回 ​ return obj;}构造函数的存在前提,使用new Object创建出来的对象,对象类型都是Object,如果我们想要区分两个对象的类型,工厂方法创建对象已经不合适了,所以为了区分对象的类型,提出了构造函数类:构造函数就是一个类实例:构造函数新建的对象,叫做这个类的实例。

2022-10-21 19:09:58 252

原创 【前端攻城师之JS基础】02JS对象基础

函数也是一个对象,对象能干的事函数都能干方法一:用构造函数创建一个函数创建一个函数对象,可以将要封装的代码以字符串的形式传递给构造函数,封装好的函数不会直接执行,只有调用函数才会执行封装的代码方法一:使用函数声明来创建一个函数语法 function 函数名([参数1,参数2,参数N]){}方法三:使用函数表达式创建函数原理 :创建一个匿名函数,然后将函数赋值给一个变量语法 :var fun3=function([参数1,参数2,参数N]){}整个是一个赋值语句,最后要写好分号。

2022-10-21 19:05:59 667

原创 【-前端攻城师之JS基础】01JS基础语法

可以将js代码编写到标签的onclick属性中,当点击按钮时,代码会执行可以将代码编写到超链接的href属性中,当点击超链接时,会执行代码可以将js代码编写到script标签中可以将代码编写到外部js文件中,然后通过script标签引入。

2022-10-21 19:01:25 200

原创 【前端css学习笔记】盒子模型margin paddind 文本内容 broder边框的属性

1.css的三大特性1.1层叠性给相同的选择器设置相同的样式,其中一个样式会覆盖另一个样式,覆盖的原则是就近原则1.2继承性就像现实生活中,孩子可以继承父亲的财产一般,子元素可以继承父元素的大部分样式,例如文字类的样式 font text line-height color等案例:段落p继承了来自父亲元素的字体颜色和字体大小…1.3行高的继承性子元素继承父元素的行高规则是,假如父元素的行高没有设置一个具体的像素大小,而是一个倍数数字;那么,子元素的行高就等于 子元素的字体大小*倍数,

2022-03-22 16:37:01 282

原创 【前端学习笔记】css学习笔记之背景background

css学习笔记background实现 视觉滚动等...

2022-03-21 20:26:02 1246 2

原创 【前端学习笔记】微信小程序vue 组件式开发

组件式开发在开发小程序中,我没有接触过vue框架,所以理解组件式开发也比较困难,大家都说组件式开发是vue的核心,下面对组件式开发讲一下自己的看法也能加深理解.首先我们需要明确一点,何为父组件,何为子组件。个人理解为,自定义的组件称为子组件,引用了子组件的页面称为父组件。父向子传递数据我们通过属性设置,在自定义标签中加上属性,实现父组件向子组件数据的传递比如我们在父组件中引用子组件​这时候需要在子组件js文件的properties下进行外部数据的配置 ,如下properties{

2022-03-15 17:28:31 1942

原创 [前端项目学习笔记] 200行代码网站首页轮播实现(html,css,js)

1.设置基本布局;2.添加轮播按钮;3.轮播代码初步实现4.给按钮添加点击事件实现轮播5.添加圆点轮播6.将列表项替换为图片,并给图片加上超链接7.最终效果

2022-02-26 08:58:13 2189

原创 【Java版数据结构】你还不会二叉树吗?本篇文章教会诸位二叉树的设计与实现

二叉树的类型:二叉树:至多有2个分支的结点组成的树叫做二叉树满二叉树:当其中所有结点的分支均为2时就是满二叉树;完全二叉树:当这棵树除了最底层外,剩下的部分全是满的,并且最底层的结点全集中在该层最左边的位置,那么这样的树可称为完全二叉树。二叉搜索树:当某一结点的左子树全部小于当前结点,且右子树全部大于当前结点,这样的树叫做二叉搜索树二叉搜索树的API往树里面添加元素从树中获取结点删除树中某一结点测试往树里面添加元素步骤:用了两个重载的put方法实现,第一个put方法用于根节点的初始化.

2022-01-21 17:09:28 413

原创 【leetcode刷题笔记】20.有效的括号“( ),{ },[ ]”

题目描述: 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true解题思路:1.在此之前.

2022-01-17 13:09:40 104

原创 【java版数据结构】链式队列的设计与实现

队列是一种特殊的数据结构,就像在食堂排队打饭一般,它具有先进先出的特点,队列可用数组或者链表实现,这里我们选择用链表实现对列,由于java具有面向对象的特点,我们通过创建一个Queue的类来秒速队列,在Queue类内部创建一个Node类来描述队列存储的每一个结点。队列的成员变量和方法成员变量方法Node head 头结点Queue()构造方法int N 队列元素个数isEmpty()判断队列是否是空的Node class{}内部结点类size()返回队列元素个数.

2022-01-14 13:25:55 267

原创 【java版数据结构】求后缀表达式,逆波兰表达式的值

介绍:后缀表达式又称逆波兰表达式,是一种操作符总是位于其两操作数之后的表达式,一般数学中的表达式叫做中缀表达式,操作符处于两操作数中间,例如4+2,42,4-2,4/2,而它们转换成后缀表达式是42+,42,42-,42/。后缀表达式实现原理:遍历表达式,如果当前字符串是数字,则入栈,如果当前字符串是运算符,则从栈中取出两个元素进行相应的运算,最后将运算结果入栈,方便下一个的运算,最终栈中仅剩的一个元素就是后缀表达式最后的结果。public class ReversePolishNotation .

2022-01-14 13:08:11 221

原创 【Java版数据结构】括号匹配问题

括号匹配:简而言之是每一个右括号都有唯一的左括号与其对应。例如(上海(北京)(深圳)杭州)括号是匹配的,而上海(北京)(深圳)杭州)(上海(北京)(深圳)杭州((上海(北京)(深圳)杭州)是不匹配的。判断原理:当遇到左括号时就把左括号进栈,遇到右括号时就出栈,因为最后进栈的一个左括号,一定会与第一个出现的右括号配对步骤:1.遍历带括号字符串的每一个字符2.如果字符是左括号,则进栈,遍历下一个字符3.继续判断字符,如果是右括号则出栈4.判断出栈的内容是否为空,如果是,则证明没有配.

2022-01-11 21:25:24 1393

原创 【java版数据结构】链式栈的设计与实现

栈是一种用于存放数据的线性结构,具有先进后出,后进先出的特点(就像子弹上膛一般,压到弹匣最上部的子弹总会最先发射出去)一般栈可用数组或者链表实现,这里介绍的是用链表实现栈由于java具有面向对象的特点,我们通过创建一个类Stack来描述栈,并且通过创建内部类Node实现结点栈的成员及方法栈的结点类:判断栈是否是空的:返回栈的长度:遍历栈进栈:出栈:栈的结点类://内部结点类 private class Node{ private T item; priv.

2022-01-11 21:03:55 473

原创 【java版数据结构】死亡游戏约瑟夫避免自杀问题

介绍:有一天罗马人占领了犹太人的领地,39个犹太人与约瑟夫以及他的朋友躲到一个山洞中,39个犹太人决定宁愿死也不要被罗马人招降,于是它们决定了一个自杀方式,41个人排成一个圆圈,第一个人从1开始报数,依次往后,如果有人报到3,那么这个人就必须自杀,然后由他的下一个人重新从1开始报数,直到所有人都自杀身亡。然而约瑟夫和他的朋友并不想遵从,于是约瑟夫要他的朋友先假装遵从,他将朋友与自己安排在第16与第31个位置,从而逃过 了这场死亡游戏。问题转换: 41个人围坐一圈,第一个人编号为1,第二个人编号为.

2022-01-09 18:46:58 2771 1

原创 【java版数据结构】找到环形链表的入口

原理:我们先判断当前链表是否是环形链表,定位到快慢指针相遇的结点,这是创建一个temp指针指向第一个元素,用temp指针和慢指针继续遍历链表,temp指针和慢指针相遇的结点就是环形链表的入口数学分析:为什么在快慢指针相遇之后,用temp指针和慢指针去遍历链表时,相遇的结点就是环形链表的入口呢? //找出循环链表的入口 public static Node getEntrance(Node first){ //判断链表是否有环 //定义两个快慢指针 .

2022-01-09 16:15:24 678

原创 【java版数据结构】判断单链表是否有环

环形链表原理:前文介绍了快慢指针的应用,同时我们也可以通过快慢指针来判断当前链表是否有环(快慢指针是否相遇)。假如把链表比作一条跑道,链表中有环,那么这条跑道就是一条环形跑道,两个速度不一样的人在上面奔跑,那么这两个人迟早会相遇。第一步:定义两个快慢指针第二步:快指针的步长是2,慢指针的步长是1第三步:用这两个指针去遍历链表第四步:判断快慢指针在遍历过程中有没有相遇,若相遇,则说明是环形链表,未相遇,则说明是普通的单向链表注意的点:判断两指针是否相遇时,不应该使用fast.item.equa.

2022-01-09 15:45:04 790

原创 【java版数据结构】快慢指针找单链表中间值

链表不像顺序结构的数组那般可通过指定的下标访问中间值,我们通过指定一个快指针(步长为2,指针每次往下移动两位),一个慢指针(步长为1,指针每次往下移动一位),当快指针遍历完整个链表时,慢指针刚好指向链表的中间元素,以此原理,我们也能找到链表中的其他结点。原理:这就类似时间相同,速度和路程成正比,快指针的速度是慢指针的两倍,当快指针走完全程(单位1)时,慢指针刚好走到全程的1/2图片描述:为了防止空指针异常,以及当链表个数是偶数,该方法也适用,我们在遍历快指针时加上了一个安全验证,快指针本身不为.

2022-01-07 23:20:13 777 1

原创 【java数据结构】双链表的设计与实现

双链表介绍:双向链表也叫双向表,是链表的一种,它由多个结点组成,每个结点都由一个数据域和两个指针域组成,数据域用于存放数据,其中一个指针域用来指向后继结点,另一个指针域用来指向前驱结点。链表的头结点的数据域不存放数据,指向前驱结点的指针域值为null,指向后继结点的指针域指向第一个真正存储数据的结点。按照面向对象的思想,我们需要设计一个类来实现双向链表,由于结点是属于链表的,所以我们把结点类作为链表类的一个内部类来实现目录双链表的四个成员变量结点类的实现双向链表的构造方法在双链表尾部添加元素在指定.

2022-01-05 21:43:27 438

原创 【java版数据结构】单链表的设计与实现

介绍:链表是一种物理存储单元上非连续,非顺序的存储结构,其物理结构不能表示元素的逻辑顺序,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列的结点组成,并且每个结点在运行时动态生成。而单链表,顾名思义是单方向的链表,本文章实现的单链表包括一个头结点head,一个记录链表长度的N,以及若干个数据结点,数据结点由一个数据域ite,和一个指向下一个结点的指针域next组成。头结点是链表的入口,链表第一个存储的数据元素,我们规定下标为0;在java中,一切皆对象,所以我们单链表的实现也.

2022-01-05 21:04:41 352

原创 【java版数据结构】简单排序算法---------(2)选择排序

和冒泡排序一样,选择排序也是一种计算机领域比较简单的排序算法,主要由两个for循环实现,因此选择排序的时间复杂度也为O(n^2)选择排序原理一句话概括:找到最小的元素放到合适的位置1.假设未排序的第一个元素是最小元素,依次和剩余未排序的元素进行比较,如果存在比最小元素索引值更小的元素,则改变最小元素的索引值为更小元素的索引,以此找到最小元素所在的下标。2.把最小元素放到合适的位置,交换第一个元素和最小元素。选择过程:第一次:假设4是最小元素,4–>6,4比6小,不改变最小元素索引.

2021-12-28 10:50:38 100

原创 【java版数据结构】简单排序算法---------(1)冒泡排序

众所周知,排序是计算机学科的必经之路,学好排序能够提升算法的性能,而冒泡排序是计算机领域的一种较简单的排序算法,它由两个for循环组成,所以它的算法复杂度是O(n^2),在数据量较小时,效率还可以,但是当数据达到万以上时,效率明显底下。排序原理一句话概括:每次冒泡找到最大的元素放到合适的位置1. 两两比较相邻元素,如果前面的数比后面的数大,那么就交换两数的位置。2. 对每一对相邻的元素做同样的操作,从开始的第一对元素到最后一对元素,最终最后位置的元素就是最大值。冒泡过程:第一次冒泡:所有的.

2021-12-27 11:56:27 423

原创 【前端学习项目】基于html +css+js+jQuery实现的六级单词项目(计时器,选择器,动态算法规划原理)

基于html +css+js+jQuery实现的六级单词项目目录一、项目介绍二、查一查模块查询模块主要用到了jQuery的核心函数当用户选择中翻英功能三、闯一闯模块当用户点击认识按钮倒计时的实现三、填一填模块动态创建输入填空的文本框判断用户输入是否正确四、项目实现一、项目介绍一、项目介绍本项目由三个模块组成,分别是查一查模块、闯一闯模块、填一填模块,下面我将分模块具体讲一下这些功能是如何实现的。我们在对数组数据处理之后,构建了一个word对象,在里面封装了一些属性和方法。以便之后word对象的访问

2021-12-03 16:38:25 305

原创 【java学习笔记】JSP之----------EL表达式语言

目录EL的基本使用EL的进阶使用EL的介绍:EL全称 Express Language 表达式语言,重要功能是获取jsp页面的数据因为原生的jsp 获取数据 操作繁琐,于是有了 EL表达式,EL表达式与JSTL标签库配合,就能打造出一个不错的完整web项目。EL的基本使用EL的使用:从四大域中获取数据从指定域中获取数据从请求参数中获取数据从四大域中获取数据:可以看到我们在pageContext中存入了name=pageContext的信息,如果我们通过java代码读取,那将会比较繁

2021-11-29 21:19:32 243

原创 【java学习笔记】基于Cookie的Session会话技术(介绍+工作原理+流程分析+常见API)

目录session介绍session工作原理实现流程分析Session常见的API实现代码session介绍先前的博客中已经介绍了Cookie会话技术,在本文章中将介绍总结Session技术。Session技术是以Cookie技术为基础的,这也是这篇文章的标题,只要理解了它们之间的联系和区别,你就对B/S通信能有个大致的了解。和Cookie相比 session 是一种更安全的存储对象。Cookie的信息存储于客户端,用户可以随时查看和修改,而Session信息存储于服务器,用户不可见。Co

2021-11-22 19:02:15 1734

批处理文件系统(java后端文件类IO流相关)

在日常工作中,经常会遇到批量操作系统文件的事情,通常情况下,只能手动重复的完成批量文件的操作,这样很是费时费力。本案例要求编写一个文件管理器,实现文件的批量操作要求如下:

2021-09-30

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

TA关注的人

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