自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL-字符集与VARCHAR指定长度的关系

当我们新建表单时,总会有VARCHAR(X)这样的字段类型,之前学习中了解到,这里的X代表的是字符数目,即有多少个字符,而不是字节或其他单位的标识。例如VARCHAR(10),代表的是这个字段最多存储十个字符:无论中文、英文(不同字符集使用的字节数不同)都没有关系,就是10个字符。那么VARCHAR(10),存储十个字符,会根据所选择的不同字符集而产生不同的影响吗?gbk编码,VARCHAR(10)utf8编码,VARCHAR(10)结论是:没有影响,在MySQL8.0.25及其以上的版本中,

2022-07-10 16:30:32 328

原创 Docker JavaWeb镜像制作

为了项目能够快速的部署到不同的机器,所以尝试将Web项目打包制作为镜像,然后通过Docker发布、部署;第一步 Maven打包SpringBoot项目直接通过Maven进行工程编译、打包即可;第二步 Jar包和Dockerfile首先撰写Dockerfile:// JDK环境,也有人写# FROM java:8// 这里不写FROM java:8是因为在这种写法下我的Docker容器无法运行// 1.错误中包含signal 11,暂未清楚是什么原因;可能与mac系统内核有关FROM open

2022-03-03 14:21:33 392

原创 关于前辈RPC学习的经验分享:我的DedSec RPC

参考:《一起写个dubbo》完成的个人RPC框架,虽然确实还是什么都是不懂的,正在恶补知识;

2021-12-14 23:37:01 376

原创 Nacos——下载、解压、配置

下载nacos的github发行版本下载地址解压MacOS下:tar -xvf nacos-server-2.0.3.tar.gz测试在配置之前,可以通过启动nacos:sh /bin/startup.sh -m standalone在浏览器输入访问:localhost:8848/nacos账号密码都是默认的nacos;配置安装MySQL,建立数据库:CREATE DATABASE nacos在MySQL客户端输入,初始化nacos数据库:SOURCE /${你的目录}

2021-11-11 15:45:34 932

原创 MacOS下环境变量配置

安装什么?我在MacOS下尝试安装MySQL、Maven等工具时,需要配置环境变量,有如下需要注意的点。配置环境变量输入下面指令,打开用户目录下的这个文件;sudo vim ./bash_profile配置对应的环境变量,拿Maven举例:export MAVEN_HOME=/Users/liushengwei/devtool/apache-maven-3.8.1export PATH=$PATH:$MAVEN_HOME/bin对于其他的环境变量,继续往里面添加即可;(MySQl等…)

2021-06-14 23:24:02 223 2

原创 面试——帆软,后台研发,一面面经

面试——帆软,后台研发,一面面经概览涉及到的知识:语言:Java容器(回答的不够细致)Java并发JVM类加载机制(没有说出来)网络:HTTP/HTTPS,对称加密与非对称加密对称加密算法(没有说出来)前后端分离项目的跨域问题,samesite字段,以及chrome对于跨域的处理方式数据库:事务:定义、ACID主键的作用索引、索引低层的数据结构(说到了b,b+树)(没有说出b,b+树)操作系统:银行家算法死锁项目:如何解决cookie,session跨

2021-05-12 15:46:23 1744 5

原创 算法——字典序topK问题

概述输入一个字符串数组,统计里面每个字符串出现的次数,然后按“字典序”返回出现次数最多的前K个字符串。要求输出为两列k行:解释:对于输入实例2,1出现了两次,且字典序在2之前,所以:[[“1”,“2”],[“2”,“1”]]第一列代表出现的字符串;第二列代表出现的次数。思路1.用一个HashMap统计每个字符串出现的个数。Merge方法;2.将HashMap中的KeySet提取出,然后按照:出现次数字典序排序两要求排序;出现次数排序的优先级高于字典序,当且仅当出现次数一致的情况下

2021-04-24 11:27:24 227

原创 Linux Python编译错误:SyntaxError: Non-ASCII character ‘\xe5‘

