自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 python调用bash shell脚本

python调用shell命令和脚本

2021-12-28 23:10:20 3765

原创 三剑客学习笔记

Linux 三剑客

2021-12-26 20:12:19 541

原创 权限系统设计与分析

权限控制对不同的用户展现不同的资源,主要有两个方面,数据权限和功能权限,数据权限指不同的用户看到不同的数据,财务人员只能看到财务相关的数据,销售人员只能看到销售数据,功能权限可以细分为页面权限和操作权限等权限控制模型迄今为止最为普遍的权限设计模型是RBAC模型,基于角色的权限访问控制(Role-Based Access Control)RBAC0模型这是权限最基础也是最核心的模型, 它包括用户 / 角色 / 权限, 其中用户和角色是多对多的关系, 角色和权限也是多对多的关系。用户是发起操作的主

2021-10-22 18:58:47 1061

原创 Java比较器

1. 简介在Java中对于基本数据类型,诸如Integer、double等,java可以对它们进行比较,我们开发人员不需要做任何其他的工作,但对于复杂数据类型,比如类的比较,需要开发人员定义比较的逻辑,这种比较逻辑,Java中提供了两种实现,一种是内部比较器Comparable,另一种是外部比较器Comparator,这两个比较器都是Java接口。2. 源码介绍(Java8)内部比较器Comparable源代码在java.lang下,里面只有一个方法public int compareTo(T o);

2021-10-18 10:35:41 800

原创 排序算法总结

说到排序,一定离不开这张图简单排序O(n2)O(n^2)O(n2)冒泡排序选择一个最大的数(最小的数)放到最后面的位置,然后选择次大的数(次小的数)放到倒数第二个位置,依次类推,直到所有的数字为止。由冒泡排序衍生出了鸡尾酒排序,听起来很高大上,它是一种双端冒泡,先选一个最小的数,放到第一位,然后选一个最大的数放到最后一位,以此类推。冒泡排序代码: //降序排列 public static void bubbleSort(int[] arr) { if (arr == nu

2021-10-15 16:24:22 120

原创 进程通信和线程通信

进程和线程的区别对于进程来说,子进程是父进程的复制品,从父进程那里获得父进程的数据空间,堆和栈的复制品。而线程,相对于进程而言,是一个更加接近于执行体的概念,可以和同进程的其他线程之间直接共享数据,而且拥有自己的栈空间,拥有独立序列。共同点:它们都能提高程序的并发度,提高程序运行效率和响应时间。线程和进程在使用上各有优缺点。线程执行开销比较小,但不利于资源的管理和保护,而进程相反。同时,线程适合在SMP机器上运行,而进程可以跨机器迁移。他们之间根本区别在于 多进程中每个进程有自己的地址空间,线程则共

2021-10-04 18:32:56 137

原创 HTTP协议-超文本传输协议

HTTP(HyperText Transfer Protocol)HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器,从层次的角度看,HTTP是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。HTTP规定在HTTP客户与HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个类似的通用因特网邮件扩充,即"类MIME(MIME-like

2021-10-03 10:16:25 775

原创 布隆过滤器

布隆过滤器java中使用基础类型拼出比特操作的结构(位图)int[] arr=new int[10];//32bit*10 -> 320bits//arr[0] int 0~31//arr[1] int 32~63int i=178;//取出第178个bit的状态int numIndex=178/32;int bitIndex=178%32;//取178位状态int s=((arr[numIndex]>>bitIndex)&1);//把178位的状态改为1

2021-09-30 16:56:48 92

原创 大数乘法

