自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端面试题--计算机网络

常说某某计算机开了 FTP 服务便是启动了文件传输服务。下载文件,上传主页,都要用到 FTP 服务。

2022-10-24 21:15:08 2392 1

原创 前端面试题--vue

每个组件都是 Vue 的实例。组件共享 data 属性,当 data 的值是同一个引用类型的值时,改变其中一 个会影响其他.Less的简单使用(一)——变量的用法Less是css的扩展,Less不仅与CSS向后兼容,而且它添加的其他功能都使用现有的CSS语法。变量一、变量正常用法(variables)在一个位置控制常用值.less文件中} **

2022-10-17 15:33:29 3803 2

原创 前端面试题--js

SetES6 新增的一种新的的数据结构,类似于数组,但成员是唯一且无序的,没有重复的值。成员不能重复;只有键值,没有键名,有点类似数组;可以遍历,方法有add: 新增,相当于array里的pushdelete: 存在即删除集合中的valuehas: 判断集合中是否存在valueclear: 清空集合Set 结构可以利用Array.from或者 扩展运算符 转化为数组。

2022-10-09 22:03:03 3628 3

原创 前端面试题---html/css

!DOCTYPE 标签:head:body:base:可以用来统一设置当前页面上的超链接的跳转方式< base >标签为页面上的所有链接规定默认地址或默认目标使用了 < base > 标签,则必须具备 href 属性或者 target 属性或者两个属性都具备通常情况下,浏览器会从当前文档的URL中提取相应的元素来填写相对URL中的空白。使用< base >标签可以改变这一点。浏览器随后将不再使用当前文档的URL,而使用指定的基本URL来解析所有的相对URL。这其中包括 < a >、< img >、< li

2022-10-07 19:03:02 1144

原创 Mysql学习笔记十五 -- 视图/Mysql管理

mysql 中的用户,都存储在系统数据库mysql中的 user 表中user 表的重要字段说明:

2022-06-06 15:51:57 182

原创 Mysql学习笔记十四--mysql表类型和存储引擎

细节说明:alter table engine = 存储引擎;

2022-06-02 21:34:16 138

原创 Mysql学习笔记十三 -- 事务

事务用于保证数据的一致性,它由一组相关的dml语句组成,改组的dml语句要么全部成功,要么全部失败。 如:转账就要用事务来处理,用以保证数据的一致性。当执行事务操作时(dml语句),mysql会在表上加锁,防止其他用户改表的数据。这对用户来讲是非常重要的。1.3 回退事务在介绍回退事务前,先介绍保存点(savepoint)。保存点是事务中的点,用于取消部分事务,当结束事务时(commit),会自动的删除该事务所定义的所有保存点。当执行回退事务时,通过指定保存点可以回退到指定的点。使用 commit 语

2022-06-02 20:43:27 95

原创 Mysql学习笔记十二--索引

说起提高数据库性能,索引是最物美价廉的东西。不用加内存,不用改程序,不用调sql,能大大提高查询速度。4.5s --> 0.003s 查询速度大幅提升创建索引后,只对创建索引的列有效主键自动就是索引,称为主键索引被指定为 unique 的字段也是索引,称为 unique 索引当想为可以存放重复内容的字段添加索引时就可以用 普通索引。开发中不适用mysql自带的全文索引,一般使用全文索引的框架 Solr 和 ElasticSearch7.添加索引8. 删除索引9.查询索引10. 小结哪些

2022-06-02 15:24:25 208

原创 Mysql学习笔记十一--约束

约束用于确保数据库的数据满足特定的商业规则。在mysql中,约束包括:not null、unique、primary key 、 foreign key 和 check 5种用于唯一的标示表行的数据,当定义主键约束后,该列不能重复。主键使用的细节讨论:primary key 不能重复而且不能为null一张表最多只能有一个主键,但可以是复合主键主键的指定方式有两种:1. 直接在字段名后指定:字段名 primary key / 2. 在表定义最后写 primary key(列名);使用 desc 表

