- 博客(20)
- 收藏
- 关注
原创 shell语法
shell是一个命令行解释器,它接受应用程序或用户的命令,然后调用操作系统的内核。1、Linux提供的Shell解析器包含(在/etc/shells 文件下):bash是sh的软连接/bin/sh/bin/bash/sbin/nologin/bin/dash/bin/tcsh/bin/csh2、shell简单实例#!/bin/bashecho "helloworld"3、shell变量3.1 常用系统变量$HOME$PWD$SHELL$USER3.2 自定义变量
2022-02-22 20:13:19
255
原创 RPC远程过程调用
1、分布式系统发展演变随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用。缺点:1、性能扩展比较难2、协同开发问题3、不利于升级维护垂直应用架构当访问量逐渐增大,单一应
2021-04-04 23:08:10
644
1
原创 括号匹配,包含“( ”,“ )”,“ * ”。“ * ”匹配任意括号或者不匹配
有“( ”,“ )”,“ * ”,其中“( ”和“)”匹配,“ * ”和“( ”,“ )”匹配其中的一个或者0个。思路1、建立一个栈和一个int型数组ch;2、遍历字符串中的每一个字符,如果是“( ”,则直接入栈;3、如果是“ * ”,则ch[stack.size()]++,记录“ * ”在栈中的位置与个数;4、如果是“ )”,则判断栈受元素是什么,如果栈首元素为“( ”,则ch[stack.size() - 1] += ch[stack.size()]; ch[stack.size()] = 0
2021-04-02 20:25:12
329
原创 KMP算法
KMP算法用途KMP算法主要的用途就是字符串匹配,例如查找字符串"ab"(目标字符串)在字符串"abc"(待查找字符串)中出现的位置。也就是查找字符串"abc"中是否包含字符串"ab",如果包含,返回包含的起始位置。先看下Java实现public int[] next(String str){ int[] next = new int[str.length()]; int j = 0; int k =-1; next[j] = k;
2021-04-01 23:03:35
122
原创 字符串数字转二进制,16进制表示
将字符串表示的数字转换成为16位二进制和4位16进制表示的数字,位数不够的前面补0。16进制表示时字母用大写表示,并用字符串输出。如果数字超出范围,输出"NODATA";字符串不是数字,输出"INPUTERROR"。例如输入“15”,输出“0000000000001111,000F”思路1、将字符串转换为数字,判断该字符串是不是表示数字,并判断范围有没有超过16位二进制表示的范围。如果是正数,小于等于32767,如果是负数,绝对值小于等于32768。2、如果是正数不变,如果是需将负数用补码表示3、求
2021-04-01 15:01:22
1924
原创 Zookeeper原理
ZookeeperZookeeper概述Zookeeper特点Zookeeper数据结构Zookeeper应用场景Zookeeper选举机制插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Zookeeper概述Zookeeper 是一个开源的分布式协调服务框架 ,主要用来解决分布式集群中
2020-12-21 19:40:58
127
原创 Redis简介
Redis1 概念: redis是一款高性能的NOSQL系列的非关系型数据库1.1 什么是NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数
2020-11-03 17:35:58
81
原创 (简单、希尔、堆、归并、快速、基数)排序算法实现及比较
为了简单起见,只讨论基于比较的从小到大的整数排序简单排序冒泡排序算法思想:类似于水中冒泡,假设从小到大排序,即为较大的数慢慢往后排,较小的数慢慢往前排。依次比较两个相邻的元素,如果顺序错误就把他们交换过来,每一趟遍历,将一个最大的数移到序列末尾。重复进行直到没有相邻元素需要交换为止。算法描述算法描述:比较相邻的元素,如果前一个比后一个大,交换之。第一趟排序第1个和第2个元素,比较与交换,随后第2个和第3个比较交换,这样直到倒数第2个和最后1个,将最大的数移动到最后一位。第二趟将第二大的数移
2020-10-28 21:33:44
342
原创 springMVC如何对输入数据校验
前言数据的校验是交互式网站一个不可或缺的功能,数据验证分为客户端验证和服务器端验证。前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验;但是为了避免用户绕过浏览器,使用http工具直接向后端请求一些违法数据,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,如果数据库中出现一个非法的邮箱格式,也会让运维人员头疼不已,服务器端验证是整个应用阻止非法数据的最后防线,通过在应用中编程实现。客户端验证在大多数情况下,使用 JavaScript 进行客户端验证的步骤
2020-10-15 15:22:28
821
原创 使用mybatis注解删除表中数据,传入数组时报错:Parameter ‘id‘ not found. Available parameters are [ids, param1]
报错具体信息:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘id’ not found. Available parame
2020-10-13 19:29:21
1007
原创 JAVA中的排序函数
JAVA中的排序函数包括java.util.Arrays中的Arrays.sort();java.util.Collections中的Collections.sort()
2020-09-23 16:53:38
17599
1
原创 mui登录模板源码解
登录模板页面样式(该页面包含账户、密码输入栏,具有自动登录功能)模板的登录核心代码写在login.html页面里<script> (function($, doc) { $.init({ statusBarBackground: '#f7f7f7' }); $.plusReady(function() { plus.screen.lockOrientation("portrait-primary"); var settings =
2020-09-15 16:53:48
3201
原创 设计模式——迭代器模式
迭代器使在我们处理集合时,可以在不暴露其内部结构的情况下,迭代其元素。Java中的数组、列表、集合就是使用迭代器模式实现的具体实现首先定义一个简单的迭代器接口public interface Iterator { public Object next(); public boolean hasNext();}定义一个容器接口,具有创建迭代器对象的方法public interface Aggregate { public Iterator createIterator()
2020-08-07 20:16:40
115
原创 设计模式——工厂模式
在面向对象编程中,由于有继承blackDog可以当成Dog处理,如果要扩展新的Dog,只需要添加新的类就好了,因此关键时如何创建一个对象。通常我们使用(Dog dog = new BlackDod();)创建一个对象,当我们需要创建一个新的对象时,就需要更改代码,这样就违背了开闭原则,其次主类除了其固有的功能外,还需要负责创建新的对象,这也违背了单一原则,因此可以增加新的类用于创建对象,称之为工厂模式。简单工厂模式静态工厂模式在Factory类中用枚举列举了所要创建的所有对象的名称,当要创建一个对象时
2020-08-04 20:41:00
172
1
原创 设计模式——单例模式
单例模式单例模式用来保证一个对象只能创建一个实例,它提供了对实例的全局访问方法;单例模式只由单个类组成,为确保单例实例的唯一性,所有的单例构造器都要被声明为私有的,并通过静态方法实现全局访问获得该实例。public class Singleton { private static Singleton instance; private Singleton(){ System.out.println("单例模型被创建!"); } public static
2020-08-03 20:22:09
121
原创 Vi和Vim编辑器
三种模式:命令行、插入、底行模式切换到命令行模式:按Esc键切换到插入模式:按 i 、o、a键i 在当前位置生前插入I 在当前行首插入a 在当前位置后插入A 在当前行尾插入o 在当前行之后插入一行O 在当前行之前插入一行切换到底行模式:按 :(冒号)保存并退出:esc:wq不保存退出:esc:q!搜索文件中的内容::/xxx重定向输出>和>>重定向输出,覆盖原有内容>cat /etc/passwd >
2020-08-03 15:27:31
149
原创 window10下使用MXNet(GPU)运行神经网络报错:Check failed: e == CUBLAS_STATUS_SUCCESS (13 vs. 0) cuBLAS: CUBLAS_STA
运行如下代码net = nn.Sequential()net.add(nn.Dense(1))net.initialize(ctx=mx.gpu())net(y)我的cunda是9.0报错:MXNetError: [18:02:15] c:\ci\libmxnet_1533399150922\work\src\operator\linalg_impl.h:140: Check failed: e== CUBLAS_STATUS_SUCCESS (13 vs. 0) cuBLAS: CUBLA
2020-07-17 19:38:55
1038
原创 Linux上安装软件(jdk,Mysql,redis)
Linux上安装软件常用方式(操作系统为CentOS-6.7)二进制发布包软件已经针对具体平台编译打包发布,只要解压,修改配置即可RPM包软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获得相应的软件RPM发布包,然后用RPM命令进行安装Yum在线安装软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程的库依赖问题源码编译安装软件以源码工程的形式发布,需要获得源码工程后用相应的开发工具进行编译打包部署上
2020-07-10 17:21:40
168
原创 Linux常见命令
目录操作大多数命令都有(命令 --help)命令查询IP地址命令ifconfig列出文件列表: ls,ll当前目录:pwd列出文件列表:ls列出所有文件(包括隐藏文件):ls -a显示非隐藏文件的详细信息:ls -l(可以简写为ll)切换目录命令:cd(按tab键可以提示补全)退回上一级目录:cd …退回根目录:cd /用户主目录:cd ~返回上一次目录:cd -创建目录/移除目录: mkdir,
2020-07-08 20:41:47
221
原创 save007
题目来自—中国大学MOOC-陈越、何钦铭-数据结构-2020春06-图2 Saving James Bond - Easy VersionThis time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small
2020-07-08 20:32:55
235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人