- 博客(24)
- 收藏
- 关注
原创 react生命周期的理解以及新旧版本的区别
1、生命周期?何为生命周期?在我看来,就是事物从出生到死亡的过程中会发生一系列的事情。比如人类,出生之前,出生之后,死亡之前和死亡之后等时刻。在出生之前,父母赐予我们名字。死亡之前,我们交代遗言。我们在生命的路程中,在合适的时机做合适的事情。那么react 也为组件提供了这些时机。 比如 组件将要挂载时。 组件将要被卸载时。等等2、旧版本生命周期总结:1. 初始化阶段: 由ReactDOM.render()触发---初次渲染 1. constructor() 2. compone
2022-05-04 21:20:01
597
原创 webpack详细配置
1、entry entry: 入口起点 1. string --> './src/index.js' 单入口 打包形成一个chunk。 输出一个bundle文件。 此时chunk的名称默认是 main 2. array --> ['./src/index.js', './src/add.js'] 多入口 所有入口文件最终只会形成一个chunk, 输出出去只有一个bundle文件。 --> 只有
2022-04-23 09:23:55
549
原创 webpack生产环境配置以及开发环境配置
1、开发环境/* 开发环境配置:能让代码运行 运行项目指令: webpack 会将打包结果输出出去 npx webpack-dev-server 只会在内存中编译打包,没有输出*/const { resolve } = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = { entry: './src/js/index.js',
2022-04-17 14:59:05
509
原创 回文子串啊
题目:给定一个字符串,统计并返回 回文子串 的数目。示例:输入:s = "abc"输出:3解释:三个回文子串: "a", "b", "c"输入:s = "aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"代码:class Solution { public int countSubstrings(String s) { char[] ch = s.toCharArray(); int num
2022-04-03 16:15:23
227
原创 快速排序理解
思路从数组中取一个数,称之为基数。遍历数组,将比基数大的放在它右边,比基数小的放在它左边。遍历之后,原数组被分为左右两个区域。将左右两个区域视为两个数组,重复前面两个步骤,知道排序完成,快速递归框架public static void quickSort(int[] arr) { quickSort(arr, 0, arr.length - 1);}public static void quickSort(int[] arr, int start, int end) { //
2022-03-13 16:06:35
230
1
原创 插入排序哈
思想:和打扑克的思想一样,我们抓拍的同时去给牌排序,每一次摸一张牌,就将它插入手上已有的牌中最合适的位置,逐步完成整改排序。插入排序的两种写法交换法:在新数字插入过程中,不断与前面的数字交换,知道找到自己合适的位置。移动法,在新数字插入过程中,前面的数字不断往后挪出位置,当新数字插入找到自己的位置之后,插入一次即可。交换法插入排序直接上代码class Solution { public int[] sortArray(int[] nums) { insertSort
2022-03-12 09:33:49
1079
原创 旋转矩阵啊
题目描述:给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。要求:不使用额外的空间,在原数组上修改示例:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]-------------------分割---------------------给定 matrix =[ [ 5, 1,
2022-03-10 09:27:45
205
原创 数组找峰值(先增后减)
题目解释分析解释: 现在有一个数组,前边递增,后边递减。寻找最大值。**分析:**说到底,就是找一个数tar,找这个数的特点是,tar - 1 < tar >tar +1。所以,利用这个条件,就不难想到以下思路。一:利用 tar > tar+1。思路: for循环遍历数组,遇到tar > tar+1 时。便找到了最大值。 public int findPeakElement(int[] nums) { for(int i = 0; i<nums.l
2022-03-04 17:24:07
837
原创 选择排序极其优化
选择排序思想:双重for循环遍历数组,在每一轮比较中,找出最小元素的下标,将最小元素换到“首位”。public static void selectionSort(int[] arr) { int minIndex; for (int i = 0; i < arr.length - 1; i++) { minIndex = i; for (int j = i + 1; j < arr.length; j++) { if
2022-02-19 20:17:00
418
原创 冒泡排序以及优化思路
冒泡排序以及优化一、思路正常思路: 一边比较一边向后两两交换,将最大值/最小值冒泡到最后一位。优化一: 使用一个变量记录当前轮是否发生交换,如果未发生交换,则表示已经排好序。优化二: 除了比较使用变量记录当前轮次是否发生交换外,再使用一个变量记录上次发生交换的位置,下一轮排序时到达上次交换的位置就停止比较。正常思路代码public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i
2022-02-12 10:38:58
2020
原创 前 n 个数字二进制中 1 的个数
题目说明给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例说明输入: n = 2输出: [0,1,1]解释: 0 --> 01 --> 12 --> 10思路梳理从0向后面推十进制数 —— 2 进制数 —— 1的个数 0 —— 0 —— 0 1 —— 0 —— 1 2 —— 10 —— 1 (2是1的二倍,相当于1左移1位,所以1的个数与1相同) 3 —— 11 —— 2 (不存在 3/
2022-01-16 19:44:23
323
原创 树的遍历—数据结构
本周做了一部分关于树的算法,在这里也总结一下遍历数的四种方法。1.先序遍历 (先根,再左,后右)2.中序遍历 (先左,再根,后右)3.后序遍历 (先左,再右,后根)4.层序遍历 (从每层的左边开始遍历,我自己没有用过)一、来一道题。1.先序结果:FCADBEHGM2.中序结果:ACBDFHEMG3.后序结果:ABDCHMGEF4.层序结果:FCEADHGBM二、递归实现public static void Tree(TreeNode root){//先写出递归的结束条件 if(ro
2021-11-21 17:25:15
450
原创 移动零——双指针
今天做了一道算法题,刚开始没有思路,直到看到一个点赞超多的评论,看了一遍,逻辑很简单,第一次没看懂,然后去仔细推了一下,结果惊艳到我了!!题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。分析这个题目是放在双指针模块需要做的,双指针?那我把两个指针放在哪呢?前前,后后,前后?没有思路,不知道用双指
2021-10-18 21:09:28
168
原创 Promise的作用
promise是什么?主要用于异步计算,可以将异步操作队列化,将异步操作以同步的操作的流程表达出来,按照期望的顺序进行执行。我的问题需求://调用第一个接口获得返回值crudDept.getAlloVege(Cookies.get('deptId')//调用第二个接口获取返回值crudDept.getNotAlloVege(Cookies.get('deptId')//获取两个接口返回值的合并this.data = dataC.concat(dataN)出现问题如果什么都不操作,
2021-09-19 11:01:27
267
原创 进击吧!阶乘 —— Java—BigInteger
问题描述输入描述多组测试数据,每个测量数据输入一个整数N (0≤N≤10000) (最后输给了这个N)输出描述每组用一行输出N的阶乘刚开始的思路定一个求阶乘的方法。然后while(sc.hasNext())里边调用,不就求出来每一个数的阶乘了。可莉平A,简单搞定。说干就干,代码如下:定义一个计算一个数的阶乘的方法 public static int countJ(int n) { if(n==0){ return 0; }
2021-08-19 11:09:08
325
原创 前端项目部署
前端部署为什么使用nvm我们可能需要在服务器部署多个前端项目,而不同的项目所使用的node版本又是不一样的,不同版本的node的兼容性是不一样的。这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,而nvm就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换。项目根目录1.使用Dockerfile构建镜像# 依赖centos环境FROM centos:latest#安装vim、git和nvm环境RUN yum -y update \ &am
2021-07-25 11:23:31
412
原创 Spring——IOC(控制反转)
一、IOC容器 1、什么是IOC(控制反转) (a)把对象创建和对象之间的调用过程,交给Spring进行管理 (b)使用IOC目的:为了降低耦合度 2、IOC底层 (a)xml解析、工厂模式、反射 3、Spring提供的IOC容器实现的两种方式(两个接口)( a)BeanFactory接口:IOC容器基本实现是Spring内部接口的使用接口,不提供给开发人员进行使用(加载配置文件时候不会创建对象,在获取对象时才会创建对象。) (b)ApplicationCon
2021-05-16 11:04:36
118
原创 Edge浏览器安装Tampermonkey插件
一:打开拓展程序二:点击获取拓展三:搜索tampermonkey,并获取四:确定添加程序(右上角出现logo)然后此页面即可关闭。(可以认为刚刚下载的东西是脚本的容器)下边,我们安装真正的脚本。五:记住这个网站:https://greasyfork.org/zh-CN/(有时访问较慢,等着就是最好的办法)然后搜索你需要安装插件的程序(超星,智慧树.....)六:然后找到你需要安装的脚本,点击即可七:安装脚本八;检查安装(lo
2021-04-14 20:44:09
11079
2
原创 mysql 德鲁伊连接池连接
Mysql的连接池配置方法先去下载两个包,导入bin中。在javaweb项目中的src里面创建一个后缀为:properties 的File文件,然后在此文件页面中写下一下代码:username=rootpassword=123456maxActive=100maxWait=10000maxIdle=1url=jdbc\:mysql\://localhost\:3306/stuDdriverClassName=com.mysql.jdbc.Driver在创建一个util包,创建D
2021-04-03 20:37:14
400
原创 MySQL sql常用语句
一 、常用操作数据库的命令1.show databases; 查看所有的数据库2.create database test; 创建一个叫test的数据库3.drop database test;删除一个叫test的数据库4.use test;选中库 ,在建表之前必须要选择数据库5.show tables; 在选中的数据库之中查看所有的表6.create table 表名 (字段1 类型, 字段2 类型);7.desc 表名;查看所在的表的字段8.drop table 表名;
2021-04-03 20:24:52
556
原创 vue组件之间传值—基础方法
前言vue的组件传值分为三种方式:父传子、子传父、非父子组件传值引用官网的一句话:父子组件的关系可以总结为 prop 向下传递,事件向上传递父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息,如下图所示:下面我们就开始用代码(一言不合就上代码)详细的介绍vue组件传值的三种方式1、父传子子组件的代码:<template> <div id="container"> {{msg}} </div>...
2021-04-03 20:16:01
278
转载 Linux常用命令
Linux常用命令1.查看目录结构命令ls(list)功能:列出目录内容格式:ls[参数][文件或目录]-a或--all所有文件和目录。注意隐藏文件、特殊目录、以“.”开头的和以“..”开头的-l使用详细格式列表-t用文件和目录的更改时间排序-r反向排序--help在线帮助常用:ls-l列出当前目录下的文件信息(此命令很常用,简化的格式为 ll)ls-al列出当前目录下的文...
2021-03-15 16:30:18
292
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人