原因该py文件中有中文等类型的字符(将Linux的数据库字符集改为utf-8,出现了这个问题,在etc/my.cnf中)解决在py文件开头加上:# -*- coding: UTF-8 -*-很无语的一个问题,导致我打卡失败了T_T

2021-04-23 19:29:49 487

原创 Linux下“批处理”脚本的写法

①编辑shell脚本使用下面命令vim x.sh②在vi模式下安字母I后开始写内容开头必须要写#/bin/bash#/bin/bash#把你的全部命令谢进去cd /xxxx/xxxxcommands...③按esc键退出编辑模式 按shift + : 后 输入wq 回车④附加可执行权限chmod +x x.sh //x为文件名⑤执行脚本./x.sh...

2021-04-14 19:31:04 1578

原创 算法——构建二叉树(给定前序、中序遍历)

概述二叉树有三种遍历方式,众所周知通过给定的其中两种序列可以唯一确定一个二叉树。这里给定前序和中序。思路对于前序和中序我们可以观察到:(摘自leetcode题解)按照这种思路,算法的大致雏形为:给定当前根结点在preorder的下标,以及当前根结点在inorder序列中的左边界和有边界。如:preoder:[3,9,2,1,7],inorder:[9,3,2,1,7],root = 2,即preorder[root] = 2,那么其在inorder的左右边界为:[3,4]。left &

2021-03-30 14:48:02 303

原创 Linux sqlite3外部库和python内两个版本,如何更新python内?

