自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python多线程与多进程详解

学习python多线程与多检查知识

2022-09-13 12:11:52 163 1

原创 R语言学习

目录1.环境安装2.包3.

2022-01-03 21:55:45 857

原创 操作系统及linux知识总结——网络篇

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-11-13 17:26:22 5608 4

原创 python自动化运维学习

1.python能做什么?2.解释型与编译型语言的区别?3.动态型与静态型语言的区别?4.

2021-09-22 23:45:39 805

原创 操作系统及linux知识总结——基础篇

1.什么是操作系统人与硬件沟通的桥梁;组成:硬件、内核、解释器(bash/dash/python)、软件应用程序2.虚拟机配置子网与私网的区别?1.私有地址可以理解为内网IP,它是IP设计中取某些段规定这些是内网IP,用于局域网。2.子网划分是指将大段的某段IP地址划分是若干小段,各小段之间不能直接通信,从而达到缩小广播域,减少广播风暴。而网络小了,相对安全性能提高,出来问题也能相对容易找出问题节点。3.子网划分可以划分某段公网IP,也可以划分某段私有地址。子网与子网掩码.

2021-03-25 22:17:12 303 4

原创 for循环与foreach性能比较与适用场景

for循环for(int i=0;i<100;i++){ a = i;} foreach循环for(int i : integers){ a = i;}//等同于for(Iterator<Integer> i=list.iterator();i.hasNext();){ a = i.next(); }性能上的区别:对于linkedlist,是单链表,使用for循环每次都要从第一个元素读取next域来读取,速度非常慢;例如:从a.

2020-08-19 16:10:06 801

原创 BFS广度优先搜索技巧