2022-06-02 09:48:59 263

原创 Mysql学习笔记十一--表复制/合并查询/外连接

自我复制数据(蠕虫复制)有时,为了对某个sql语句进行效率测试,我们需要海量的数据时,可以使用此法为表创建海量数据演示如何自我复制思考:如何去掉一张表中的重复数据思路:先创建一张临时表 my_tmp,该表的结构和 my_tab02 一样把 my_tmp 的记录,通过 distinct 关键字 处理后 , 把记录复制到 my_tmp清除 my_tab02 中的所有记录把 my_tmp 中的记录 复制到 my_tab02 中drop 掉临时表 my_tmp有时在实际应用中,为了合并多个 sel

2022-06-01 16:41:27 243

原创 Mysql学习笔记九--子查询

1. mysql表子查询子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询单行子查询:指只返回一行数据的子查询语句多行子查询:指返回多行数据的子查询 使用关键字 in2. 子查询临时表将子查询当作一张临时表来使用要求: 查询ecshop中各个类别中,价格最高的商品第一步:先得到 各个类别中,价格最高的商品第二步:把第一步的子查询当作临时表3. all 和 any 关键字问题: 显示工资比部门30的所有员工的工资高的员工的姓名,工资和部门号.问题:

2022-06-01 14:41:12 1147

原创 Mysql学习笔记八--复杂的单表查询/多表查询

1. 单表查询增强2. 分页查询注意 limit 后面不要写计算公式,必须是一个确定的值,不然会报错3. group by 使用进阶4. 多表查询** select * from emp,dept **在默认情况下:当两个表查询时,规则:从第一张表中,取出一行 和 第二张表的每一行进行组合,返回结果[含有两张表的所有列].一共返回的记录数,第一张表行数 * 第二张表的行数这样多表查询默认处理返回的结果,称为笛卡尔积解决这个多

2022-05-31 15:07:42 332

原创 Mysql学习笔记七--加密和系统函数/流程控制函数