算法描述:使用int[] input1和int[] input2存储被乘数和乘数,使用int[input1.length+input2.length] result存储计算结果,具体计算过程可以结合代码和示意图理解public class Multiply { public static void main(String[] args) { String input1="123456789"; String input2="123456789";

2021-09-29 16:35:25 69

原创 跨域资源共享

1.跨域资源共享通过XHR进行Ajax通信的一个主要限制是跨源安全策略。默认情况下,XHR只能访问与发起请求的页面在同一个域(源)内的资源。这个安全限制可以防止某些恶意行为,不过,浏览器也需要支持合法跨源访问的能力跨源资源共享(CORS,Cross-Origin Resource Sharing)定义了浏览器与服务器如何实现跨源通信。CORS背后的基本思路是使用自定义的HTTP头部允许浏览器和服务器相互了解,以确认请求或相应应该成功还是失败。对于简单的请求,比如GET或POST请求,没有自定义头部,而

2021-09-29 12:55:18 516

原创 一致性Hash原理与实现&虚拟节点&Java

前言受互联网企业成本的制约,没有强劲的服务器和昂贵的海量数据库,只能正对当前的开源技术,比如通过MySQL、Nginx等开源软件,通过架构和低成本服务器搭建千万级别的用户访问系统。本文主要结合Redis集群来分享一下一致性Hash的相关问题Redis集群的使用一般可以对Redis做主从复制和Redis集群模式,组成Master-Master或者Master-Slave的形式,进行数据读写分离当缓存数据量超过一定的数量时,我们就要对Redis集群做分库分表的操作。来个栗子,我们有一个电商平台,需要

2021-09-27 11:17:27 904

原创 2021网易秋招机试算法真题

1题目描述:无聊的牛牛突发奇想,想将手中的一排格子红蓝两种颜色,对于每个格子牛牛都有自己的想法。例如,如下的格子。1号和2号格子涂蓝色,3号格子涂红色,4号格子涂蓝色,5号格子涂红色,6、7涂蓝色,8号涂红色。如果按照这个方法涂的华,他需要6步(1、2可以一起涂,6、7可以一起涂)。但是他也可以将1-7号涂上蓝色,再将3、5、8号分别涂成红色,则步数数量最少,为4次。解题思路三种方案:1、一个颜色一个颜色的涂;2、全涂成红色,再分块涂蓝色;3、全涂成蓝色,再分块涂红色;统计有几块颜色;#

2021-09-25 17:12:21 397

原创 MySQL数据类型

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型,MySQL中定义数据字段的类型对数据库的优化非常重要。1.数值类型MySQL 支持所有标准 SQL 数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。BIT数据类型保存位字段值,并且支持 MyIS

2021-09-25 15:35:40 112

原创 MySQL面试问题

1.什么情况需要加索引表的某个字段值离散度越高,该字段越适合选作索引的关键字。主键字段以及唯一性约束字段适合选作索引的关键字,原因就是这些字段的值非常离散。尤其是在主键关键字创建索引时,cardinality(基数,集的势)的值就等于该表的行数。数据库用户创建主键约束的同时,MySQL自动创建主索引(primary index),且索引名称Primary;占用存储空间少的字段更适合选作索引的关键字。例如,与字符串相比,整数字段占用的存储空间较少,因此,较为适合选作索引关键字存储空间固定的字段更适合选

2021-09-25 13:42:44 119

原创 跳跃表原理

概念跳表(SkipList,全称跳跃表)是用于有序元素序列快速搜索查找的一个数据结构,跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。它在性能上和红黑树、AVL树不相上下,但是跳表的原理非常简单,实现也比红黑树简单很多。时间复杂度O(log(n))假设最上层索引有两个节点,一级索引n/2^1,二级索引n/2^2… 则索引层数h=log2 (n/2),每一层最多

2021-09-24 10:02:15 86

原创 浅谈雪花算法

分布式系统中,有时需要使用全局唯一ID,为了防止ID冲突可以使用36位的UUID,但UUID有一些缺点,他相对较长,而且无序什么是雪花算法Snowflake常称为雪花算法,是Twitter开源的分布式ID生成算法,生成后是一个64bit的long型数值,组成部分引入了时间戳,基本保持了自增SnowFlake算法优点高性能高可用:生成时不依赖于数据库,完全在内存中生成高吞吐:每秒钟能生成数百王的自增IDID自增:存入数据库中,索引效率高SnowFlake算法的缺点依赖系统时间,如果系统时.

2021-09-20 16:55:18 3436 1

原创 TCP的运输连接管理--三次握手四次挥手&TCP有限状态机

TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。运输连接有三个阶段:连接建立、数据传送和连接释放。运输连接管理就是使运输连接的建立和释放都能正常地进行。在TCP连接建立过程中要解决三个问题:要使每一方能够通知对方的存在。要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)。能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。TCP连接的建立采用客户服务器方式。主动发起连接建立的应用程

2021-09-15 20:22:24 252

原创 TCP报文段首部格式

TCP报文段的首部格式TCP报文段首部的前20个字节是固定的,后面有4n字节是根据需要而增加的选线(n是整数)。源端口和目的端口,各占2个字节,分别写入源端口号和目的端口号。和UDP的分用相似,TCP的分用功能也是通过端口实现的。序号,占4字节。序号范围是[0,232-1],共232(即4294967296)个序号。序号增加到2^32-1后,下一个序号就又回到0。也就是说,序号使用mod 2^32运算。TCP是面向字节流的。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。整个要传送的字节

2021-09-13 15:58:44 3601 1

原创 Pytorch训练过程可视化

Pytorch训练过程可视化图表的世界充满了魔法,一条曲线可以瞬间揭示数据内容的情况,激发想象力,让事情变得更有说服力TensorBoardTensorBoard是TensorFlow提供的一组可视化工具(A Suite of Visualization Tools),可以帮助开发者理解、调试和优化TensorFlow程序,作为一款优秀的可视化组件,自然会被其他框架借用和引进。在PyTorch中也能通过TensorBoardX组件使用这一款可视化工具,TensorBoradX组件支持scalar、im

2021-09-06 21:25:29 537

原创 左老师算法直播

小红书https://github.com/algorithmzuo/publicclass2020/tree/master/src/class59

2021-09-06 15:19:11 225

原创 Redis主从复制(含sentinel)

Redis主从复制指将一台redis服务器的数据复制到其他的redis服务器,前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制时单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制的作用主要包括:数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。故障恢复:当主节点出现问题时,.

2021-09-04 17:13:20 105

原创 Redis Cluster搭建

Redis clusterCluster模式是Redis3.0开始推出的,采用无中心结构,每个节点保存数据喝整个集群状态,每个节点都和其他所有节点连接,官方要求:至少6个节点才可以保证高可用,即3主3从;扩展性强、更好做到高可用;各个节点会互相通信,采用gossip协议交换节点元数据信息,数据分散存储到各个节点上。Redis Cluster集群:每个主节点不同,是数据的子集,利用多台服务器构建集群提供超大规模数据处理能力,同时提供高可用支持。Redis Cluster集群采用Hash Slot(哈希

2021-09-04 17:10:08 110

原创 SSH终端连接WSL(UBUNTU)

1. 安装ssh server# 安装sudo apt-get install openssh-server# 卸载sudo apt remove openssh-server2. 修改ssh server配置Port 22222 #默认的是22,但是windows有自己的ssh服务,也是监听的22端口,所以这里要改一下# UsePrivilegeSeparation noPasswordAuthentication yesAllowUsers max # 这里改成你登陆WSL用

2021-08-23 15:36:16 701

原创 CentOS一键安装HAProxy

1. 官网https://www.haproxy.com/2. 一键安装脚本# 安装HAProxy,安装路径:/usr/local/softwares/haproxy# 配置文件位置:/usr/local/softwares/haproxy/configmkdir -p /usr/local/softwares/haproxymkdir -p /usr/local/softwares/haproxy/configtouch /usr/local/softwares/haproxy/config

2021-08-22 13:21:45 448

原创 CentOS7一键安装Rabbitmq

1. 官网https://www.rabbitmq.com/2. erlang与rabbitmq版本对应关系官方网址:https://www.rabbitmq.com/which-erlang.html3.rpm安装erlang#安装epel$ yum install -y epel-release#添加存储库条目,可以访问https://www.erlang-solutions.com/downloads/查看官方教程$ wget https://packages.erlang-solu

2021-08-20 15:54:50 486

原创 Shell脚本发送邮件(CentOS+mailx+QQ邮箱)

1. mailx1. 准备工作打开邮箱设置,开启pop3/smtp服务和imap/smtp服务安装mailx:yum install -y mailx2. 配置设置/etc/mail.rc文件,在文件尾追加如下配置,set from=xxx@qq.com #发件人邮箱set smtp=smtp.qq.comset smtp-auth-user=xxx@qq.com #登录用户名set smtp-auth-password= #邮箱授权码,在QQ邮箱设置界面发短信生成

2021-08-18 10:39:25 7564

原创 JD校招提前批面试 (Java开发工程师)

一面(电话):面试官看了简历再来打的电话,所以没有让自我介绍,哈哈哈哈哈哈哈,一开始他自己介绍了一下部门,听不清说了啥,那边很吵,都是面试的声音,哈哈哈,1.说一下本科和研究生期间课程情况2.数据结构和算法学了吧,跳表3.跳表在项目中使用了吗,我切换到HashMap了,哈哈哈哈4.java8中HashMap数组64个元素和链表8个元素了,链表化,有什么弊端?(坑很多)5.提到了nginx6.git rebase 和git commit区别7.redis应用,能扯原理更好了

2021-08-03 15:14:13 223

原创 Git使用教程

简易的命令行入门教程Git 全局设置:git config --global user.name "demo"git config --global user.email "demo@qq.com"创建 git 仓库:mkdir algorithmcd algorithmgit inittouch README.mdgit add README.mdgit commit -m "first commit"git remote add origin https://gitee

2021-07-28 17:13:09 166

原创 剑指Offer第2章--面试需要的基础知识读书笔记(Java版)

1. 第2章 面试需要的基础知识1.1. 面试题2:实现Singleton模式题目:设计一个类,我们只能生成该类的一个实例不好的解法一:只适用于单线程环境/** * @Author: maxwell_a@qq.com * @Date: 2021-07-10 16:22 * @Version: 1.0 */public class Singleton1 { private Singleton1(){ } private static Singleto

2021-07-10 16:54:13 98

原创 13个球,找特殊球

问题描述:13个球,有两种重量,12个球一个重量,单独的一个球另一重量,只用一个天平(没有砝码),最多称3次找到这颗特殊的球。解决算法描述:将13个球分为三组A、B和C组,每组分别4个,4个和5个,分别编号:A1、A2、A3和A4,B1、B2、B3和B4,C1、C2、C3、C4和C5。具体算法描述如下:图中绿底圆角矩形表示比较(动作),蓝底椭圆表示比较的结果(状态)...

2021-07-07 20:07:21 367

原创 IDEA常用快捷键

1、全局搜索Ctrl+N:按名字搜索类Ctrl+Shift+N:按文件名搜索文件Ctrl+H:查看类的继承关系Ctrl+Alt+B:查看子类方法实现Alt+F7:查找类或方法在哪被使用Ctrl+F/Ctrl+Shift+F:按照文本的内容查找,Ctrl+F是在本页查找,Ctrl+Shift+F是全局查找Shift+Shift:搜索任何東西...

2021-06-29 14:55:07 205

原创 Linux下查看GPU信息和使用情况

Linux下查看GPU信息和使用情况查看显卡信息lspci | grep -i vga使用nvidia GPU可以lspci | grep -i nvidia前面的03:00:0 是显卡的代号(用的虚拟机)查看指定显卡的详细信息用以下指令:lspci -v -s 00:0f.0Linux查看Nvidia显卡信息及使用情况Nvidia自带一个命令行工具可以查看显存的使用情况:nvidia-smi表头释义:Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如

2021-05-28 17:12:36 5526

原创 浏览器默认非安全端口

默认非安全端口1.错误现象2.什么是默认非安全端口?4.解决办法5.Chrome默认非安全端口1.错误现象意思是非安全端口错误2.什么是默认非安全端口?每个浏览器出于安全问题,都会禁止一些网络浏览以外的端口。# 3.浏览器默认限制端口有哪些Chrome谷歌浏览器:6000、6665-6669…(详细末尾贴上)FireFox火狐浏览器:非80端口IE浏览器没这个6666的限制,但是你懂的4.解决办法更换服务启动端口:推荐使用这种,免去了配置的麻烦。Chrome:右键单击Chrom

2021-05-25 20:35:40 1202

原创 ssm和springboot项目的部署&Linux根据端口号查看进程PID

1.命令lsof,端口号查看进程PID#lsof -i:80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 22069 root 16u IPv4 5369950 0t0 TCP *:18098 (LISTEN)2.命令netstat,查找占用80端口的情况# netstat -nlp ...

2019-10-22 19:27:32 2016

原创 vim使用

vim

2019-10-20 00:04:54 141

原创 linux常用指令

1.bash的命令行编辑键ctrl+a:光标移至行首ctrl+e:光标移至行尾alt+f:光标前移至右一词末alt+b:光标后移至左一词末ctrl+l:清屏并在屏幕顶端重显当前行ctrl±:恢复上一次的操作ctrl+k:删除光标处至行末内容ctrl+u:删除光标至行首内容alt+d:删除光标处至单词末内容alt+del:删除光标处至单词首内容ctrl+w:删除光标处左一词至词...

2019-10-18 23:35:29 228

原创 nginx加权轮询算法

算法介绍一个简单的Nginx负载均衡配置。http { upstream cluster { server a weight=5; server b weight=1; server c weight=1; } server { listen 80; location / { ...

2019-10-15 21:23:26 639

转载 机器学习简单概念

机器学习老师:李宏毅,吴恩达机器学习课程和周志华的西瓜书发展历程      人类一直试图让机器具有智能,也就是人工智能(Artificial Intelligence)。从上世纪50年代,人工智能的发展经历了“推理期”,通过赋予机器逻辑推理能力使机器获得智能,当时的AI程序能够证明一些著名的数学定理,但由于机器缺乏知识,远不能实现真正的智能。因此,70年代,人工智能的发展进入“知识期”,即...

2019-10-11 11:12:24 447

转载 CentOSFirewall 防火墙

centos防火墙配置1.查看firewall服务状态systemctl status firewalld2.查看firewall的状态firewall-cmd --state3.开启,重启,关闭firewalld.service服务#开启service firewalld start#重启service firewalld restart#关闭service fir...

2019-10-08 10:58:18 180

转载 nginx配置文件

nginx配置文件nginx配置文件主要分为六个区域:main(全局设置)events(nginx工作模式)http(http设置)sever(主机设置)location(URL匹配)upstream(负载均衡服务器设置)一点补充:nginx 中location中root和alias的区别nginx配置文件主要分为六个区域:main(全局设置)#user :来指定Nginx Worker进程...

2019-09-26 10:49:42 107

剑指Offer(第二版)笔记.docx

剑指Offer(第二版)笔记

2021-07-10

空空如也

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

TA关注的人

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