Linux sqlite3外部库和python内两个版本,如何更新python内?问题具体描述我需要升级python 3使用的sqlite3版本,但是似乎没有明确的答案,而且我不了解是什么决定了python使用的sqlite3版本。我正在安装python 3.6.4的情况下运行CentOS7。CentOS安装了sqlite版本3.7.17,我将其升级到3.23.1,以为python也将使用此never版本的sqlite。import sqlite3print(sqlite3.sqlite_versi

2021-03-27 15:29:35 736

原创 算法——最长公共子串(一张图片看懂)

算法——最长公共子串(一张图片看懂)概述给定str1与str2两个字符串,找出其中最长的公共子串。思路用str1和str2建立一个二维矩阵,很轻易的就能从中发现关系。矩阵的大小为:int[][] dp = new int[str1.lenth()+1][str2.length()+1]这是为了方便substring的操作而已。下面给出图示方便理解:代码public class 最长公共子串 { /** * longest common substring *

2021-03-24 16:19:55 3861

原创 算法——有环链表的入口结点

算法——有环链表的入口结点概述链表存在环,你要找出它的入口结点,能控制空间复杂度为最低吗?言下之意不要用数组、集合这类容器。思路快慢指针判断有无环记录相遇结点meet慢指针回到head,快指针定位meet,速度都设为1,下次相遇即为入口点。代码public class Solution { public ListNode detectCycle(ListNode head) { ListNode meet = hasCircle(head); if

2021-03-20 10:27:18 57 1

转载 Linux下升级Python3所需要注意的问题

Linux下升级安装Python-3.6.2版本本文主要介绍在Linux(CentOS)下将Python的版本升级为3.6.2的方法众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的,但是linux中默认安装的python一般是2.6和2.7版本的,要是使用linux下的python就很有必要升级一下进入正题1.检查确认系统的相关信息[root@zstest1 ~]# cat /etc/redhat-releaseCentOS re

2021-03-09 19:30:34 201

原创 Python OpenCV 批量处理图片,error: (-215:Assertion failed) !ssize.empty() in function ‘cv::resize‘

error: (-215:Assertion failed) !ssize.empty() in function ‘cv::resize’这个错误的多数原因是因为图像路径的错误,例如你某些手打的图像名称,是有可能出错的,多了“,” “。”等…

2020-12-09 17:04:34 941

原创 SpringBoot 问题 —— No converter found for return value of type

SpringBoot 问题 —— No converter found for return value of type我的原因是在用json格式返回对象到前端的时候,这个对象没有定义他的getter 和 setter 方法,加上之后就可以返回对应的json格式了

2020-11-23 15:47:27 262

原创 Idea打包运行错误,用Idea自带maven打包SpringBoot项目

Idea打包运行错误,用Idea自带maven打包SpringBoot项目idea直接打包SpringBoot项目成jar,然后运行该jar包会产生错误,说spring.factory啥的配置文件不在jar中。网上很多解决方法,不好操作。所以干脆用自带Maven打包。但是自带Maven在打包的时候,卡在了downloading一堆依赖的地方。经过调查是发现Idea自带的Maven没有配阿里云镜像。复制这个路径,看看在这个目录下有没有setting文件,没有的话,就在idea安装目录下找Maven

2020-11-20 22:28:02 1154

原创 Cannot autogenerate id of type java.lang.Integer for entity

利用mongodb增加信息的时候出现了标题的报错信息org.springframework.dao.InvalidDataAccessApiUsageException: Cannot autogenerate id of type java.lang.Integer for entity of type com.zsf.spider.model.Article! at org.springframework.data.mongodb.core.EntityOperations$MappedEntit

2020-11-17 10:47:52 980 1

原创 数据结构与算法---二叉树的周游

数据结构与算法—二叉树的周游二叉树数据类型的定义:/*Definition for a binary tree node.*/public class TreeNode { int val; //结点数据 TreeNode left; //左孩子 TreeNode right; //右孩子 TreeNode() {} //无参的构造方法 //有参的构造方法 TreeNode(int val) { this.val = val; } TreeNo

2020-11-01 10:08:08 869

原创 数据结构与算法---动态规划学习之一

数据结构与算法—动态规划学习之一1. 什么是动态规划?动态规划是求解**“最优解”**的一种数学方法。通常应用于一类具有如下特征的问题:虽然是大问题,但是可以拆解为小问题小问题同样存在更小的问题有一些**“原子”问题**,即那些不可再分的问题,通常是动态规划中的**“边界条件”**2. 如何求解动态规划...

2020-10-29 21:21:57 181

原创 Python——自动签到脚本

Python——自动签到脚本技术参考:点此跳转如果写代码是为了干坏事,那将动力无穷。业务分析:1. 打卡 selenium 实现具体的可以看看 技术参考链接里大佬的具体实现思路def AutoSignIn(user_root,user_password): root = user_root password = user_password url = 'http://my.hhu.edu.cn/login.portal' chromedriver_path = "

2020-10-10 23:52:41 848 2

原创 Android 开发遇到的一些问题

Android 开发遇到的一些问题1. gradle下载问题:https://services.gradle.org/distributions/这是一个gradle的合集,基本各种都有。2. 老旧工程导入之后出现的依赖问题如果在SDK Manager里找不到 Support Repository 去安装缺少的依赖,那么你可以通过:老旧工程SDK文件夹下的 对应文件拷贝到现在项目里。直接删除那个依赖 似乎也没问题3. 事件监听器、绑定控件导致的APP闪退检查是否绑定错了控件不同的A

2020-10-09 19:31:02 92

原创 数据结构与算法---复习:冒泡排序 快速排序

数据结构与算法—复习:冒泡排序 快速排序/** * 程序说明:复习 冒泡排序 快速排序 */#include <stdio.h>#include <malloc.h>struct RecordNode { int key; //排序关键码 char info; //记录信息}; //“记录”类型typedef struct RecordNode* PRecordNode;struct SortObject{ int n;

2020-08-26 23:31:51 131

原创 数据结构与算法---复习:直接选择排序 堆排序

数据结构与算法—复习:直接选择排序 堆排序/** * 程序说明:复习 直接选择排序 */#include <stdio.h>#include <malloc.h>struct RecordNode { int key; //排序关键码 char info; //记录信息}; //“记录”类型typedef struct RecordNode* PRecordNode;struct SortObject{ int n; /

2020-08-26 11:54:50 122

原创 数据结构与算法---复习:插入排序、二分插入排序、希尔排序

/** * 程序说明:复习 树的父指针表实现方式 树的周游 */#include <stdio.h>#include <malloc.h>/** * 树 结点类型 */struct ParTreeNode{ char info; //结点信息 int parent; //父结点位置};/** * 树类型 */struct ParTree{ int MAXNUM; //当前可存放最大结点数 int n; //当前存放结

2020-08-25 15:51:29 93

原创 数据结构与算法---复习:树 父指针表示法

数据结构与算法—复习:树 父指针表示法/** * 程序说明:复习 树的三种实现方式 树的周游 */#include <stdio.h>#include <malloc.h>/** * 树 结点类型 */struct ParTreeNode{ char info; //结点信息 int parent; //父结点位置};/** * 树类型 */struct ParTree{ int MAXNUM; //当前可存放最大结点数

2020-08-17 16:05:58 1173

原创 数据结构与算法---复习:最优二叉树 哈夫曼算法

数据结构与算法—复习:最优二叉树 哈夫曼算法手画很简单,代码则需要多考虑/** * 程序说明:复习 最优二叉树(哈夫曼树) 哈夫曼算法 */#include <stdio.h>#include <malloc.h>/** * 定义一个非常大的整数 */int MAXINT = 999999999;/** * 哈夫曼树 结点结构 */struct HtNode{ int ww; //该点到带权外部路径长度的值 int parent,ll

2020-08-12 17:06:13 346

原创 数据结构与算法---复习:堆 优先队列

数据结构与算法—复习:堆 优先队列优先队列的精髓:插入算法:该算法从优先队列的序列去观察,比较直观。首先把要插入的元素放在队尾temp里。从队列的最后一个元素,逐次向前寻找父节点,空位随之移动,当到达队头,或者当前元素小于temp元素时,即可插入。删除算法:删除最小元素,也就是最头的元素。当我们利用(当前元素数量)-1 这样的操作删除元素后,最后一个元素便被排空了出来,所以主要任务便是安排最后一个元素的落点。从队头开始,用两个指针,分别指向父结点和子结点,当子结点未到达队尾,循环条件成立。

2020-08-12 16:19:09 80

原创 数据结构与算法---复习:顺序表字符串的KMP算法实现

数据结构与算法—复习:顺序表字符串的KMP算法实现首先感叹一下KMP算法中求解next数组的算法之精妙:int* findNext(PSeqString s){ int* next = (int*)malloc(sizeof(s->n)); //分配适合大小的next数组空间 int i = 0 , k = -1; //初始化开始的值 next[0] = -1; //next[0] 一定是 -1 有些地方写的是 0 while(i < s->n -

2020-07-20 22:00:00 267

原创 数据结构与算法---复习:字符串(顺序表)

数据结构与算法—复习:字符串(顺序表)/** * 程序说明:顺序表实现字符串 * 1.创建一个空的字符串 * 2.创建一个 */#include <stdio.h>#include <malloc.h>/** * 字符串类型的定义,与顺序表一致,替换了其中DataType */struct SeqString{ int MAXNUM; //字符串最大长度 int n; //当前字符串长度 char* c; //字符串内容数组};

2020-07-19 22:04:34 1298

原创 数据结构与算法---复习:线性表(链表形式)

数据结构与算法—复习:线性表(链表形式)各种方法是可以巧妙利用的,例如,原来在链表中的删除操作,需要指定p,q两个指针,一个指向当前元素,一个指向之前元素,当 当前元素发现了要删除的元素时,之前元素即可执行地址调换的操作,删除结点,本程序中,将寻找前驱结点写成了一个方法,同时写了根据数据值,找到结点的方法,利用这两个方法,可以很直观的写出删除操作。/** * 程序说明:线性表的链接实现 * 1.创建空链表 * 1.5 .增加链表长度,设置缺省值0 * 2.判断链表是否为空 * 3.求单链表中某

2020-07-14 16:29:04 129 1

原创 数据结构与算法---复习:尤瑟夫问题 线性表解决

数据结构与算法—复习:尤瑟夫问题 线性表解决在这里就不概述什么是尤瑟夫问题了,一般的数据结构教材里都有这道题。下面给出关于本问题的线性表解法。解题方式模拟报数:这种方式更适合于单循环链表,用一个计数器记下当前报数的大小,再用一个指针指向规定的报数起点。循环删除链表直到链表为空。因为是循环链表所有操作方便。这种方式的复杂度经过计算是O(n * m);推演数列:通过写出一个简单数列的报数结果,并且给出对应的数组下标,可以容易的推理出下标与报数最大值还有当前桌子上人的总数的关系。即:(当前下标+报数目标

2020-07-14 13:42:42 169

原创 数据结构与算法---复习:线性表(顺序表实现)

数据结构与算法—复习:线性表(顺序表实现)代码用作复习记录,不够规范,欢迎批评指正。/** * 程序说明:线性表的顺序实现 * 1.创建空线性表 * 2.在list的位置p之前插入一个元素 * 3.在list的位置p之后插入一个元素 * 4.删除一个x值的元素 * 5.在list删除位置为p的元素,并返回成功与否的标志 * 6.在list中查找值为x的元素的位置 * 7.判断线性表是否为空 * 8.线性表初始化 */#include <stdio.h>#include

2020-07-10 22:41:17 256

原创 Android Studio 安卓开发学习---商业数字运算,不同的Activity的传值问题

1.商业数字运算这一部分其实属于Java在一些情况下,我们需要用到double类型的数字进行计算,然而double运算时会有精度缺失。 在《Effective Java》这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal。原则是使用BigDecimal并且一定要用String来够造。import java.math.BigDecimal;/** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个

2020-06-01 15:48:24 155

原创 数据结构与算法--队列 定义与操作

数据结构与算法–队列 定义与操作/** * 队列复习代码 * ADT Queue is * operations * Queue createEmptyQueue(void) * 创建一个空队列 * int isEmptyQueue(Queue qu) * 判断队列qu是否为空 * void enQueue(Queue qu, DataType X) * x进入队尾 * void deQueue(Queue qu)

2020-05-28 21:37:33 176

原创 堆栈------迷宫算法

堆栈实现迷宫算法/** * 迷宫问题 * 迷宫用二维数组存储,0可走而1不可走 * 1,1,1,1,1,1,1,1,1,1,1 * 1,0,1,0,0,1,1,1,0,0,1 * 1,0,0,0,0,0,1,0,0,1,1 * 1,0,1,1,1,0,0,0,1,1,1 * 1,0,0,0,1,0,1,1,0,1,1 * 1,1,0,0,1,0,1,1,0,0,1 * 1,1,1,0,0,0,0,0,0,0,1 * 1,1,1,1,1,1,1,1,1,1,1 */#include

2020-05-28 00:18:00 314

原创 数据结构与算法--栈 定义与操作

数据结构与算法–栈 定义与操作#include <stdio.h>#include <malloc.h>/** * 栈 复习代码 * ADT Stack is * Operations: * 1. Stack createEmptyStack(void) 创建空栈 * 2. int isEmptyStack(void) 判断是否为空栈 * 3. void push(Stack st,DataType x) 向栈st的栈顶添加元素x * 4. void pop

2020-05-25 22:54:58 216

原创 Android Studio 安卓开发学习---双ListView布局、ListView适配器、ListView分类实现

前言学校要求做安卓项目,想实现一个食堂点餐的app,初学Java,有很多不足,下面仅作为个人经验的分享。欢迎大佬的指点,也希望对后来的同学有用。1. 双 ListView 布局我碰到的第一个难题是双ListView如何实现,其实很简单,只需要在一个xml中,使用一个线性布局即可。为了实现日后的双ListView联动这是必不可少的第一步,关于ListView联动我日后在写。<?xm...

2020-04-25 22:48:55 1380 1

原创 线索二叉树(附栈)---创造、前序、对称序周游,寻找指定元素前驱

线索二叉树(附栈)—创造、前序、对称序周游,寻找指定元素前驱去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.```javascript#include <stdio.h>#include <malloc.h>/*---------------线索二叉树----------------*/struct ThrTreeNode; ...

2020-04-16 23:31:21 409

空空如也

空空如也

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

TA关注的人

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