- 博客(240)
- 收藏
- 关注
原创 redis中set数据类型基本操作
1.saddsadd:将一个或多个元素加入到集合 key 中,自动去除集合key中重复的元素。127.0.0.1:6379> sadd k1 v1 v2 v3 v3(integer) 3127.0.0.1:6379> smembers k1'1) “v2”2) “v3”3) “v1”可以看出重复的v3自动帮我们去除了。2 smemberssmembers:取出该集合的所有值。127.0.0.1:6379> smembers k1'1) “v2”2) “v3”
2022-01-03 00:34:58
798
原创 Vue:插槽的理解与使用
vue插槽问题引入后备插槽具名插槽作用域插槽问题引入 在学习vue插槽的时候我们应当先知道什么是vue的父子组件。那在什么时候会用到插槽呢?当构建页面的时候,我们在父组件中引入子组件,但是引入子组件之后还是无法满足我们的需求,我们还希望在子组件中添加一点东西,这个时候我们就要用到插槽来分发内容。 首先定义一个myslot的子组件<template> <div> <p>我是子组件</p> </div></template
2021-12-20 23:07:23
796
1
原创 @RequestBody实现参数序列化
前端使用 AJAX 的 post 方式请求时,需要对请求参数做序列化处理,否则 SpringMVC 无法接收提交参数。//使用qs模块中的stringify方法实现post提交时的参数序列化this.$axios.post('http://localhost:8080/hello', this.$qs.stringify(user))...在 SpringBoot 中,可以使用 @RequestBody 注解,在服务器端实现 post 提交时的参数序列化处理。这样,前端的 post 请求就可以直接提
2021-10-26 21:43:18
2044
原创 STS创建springboot项目时报错:SocketTimeoutException: connect timed out
解决办法:将Service URL 换成:https://start.aliyun.com
2021-10-26 09:27:18
493
原创 vuecli项目修改端口号
vue项目修改端口号首先在项目根目录建立一个vue.config.js文件然后在vue.config.js文件中写人以下代码module.exports = { devServer: { port: 8088 } }最后重新运行vuecli项目就可以了。
2021-10-04 14:20:59
1119
原创 Mybatis中插入记录获取主键值
在数据库中主键的值是通过自动递增的方式创建的,然而在通过mybatis插入数据之后想获取插入数据的主键值可以通过下面两种方法:方法一:在xml的配置文件中的insert标签中加入<selectKey>标签<insert id="insert"> <selectKey keyProperty="id" resultType="int" order="AFTER"> select LAST_INSERT_ID() </selectKey>
2021-09-19 15:26:52
1692
原创 HashMap和HashTable的区别
HashMap和HashTable的区别1.线程是否安全HashMap是非线程安全的,HashTable是线程安全的,因为HashTable内部的方法基本都经过synchronized修饰。2.效率因为线程安全的问题,HashMap的效率要比HashTable效率高一些。3.对Null key 和Null value的支持HashMap可以存储null的key和value,但null作为健只能有一个,null作为值可以有多个,Hash不允许有null键和null值,否则会抛出空指针异常。4.初
2021-09-16 21:05:22
203
原创 Vue: @blur事件 实现注册用户时检验用户名是否可用
在vue中@blur 是当元素失去焦点时所触发的事件例子:在添加用户的时候,在输入用户名的时候要保证其用户名是唯一的,所有就要输入完用户名的时候,向后端发起请求,后端去查看数据库中是否存在该用户名,如果存在就要提醒用户该用户名已经存在,这个时候就可以用到blur来实现输入完用户名就开始校验。<tr> <td>用户名</td> <td> <input v-model="user.uname" @blur="checkNum()"/>
2021-09-06 18:55:45
3121
原创 java中String,StringBuffer, StringBuilder 的区别
1.可变与不可变。String类中使用字符数组保存字符串,因为有“final”修饰符,所以string对象是不可变的。对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。private final char value[];StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组保存字符串,这两种对象都是可变的。char[] value;2.是否线程安
2021-08-29 22:25:38
156
原创 Vue:路由传参
Vue:路由传参主要介绍params和query方法传参1.params形式传参<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>vue_22</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script
2021-08-29 20:00:51
152
原创 vue:组件之间的通信
vue:组件之间的通信1、子组件获取父组件数据在vue中,组件和组件之间是可以相互通信的,包括父子组件间,兄弟组件间都可以互相通信。1.子组件获取父组件 在vue中,组件实例的作用域是孤立的,默认情况下,父子组件的数据是不能共享的,也就是说,子组件是不能直接访问父组件的数据的。为此,vue给我们提供了一个数据传递的选项prop,用来将父组件的数据传递给子组件。具体使用如下:父组件给子组件传值的步骤:1、在js代码中创建子组件对象时,使用props来设置父组件调用子组件时的属性名(数组);2
2021-08-23 23:30:01
338
1
原创 Vue:watch 监听器
watch 监听器在vue中,watch可以监听数据的改变。监听之后会调用一个回调函数。回调函数又两个参数1.更新后的值(也就是新值)2.更新前的值(旧值)1.简体基本数据类型下面使用watch来监听商品数量的变化。并且设置如果商品数量小于1,就重置成上一个值。<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <scr
2021-08-23 22:13:54
185
原创 Vue:过滤器
过滤器:是对即将显示的数据做进一步的筛选处理,然后进行显示,值得注意的是过滤器并没有改变原来的数据,只是在原数据的基础上产生新的数据。全局过滤器下面定义一个全局过滤器,用于在数据前加上大写的VUE。需要注意的是,全局过滤器定义必须始终位于Vue实例之上,否则会报错。<div id="app"> {{message | toAdd}}</div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"&
2021-08-21 11:16:18
368
原创 Vue: v-if 和 v-show的区别
v-if当v-if的值为false时,网页中将不会对此元素进行渲染<div id="app"> <div v-if="isShow">DOM元素的样式绑定</div></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script> let vm = new Vue({ el: '#ap
2021-08-21 10:11:15
202
原创 MVVM框架
在认识MVVM框架前我们要先了解一下MVC架构1.MVC架构Model:数据模型,用来存储数据View:视图界面,用来展示UI界面和响应用户交互Controller:控制器,监听模型数据的改变和控制视图行为、处理用户交互优点:耦合性低;重用性高;生命周期成本低;部署块;可维护性高;有利软件工程化管理。2.MVVM框架MVVM框架分为三个部分:分别是M(Model,模型层 ),V(View,视图层),VM(ViewModel,V与M连接的桥梁,也可以看作为控制器)M:模型层,主要负责
2021-08-21 09:32:00
1423
原创 Java 中的异常处理
1、异常简介 我们在进行程序设计和运行过程中,发生错误是不可避免的。尽管Java语言的设计便于写出整洁、安全的代码,并且程序员也会尽量地去避免错误的发生。但错误的存在仍然不可避免,有时甚至会使程序被迫终止。为此,Java提供了异常处理机制来帮助程序员处理可能出现的错误,保证了程序的健壮性2、异常的继承树在 Java 中,所有的异常都有⼀个共同的祖先 java.lang 包中的 Throwable 类。Throwable 类有两个重要的⼦类 Exception(异常)和 Error(错误)。
2021-08-19 22:10:36
314
1
原创 Java中的final关键字
final 关键字主要⽤在三个地方:变量、方法、类。1.用来修饰变量如果是基本数据类型的变量,则其数值⼀旦在初始化之后便不能更改。如果是引⽤类型的变量,则在对其初始化之后便不能再让其指向另⼀个对象。比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。2.用来修饰方法其任何继承类都不能重写该方法。3.用来修饰类表明该类成为最终类,这个类不能被继承。...
2021-08-18 22:46:08
133
原创 java中“==“和equals的区别
"=="操作符的作用对于==,比较的是值是否相等如果作用于基本数据类型的变量,则直接比较其存储的 值是否相等,如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。equals() :的作用它的作⽤也是判断两个对象是否相等。但它⼀般有两种使⽤情况:情况 1:类没有覆盖 equals() ⽅法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。情况 2:类覆盖了 equals() ⽅法。⼀般,我们都覆盖 equals() ⽅法来比较两个对象的内容是否相
2021-08-17 22:37:58
144
原创 红黑树原理
前提具备知识二叉查找树二叉查找树 一棵二叉查找树是一棵二叉树,每个节点都含有一个Comparable的键(以及对应的值)。每个节点的键都大于左子树中任意节点的键而小于右子树中任意节点的键。平衡二叉树平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维
2021-08-08 20:30:46
593
原创 排序算法:桶排序(java实现)
桶排序是计数排序的升级版。桶排序 (Bucket sort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序。桶排序利用了函数的映射关系把数据分配到桶里,高效与否的关键就在于这个映射函数的确定。算法思路根据待排序集合中的数据,确定映射规则和桶的数量;遍历待排序集合,将每一个元素根据映射规则,移动到对应的桶中;对每一个桶中元素进行排序。*依次输出每个桶中的数据,得到整个有序的集合。步骤:1.找出待排序数组中的最大值max、最小值min2.桶的数量为(max
2021-08-01 21:03:37
550
原创 排序算法:计数排序(java实现)
计数排序是一种非比较排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。int[] a = {5,3,5,8,2,10}对数组a进行计数排序数组中最大的数是10,所有我们需要建立一个大小为11的计数数组计数数组中每一位的大小就是该数组下标在a数组中出现的次数。int[] count = {0,0,1,1,0,2,0,0,1,0,1}最后只需要遍历一遍统计数组,更新一下原数组a就完成了计数排序im
2021-07-31 21:24:25
499
原创 排序算法:二分归并排序(java实现)
归并排序(Merge Sort):是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用。算法思路把长度为n的输入序列分成两个长度为n/2的子序列;对这两个子序列分别采用归并排序;将两个排序好的子序列合并成一个最终的排序序列。package sort;import java.util.Arrays;public class MergeSort { public static void main(String[] args) { int[] arr
2021-07-31 20:48:52
932
原创 排序算法:堆排序(Java实现)
import java.util.Arrays;public class Test_02 { public static void main(String[] args) { int[] arr = { 27, 46, 12, 33, 49, 27, 36, 40, 42, 50, 51 }; heapSort(arr); System.out.println(Arrays.toString(arr)); } public static void heapSort(int[
2021-07-29 23:43:47
91
原创 排序算法:选择排序(java实现)
选择排序是一种简单直观的排序算法。算法思想:以由小到大排序为例,首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。时间复杂度:O(n^2) public static void selectionSort(int[] arr) { for(int i=0; i<arr.length; i++) { int index = i; for(int j=i+1; j&
2021-07-29 22:40:44
297
原创 排序算法:希尔排序(java实现)
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。算法基本思想:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。import java.util.Arrays;public class Test { public stati
2021-07-29 22:30:14
100
原创 排序算法:插入排序(java实现)
插入排序思想:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。 时间复杂度为:O(n^2)代码实现:import java.util.Arrays;public class Test { public static void main(String[] args) { int[] arr = {7,6,9,3,1,5,
2021-07-29 21:16:44
116
原创 排序算法:快速排序(java实现)
快速排序(Quicksort)是对冒泡排序算法的一种改进。时间复杂度为:nlogn快速排序算法的排序流程如下:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。import java.util.Arrays;public class Test_06_快速排序 { public static void main(String[] args) { int[] arr = {5
2021-07-29 20:55:22
153
原创 排序算法:冒泡排序(Java实现)
冒泡排序是一种简单的排序算法。时间复杂度为:O(n^2) 冒泡排序每趟都会把最大的元素排到后面代码实现:public class Test { public static void main(String[] args) { int[] a = {9,8,5,4,2,0}; bubbleSort(a); System.out.println(Arrays.toString(a)); } public static void bubbleSort(int[] a) { for
2021-07-29 20:52:34
104
原创 IDEA每次新建项目都要重新配置maven的解决方案
每次重新创建一个maven项目,之前相关的配置都会被初始化,每次都要重新配置,十分麻烦解决办法:配置的时候选 File–>OtherSetting–> New Project Settings
2021-07-21 21:59:33
1274
原创 Idea maven项目不能新建package和class的解决方法
当新建的maven项目不能新建package时候,我们需要修改一下目录的性质,改为源文件。我们只需要右键 --> new --> Mark Directory as --> Sources Root 即可。****
2021-05-07 19:49:30
293
原创 传送门
思路:这道题可以用并查集来做,首先按时间先排序。然后循环遍历,看A和B两个城市是否联通,如果不连通就Union(A,B)。#include <bits/stdc++.h>using namespace std;int pre[100010];int n,m;void init(){ for(int i=0;i<m;i++){ pre[i] = i; }}struct node{ int a,b; int time;};bo.
2021-04-12 21:43:07
222
原创 小明的作业(蓝桥杯)
#include <bits/stdc++.h>using namespace std;int main(){ int cnt_w = 0, cnt_e = 0; string s="iawaswapwauawhawdwafwanbiopwanivgbikvblvbwawawawvolyuvgbololvolgbyolgyowagbolgawgboplwawaolgyolwaogblwaygbowawagwabwayawopwawagyowabwaowapjwapc..
2021-04-12 20:18:13
218
原创 mysql中设置时区的方法
方法一:通过cmd命令修改例如设置为 东八区首先在cmd命令中输入mysql -hlocalhost -uroot -p 之后再输入密码连接上数据库之后再输入show variables like'%time_zone';显示 SYSTEM 就是意味着没有设置时区最后只需要输入输入set global time_zone = '+8:00';就可以成功的将时区设置成东八区了方法二:修改配置文件找到my.ini, 在mysqld 下增加 default-time-zone = ‘+8:00
2021-04-05 14:09:13
781
原创 xml中注释快捷键
在 IntelliJ IDEA 中编辑xml文件,先要对其进行注释的话可以直接用ctrl+/ 快捷键与之对应的取消快捷键的方式就是用ctrl+shift+/
2021-04-05 13:33:10
5259
原创 xml中写中文注释报错解决
最近练习mybatis的demo列子时候报错,最后发现是因为在xml文档中用到了中文注释com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。解决办法:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapp
2021-03-30 19:27:13
536
原创 Intellij idea 的maven自动下载所需的包
在配置一个maven项目中需要导入一些jar包,在idea中可以设置自动下载并导入所需要的包,具体方法如下所示:首先打开setting 找到Maven中的importing,将图中三个选项勾选上就可以实现了。
2021-03-29 20:34:56
870
原创 Linux权限管理命令
第一讲 权限管理命令chmod这一部分主要说明一下如何修改文件或者目录的权限。chmod [{u,g,o,a}{+,-,=}{r,w,x}] [文件或者目录]u :所有者g :所属组o :其他人a :所有用户 例如:chomd g+x,o+r /tmp/testfile就是把testfile文件的所有组增加执行权限,其他人增加读权限chomd a=rwx /tmp/testfile就是testfile文件的所有用户增加读写执行权限权限位的数字表示:chmod [rwx的和,rwx的和
2021-03-03 21:13:55
226
1
原创 pip下载python第三方库太慢,一次换源永久解决问题方法
平常我们用pip下载安装第三方库的时候总是感觉速度很慢,而且经常出现失败的现象,于是我们可以通过换源来解决办法。linux下运行命令vi ~/.pip/pip.confwindows:%HOMEPATH%\pip\pip.ini然后写入如下内容并保存 [global] trusted-host = mirrors.aliyun.com index-url = https://mirrors.aliyun.com/pypi/simple具体方法如下:在换源的时候不一定要用阿里的
2021-02-16 22:01:46
344
原创 pip升级失败后解决办法
在cmd命令界面中升级pip失败之后pip也无法使用了显示ModuleNotFoundError: No module named ‘pip._internal.cli’这个坑踩过无数次了,解决办法只需要两步就行。1.首先执行第一条命令python -m ensurepip当提示Successfully installed …则表示执行成功;2.然后再执行第二条命令python -m pip install --upgrade pip总之,只需要按顺序执行两个命令就可以解决改问题pytho
2021-02-16 21:52:10
272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人