加密和系统函数-- 演示加密函数和系统函数 -- user() 查询用户 -- 可以查看登录到 mysql的有哪些用户以及登录的ipselect user() from dual; -- 用户@ip地址-- 查询当前使用数据库名称select database();-- 为字符串算出一个 md5 32的字符串,常用 用户密码加密 select md5('jsr'); -- 演示用户表,存放密码时,是md5create table jsr_user ( id int,

2022-05-30 16:44:23 79

原创 Mysql学习笔记六--时间日期相关函数

时间日期相关函数create table news ( id int, content varchar(30), send_time datetime);insert into news values(1,'beijin news', current_timestamp());insert into news values(1,'zhejiang news', now());insert into news values(1,'xinjiang news', current

2022-05-25 15:40:51 139

原创 Mysql学习笔记五--数学相关函数

数学相关函数-- 演示数学相关函数 -- 绝对值 select abs(-10) ; -- 十进制 转 二进制select bin(10); -- 向上取整select ceiling(2.3); -- 3-- 向下取整select floor(2.3); -- 2-- 进制转换 让 8 从 10进制 转成 2进制select conv(8, 10, 2);-- 保留小数位数 (四舍五入)select format(2.34563,2); -- 2.35 --

2022-05-25 11:07:23 94

原创 Mysql学习笔记四--字符串函数

1. 字符串相关函数-- 返回字串字符集 select charset(name) from student;select * from student;-- 转换成大写 select ucase(name) from student; -- 转换成小写 select lcase(name) from student; -- left(string2, length) 从 string2 中的左边起取 lenght 个字符 select left(name, 2) f

2022-05-25 10:41:23 96

原创 mysql学习笔记三--统计函数

1. 合计/统计函数1. countcount 返回行的总数-- 演示 count 的使用-- 统计一个班级共有多少学生 select count(*) from student;-- 统计数学成绩大于 90 的学生有多少个 select count(*) from student where math > 90;-- 统计总分大于 250 的人数有多少 select count(*) from student where (chinese + english + math) &gt

2022-05-24 16:43:54 254

原创 mysql学习笔记二--数据库的增删改查

1. 数据库 C【create】R【retrieve】U【update】D【delete】 语句(CRUD-增删改查)insert 语句 (添加数据)update 语句 (更新数据)delete 语句 (删除数据)select 语句 (查找数据)2. insert2.1 insert 语句create table `goods` ( `id` int, `goods_name` varchar(10), `price` double);SELECT * FR

2022-05-24 16:39:43 346

原创 Mysql学习笔记一创建数据库、创建表、列类型、修改表

1. 启动mysql1. 登录前,保证服务启动启动mysql数据库的常用方式:[Dos命令]net start mysql[启动 mysql 服务]net stop mysql[停止 mysql 服务]2. 使用命令行窗口链接 MYSQL 数据库mysql -h 主机名 -P 端口 -u 用户名 -p密码注意:-p密码不要有空格-p后面没有写密码,回车会要求输入密码如果没有写-h 主机,默认就是本机如果没有写-P 端口,默认就是3306在实际工作中,3306一般修改,不然容易被监听

2022-05-09 16:27:12 1593

原创 数据结构与算法学习笔记十四--算法

1. 二分查找算法(非递归)二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找二分查找法的运行时间为对数时间 O(log2n),即查找到需要的目标位置最多只需要log2n步,假设从[0,99] 的队列(100个数,即n=100中寻到目标数30,则需要查找步数为log2100,即最多需要查找7次(2^6 < 100 < 2 ^7))1.1 二分查找算法(非递归)代码实现public class BinarySearchNoRecur { pu

2022-05-04 14:45:07 825

原创 数据结构与算法学习笔记十三--图

1. 图的基本介绍为什么要有图?(^ V ^?)因为线性表局限于一个直接前驱和一个直接后继的关系树也只能有一个直接前驱也就是父节点当我们需要表示多对多的关系时,这里我们就用到了图。1.1 图的举例说明图是一种数据结构,其中节点可以具有零个或多个相邻元素。两个节点之间的连接称为边。1.2 图的常用概念顶点(vertex)边(edge)路径无向图(下图)有向图(下图)带权图(下图)1.3 图的表示方法图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻阶表)

2022-04-29 15:28:32 386

原创 数据结构与算法学习笔记十二--多叉树

1. 二叉树的问题分析二叉树的操作效率较高,但是也存在问题:二叉树需要加载到内存的,如果二叉树的节点少,没有说明问题,但是如果二叉树的节点很多(比如1亿),就存在如下问题:问题1:在构建二叉树时,需要多次进行 i/o操作(海量数据存在数据库或者文件中),节点海量,构建二叉树时,速度有影响。问题2:节点海量,也会造成二叉树的高度很大,会降低操作速度。2. 多叉树与B树多叉树在二叉树中,每个节点有数据项,最多有两个子节点。如果允许每个节点可以有更多的数据项和更多的子节点,就是多叉树(mult

2022-04-28 15:02:30 276

原创 数据结构与算法学习笔记十一--平衡二叉树

平衡二叉树(AVL树)基本介绍平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树,可以保证查询效率较高。具有以下特点:它是一颗空树或他的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。AVL树左旋转思路分析当前树不再是一颗AVL树,且根节点的右子树比较大,所以进行左旋转,使其变为AVL树创建一个新的节点 newNode (以4

2022-04-28 09:43:37 89

原创 数据结构与算法笔记十--二叉排序树

1. 二叉排序树介绍二叉排序树 BST:(Binary Sort(Search)Tree),对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点。比如针对前面的数据(7,3,10,12,5,1,9),对应的二叉排序树为:2. 二叉排序树的删除二叉排序树的删除情况比较复杂,有下面的三种情况需要考虑删除叶子节点(比如:2, 5, 9,12)删除只有一颗子树的节点(比如:1)删除有两颗子

2022-04-27 20:17:32 103

原创 数据结构与算法学习笔记八--堆排序

1. 堆排序基本介绍堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其左右孩子节点的值,称为大顶堆,注意:没有要求节点的左孩子的值和右孩子值的大小关系。每个节点的值都小于或等于其左右孩子节点的值,称为小顶堆。大顶堆举例说明:小顶堆举例说明一般升序采用大顶堆,降序采用小顶堆2. 堆排序基本思想堆排序的基本思想是:将待排序序列构造成一个大顶

2022-04-21 21:33:30 301

原创 数据结构与算法学习笔记七--树结构基础

1.为什么需要树这种数据结构数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可,删除效率也很好)。缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历)数存储方式的分析能提高数据存储,读取的效率,比如利用 二叉排序树(Bin

2022-04-21 09:51:09 489

原创 数据结构与算法学习笔记六--哈希表

1. 哈希表的基本介绍散射表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。2. 哈希表的由来3. 举个例子google 公司的一个上机题:有一个公司,当有新员工来报道时,要求将该员工的信息加入(id,名字。。)当输入该员工的id时,要求查找该员工的所有信息。要求:不使用数据库,速度越快越好=》哈希表(散列)

2022-04-18 09:34:34 90

原创 数据结构与算法学习笔记六---查找算法

1. 查找算法介绍在java中,我们常用的查找有四种:顺序(线性)查找二分查找/折半查找插值查找斐波那契查找2. 线性查找算法2.1 线性查找代码实现public class SeqSearch { public static void main(String[] args) { int arr[] = {1, 9, 11, -1, 34, 89}; int index = seqSearch(arr, 11); if(ind

2022-04-17 15:02:57 91

原创 数据结构与算法学习笔记五--排序算法

排序算法1. 介绍排序也叫排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。2. 排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。3. 常见的排序算法分类4. 算法的时间复杂度度量一个程序执行时间的两种方法事后统计的方法这种方法可行,但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬

2022-04-14 10:35:05 380

原创 数据结构与算法学习笔记四--递归

递归1.概念递归就是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。2. 举个例子public static void main(String[] args) { //通过打印问题,回顾递归调用机制 test(4);}public static void test(int n) { if(n > 2) { test(n - 1); } System.out.println("n=" + n); }先递归调用方法,在

2022-04-10 20:25:12 545

原创 数据结构与算法学习笔记三--栈

栈栈的英文为(stack)栈是一个先入后出(filo)的有序链表栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶 (Top),另一端为固定的一端,称为栈底 (Bottom);根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。出栈(pop),入栈(push)栈的应用场景子程序的调用:在跳往子程序前,会先将下一个指令的地址存到堆栈中,直到子程

2022-04-05 16:29:49 215

原创 数据结构与算法学习笔记二--链表

链表链表是以节点的方式来存储每个节点包含 data 域,next 域:指向下一个节点链表的各个节点不一定是连续存储链表分带头节点的链表 和没有头节点的链表,根据实际的需求来确定。[实践:实现单向链表的增删改查]添加(创建)链表思路先创建应该 head 头节点,作用就是表示单链表的头后面我们每添加一个节点,就直接加入到链表的最后遍历:1.通过一个辅助变量,帮助遍历整个链表第二种方式:需要按照编号的顺序添加:首先找到新添加的节点的位置,是通过辅助变量(指针),通过遍历来搞定

2022-03-31 09:39:01 216

原创 数据结构与算法学习笔记一--数组

1. 线性结构和非线性结构数据结构包括:线性结构和非线性结构1. 线性结构:线性结构作为最常见的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的。链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组、队列、链表和栈。2. 非线性结构非线性结构包括:二维数组、多维数组、广义表、树结构、图

2022-03-25 12:17:15 151

原创 React 虚拟 DOM 和 Diff 算法

虚拟 DOM 和 Diff 算法React 更新视图的思想是:只要 state 变化就重新渲染视图特点:思路非常清晰问题:组件中只有一个 DOM 元素需要更新时,也得把整个组件的内容重新渲染到页面中? nononono理想状态:部分更新,只更新变化的地方。问题:React 是如何做到部分更新的?** 虚拟 DOM 配合 Diff 算法**1. 执行过程初次渲染时,React 会根据初始 state (Model),创建一个虚拟 DOM 对象(树)。根据虚拟 DOM 生成真正的 DOM

2022-01-23 16:03:33 436

原创 React 组件性能优化

1. 减轻 state减轻 state:只储存跟组件渲染相关的数据(比如:count / 列表数据 / loading等)注意:不用做渲染的数据不要放在 state 中,比如定时器 id 等对于这种需要在多个方法中用到的数据,应该放在 this 中2. 避免不必要的重新渲染组件更新机制:父组件更新时会引起子组件也被更新。但这会导致一个问题:子组件没有任何变化时也会重新渲染so 解决方式:使用 钩子函数 shouldComponentUpdate(nextProps, nextState)

2022-01-14 15:35:27 262

原创 React高阶组件

1.概述目的:实现状态逻辑复用采用 包装(装饰)模式比如 手机:获取保护功能 手机壳: 提供保护功能高阶组件就相当于手机壳,通过包装组件,增强组件功能。高阶组件(HOC,Higher-OrderComponent)是一个函数,接收要包装的组件,返回增强后的组件高阶组件内部创建一个类组件,在这个类组件中提供复用的状态逻辑代码,通过prop将复用的状态传递给被包装组件 WrappedComponentconst EnhancedComponent = w

2022-01-12 21:21:29 64

原创 React组件复用概述

React 组件复用概述思考:如果两个组件中的部分功能相似或相同,该如何处理处理方式:复用相似的功能(联想函数封装)复用什么?1. state 2. 操作 state 的方法(组件状态逻辑)两种方式:1. render props 模式 2. 高阶组件 (HOC)注意:这两种方式不是新的 API,而是利用 React 自身特点的编码技巧,演化而成的固定模式(写法)。1. render props 模式1.1 思路分析:思路:将要复用的 stare 和操作 state 的方法封装到一个组

2022-01-12 14:32:48 147

原创 React 组件的生命周期

1. 组件的生命周期概述意义:组件的生命周期有助于理解组件的运行方式、完成更复杂的组件功能、分析组件错误原因等。**组件的生命周期:**组件从被创建到挂载到页面上运行,再到组件不用时卸载的过程生命周期的每个阶段总是伴随着一些方法调用,这些方法就是生命周期的钩子函数钩子函数作用:为开发人员在不同阶段操作组件提供了时机。只有 类组件 才有 生命周期2. 生命周期的三个阶段1. 创建时(挂载阶段)执行时机:组件创建时(页面加载时)执行顺序:constructor()——> rend

2022-01-05 15:51:10 893

原创 props深入(children 属性/props 校验/props 的默认值)

1. children 属性表示组件标签的子节点。当组件标签有子节点时,props 就会有该属性。【children就是一个特殊一点的 props 属性而已。】children 属性与普通的props一样,值可以使任意值(文本、React元素、组件、甚至是函数)/* children 属性*/const App = props => { console.log(props) props.children() return ( <div>

2022-01-04 20:08:42 786

原创 Context 的基本使用

App组件如果要传递数据给 child 组件,有两种方式:使用 props 一层一层组件向下传递使用 Context 跨组件传递数据(比如:主题、语言等)显然! 使用 Context 更加便利使用步骤:调用 React.createContext() 创建 Provider (提供数据)和 Consumer (消费数据)两个组件。const { Provider, Consumer} = React.createContext()使用 Provider 组件作为父节点。&lt.

2022-01-04 14:41:31 351

空空如也

空空如也

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

TA关注的人

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