剑指 Offer 32 - II. 从上到下打印二叉树 II从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。注意事项,queue中类型是Treenode,size每次遍历完一层要减1。思路:每次遍历完一层添加进list,每一层中如果有左右子节点则加入队列。每一次遍历都让队列里的当前层出队,若是队列为空则结束。答案:/** * Definition for a binary tree node. * public class TreeNode { * in

2020-08-19 11:20:52 168

原创 使用PriorityQueue实现大小根堆

1.一个基于优先级堆的无界优先级队列。优先级队列的元素默认按照其自然顺序进行排序(即默认小根堆),大根堆需要通过构造方法重写Comparator接口的compare方法。2.初始容量为11,线程不安全,线程安全的实现结构为PriorityBlockingQueue。3.小根堆的实现public class findTopK { //找出前k个最大数,采用小顶堆实现 public static int[] findKMax(int[] nums, int k) { Pr

2020-08-18 22:11:58 530

原创 redis主从复制与哨兵模式

1.集群环境搭建(默认情况下每台redis服务器都是主节点)127.0.0.1:6379> info replication //查看当前库的信息role:master //当前角色connected_slaves:0 //没有从机master_replid:d4fa5da90deabc682540ad21321c246e2b0adcfamaster_replid2:0000000000000000000000000000000000000000master_repl_offset:0

2020-08-10 11:10:51 324

原创 redis持久化操作-rdb,aof

1.RDB1.触发机制2.如何恢复rdb文件3.优缺点优点:1.适合大规模数据的恢复,恢复速度快2.对数据的完整性要求不高缺点:1.需要一定的间隔,如果redis宕机了,最后一次修改的数据就没了2.fork子进程的时候占用一定的内存2.AOF优缺点:...

2020-08-03 16:11:43 88

原创 redis的config配置文件详解

1.配置文件 unit单位对大小写不敏感2.包含其它配置文件3.网络bind 0.0.0.0 #绑定的ipprotected-mode no #保护模式4.通用generaldaemonize yes #以守护进程的方式运行,默认是no,需要修改为yes。loglevel notice #日志级别(debug\verbose\notice\warning)databases 16 #数据库的数量,默认16个5.快照持久化,在规定的时间内,执行多少次/时间则持久

2020-08-03 13:37:51 325

原创 springboot与redis整合

每一个spring的配置类都有一个自动配置类, XXXAutoConfiguration每一个自动配置类都绑定一个properties类xxxProperties1.源码分析:2.操作(redisTemplate)3.配置开发使用的template模板/**配置RedisConfig模板,取代springBoot默认的配置 * Created by admin on 2020/8/3. */@Configurationpublic class RedisConfig { .

2020-08-03 12:02:08 146

原创 dubbo+zookeeper入门学习

1.Dubbo的架构1.Provider(生产者): 暴露服务的服务提供方。2.Consumer(消费者): 调用远程服务的服务消费方。Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可2.Duubo的好处?1.远程调用(异步调用,通信问题)2.服务自动注册与发现由于过多的注册,便于管理,官方推荐使用zookeeper。顾名思义,就是动物园管理者,管理众多的服务。是不是好很多了?还不够, 我们还需要个监控中心

2020-08-03 00:38:22 98

原创 springboot学习02-自动配置原理理解

以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释自动配置原理。//表示这是一个配置类,和以前编写的配置文件一样,也可以给容器中添加组件;@Configuration //启动指定类的ConfigurationProperties功能; //进入这个HttpProperties查看,将配置文件中对应的值和HttpProperties绑定起来; //并把HttpProperties加入到ioc容器中@EnableConfigurationPro

2020-07-31 22:44:30 67

原创 sprinboot学习-01初步理解运行原理

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.2.5.RELEASE</version> <relativePath>../../spring-boot-dependencies</relativ

2020-07-31 20:30:28 2379

原创 使用Jedis连接redis,阿里云开发端开,linux打开防火墙

1.Linux下的redis.conf配置文件中将bind 127.0.0.1注释掉,而且将protected-mode yes 改为 no。2.linux先开启防火墙,再开启6379端口。#开启6379端口firewall-cmd --zone=public --add-port=6379/tcp --permanent3.阿里云服务器开放6379端开4.Jedis可以ping通redis端口...

2020-07-30 15:50:17 175 1

原创 redis学习-redis实现乐观锁

1.概念2.监视测试3.模拟第二个线程修改money,第一个线程事务会失败返回null4.事务修改失败,重新获得锁

2020-07-30 13:42:52 104

原创 redis学习-事务

1.概念2.开始执行事务3.取消事务4.编译型异常5.运行时异常

2020-07-30 13:24:19 70

原创 redis中的bitmap结构

2020-07-30 01:09:23 283

原创 使用redis中Hyperloglog优化网站访客人数统计

1.Hyperloglog是什么,原理?HyperLogLog 提供不精确的去重计数方案,标准误差大概在 0.81%,满足上面的用户访问量的统计需求了。对于HyperLogLog一个Key只需要12kb原理:基数就是指一个集合中不同值的数目,比如[a,b,c,d]的基数就是4,[a,b,c,d,a]的基数还是4,因为a重复了一个,不算。2.优缺点?优点:占用内存极小,对于一个key,只需要12kb。对于拼多多这种超多用户的特别适用。缺点:查询指定用户的时候,可能会出错,毕竟存的不是具体的

2020-07-30 01:00:23 194

原创 redis学习-redis基础知识

redis有16个数据库,默认使用第0个。切换数据库:select 索引查看数据库所有key:keys *清除当前数据库:flushdb清除全部数据库数据:flushallredis是单线程的redis为什么快?核心:redis是单线程的,避免了多线程之间的上下文切换。(io操作)redis-key操作1.exists key 判断当前key是否存在2.move key 移除当前key3.expire key time(秒)设置过期时间4.ttl key 查看key剩余时

2020-07-29 23:16:54 164

原创 redis在linux中配置启动

1.将官网下载的压缩包通过sftp上传到linux的home目录下2.将压缩包移动到opt目录下3.解压redis安装包,解压成功4.进入redis文件5.基本环境安装1.yum install gcc-c++2.make3.make install6.redis默认安装路径:usr/local/bin7.将配置文件拷贝到当前目录下,以后配置就在这里启动,原来的文件不动,可以恢复保证安全8.redis默认不是后台启动,修改设置9.启动redis,链接进行测试10.查

2020-07-29 01:07:06 91

原创 如何反转int类型数字?

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21先来波愚蠢的解法。。只超过了12%思路:如果有-号记下来,后面转换回int时使用;如果末位是0,直接舍弃末位;然后反转后判断是否溢出,这里用了long,不太符合题目要求了。class Solution { public int reverse(int x) { String

2020-06-07 20:31:31 1183

原创 最长公共前缀的两种解法

leetcode14.最长公共前缀第一种解法:对字符串数组中的每一列字符同步对比 if(strs == null||strs.length == 0){ return ""; } for(int i=0;i<strs[0].length();i++){ char c = strs[0].charAt(i); for(int j=1;j<strs.length;j++){

2020-06-07 19:27:10 136

原创 如何判断链表是否有环?

leetcode141. 环形链表这里讲快慢指针的解法,hash表要申请额外空间不在这里讲解。思路:定义快指针一次走两步,慢指针一次走一步,如果存在环,快慢指针一定会相遇。类似两个人在操场跑步,快的人一定会和慢的那个相遇。/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val =

2020-06-03 17:05:12 75

原创 最大子序和

leetcode53. 最大子序和以下为本人题解:还可以申请dp数组利用动态规划来做,思路一样,只是保存在了新数组里面。

2020-05-24 16:02:37 89

原创 查找数组中是否有重复元素

leetcode217. 存在重复元素例子:给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。方法1:利用set集合,如果当前元素存在,添加时返回false,否则返回true。public boolean containsDuplicate(int[] nums) { HashSet<Integer> set = new HashSet(); for (int a : num

2020-05-24 14:53:07 2186

原创 如何以常数时间找到栈中的最小值?

leetcode155. 最小栈思路:利用辅助栈1.在push的时候主栈直接push,对于辅助栈如果栈为空,直接push,如果栈不为空,判断push的值是否比栈顶值小,如果小于等于,则push,反之不push。2.pop的时候主栈判断不为空后直接pop,辅助栈判断不为空后,如果pop的值等于栈顶的值,辅助栈pop,反之不pop。3.getMin的时候直接获取辅助栈栈顶元素即是当前最小值。代码如下:class MinStack { //辅助栈81% // Stack<Inte

2020-05-24 12:29:34 316

原创 如何判断两个链表是否相交?并获得相交链表头节点。

题目参考leetcode160. 相交链表思路:定义两个指针,一个指向链表1,另一个指向链表2;让两个指针相同速度移动到末尾,当a指针指向null时返回到链表2头部,b指针指向null时返回到链表1头部。继续向末尾移动,相交的点即为相交链表部分的头节点。代码如下:public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode a = h

2020-05-23 21:35:18 107

原创 出错: bad operand types for binary operator ”^“,关于java中运算符优先级问题

遇到问题的原代码如下: int start = 0; int end = l-1; while(start<end){ if(num[start]^num[end] == 0){ start++; end--; }else{ return false; } }报错,bad oper

2020-05-23 00:40:26 2265

原创 java的int类型转换为int数组

int x = 123;String str = String.valueOf(x);int l = str.length();int[] num = new int[l]; for(int i=0;i<l;i++){ num[i] = str.charAt(i);}比较简单,积累细节!

2020-05-23 00:29:21 2131 2

原创 合并两个有序链表

leetcode21. 合并两个有序链表将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //不应该这样定义,curl1是一个指在l1点的指针,会影响到

2020-05-22 14:30:18 89

原创 Java中Map的3种遍历方式

第一种,利用Map的entrySet()方法for (Map.Entry<String, Object> entry : map.entrySet()) {System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());第二种,利用Iterator来遍历注意:在遍历过程中remove操作,只能用iterator遍历方式,其他遍历会抛异常,(顺便补充,list通过Iterator方式可正确遍历完成re

2020-05-20 13:51:02 175

原创 遇到根据某个变量个数比较大小,变量个数一样比较变量大小时的技巧

给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。示例 1:输入:arr = [0,1,2,3,4,5,6,7,8]输出:[0,1,2,4,8,3,5,6,7]解释:[0] 是唯一一个有 0 个 1 的数。[1,2,4,8] 都有 1 个 1 。[3,5,6] 有 2 个 1 。[7] 有 3 个 1 。按照 1 的个数排序得到的结果数组为 [0,1,

2020-05-13 11:52:19 410

原创 linux下创建文件,修改权限,在secureCRT从本地复制文件到linux,解压文件

1.linux下创建文件,比较简单在对应的文件目录下创建文件: mkdir 文件名。2.修改权限修改了Dwonloads下arm文件的权限,语法为:chomd {}{}{} 文件名每个文件有针对每个用户的权限,有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。每一个用户的权限都可以用rwx来表示;r代

2020-05-12 21:55:14 1063

转载 一致性哈希算法是什么?

学习一致性hash算法的原理与应用。https://blog.csdn.net/bntX2jSQfEHy7/article/details/79549368?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158918848619726869040794%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57662%2522%257D&request_id=15

2020-05-11 17:16:10 71

转载 布隆过滤器

转载:布隆过滤器的基础与应用场景等知识https://blog.csdn.net/qq_34162294/article/details/105693609?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158918776519725256755297%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=158918

2020-05-11 17:06:46 68

原创 VMware虚拟机linux操作系统的ens33下没有IP地址的解决办法

首先在终端输入ifconfig命令出现:此时没有inet。解决:(1)切换到根用户 su - root 按提示输入密码(不切换到根用户没有权限修改文件)(2)输入cd /etc/sysconfig/network-scripts/(3)输入vi ifcfg-ens33 ifcfg-ens33(4)光标移动到ONBOOT=no的n上输入x删除掉no,然后输入a之后输入yes(具体参考linux下VI窗口插入与编辑命令https://www.cnblogs.com/tansuoxinweilai/p

2020-05-09 18:21:51 10532 9

转载 找出数组中出现次数超过一半的数字

根据数组的特点找出:O(n)算法数组中有一个数字出现的次数超过数组长度的一半,即这个数字出现的次数比其他所有数字出现的次数的和还要多。遍历数组的时候保存两个值:数组中元素的值、次数。在遍历下一个数字时,如果下一个数字和之前保存的数字相同,则次数加1;如果下一个数字和之前保存的数字不相同,则次数减1。如果次数为0,则保存下一个数字,并把次数设为1。由于要找的数字出现的次数比其他所有数字出现的次数之...

2020-04-25 23:16:26 184

原创

1.平衡符号  编译器需要检查代码的语法错误,但是常常由于缺少一个符号(如一楼一个花括号或者注释起始符)引起编译器上百行的诊断,而真正的错误并没有找出(在这一点上java编译器还是比较可靠的,但不是所有编译器)。在这种情况下一个有用的工具就是检查符号是否有效。于是每一个左花括号,左方括号以及左圆括号必然有右括号与其对应(比如{[]}是合法的,但是{[}]是错误的)。显然为此编写一个大型程序去校验...

2020-04-13 22:38:26 105

软考架构设计师考纲资料

软考架构设计师考纲资料

2024-03-23

空空如也

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

TA关注的人

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