自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java注解&反射机制

什么是注解Annotation是从JDK5.0开始引入的新技术Annotation的作用不是程序本身,可以对程序作出解释可以被其他程序(比如:编译器等)读取Annotation的格式注解是以“@注解名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarings(valuue=“unchecked”)Annotation在哪里可以使用可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程

2021-04-24 21:22:05 162

原创 字符串简单操作典型例题

一、统计字符串中单词的个数int NumWord(char *str){assert(str!=NULL);int count=0;while(*str!=0){if(isalpha(*str)&&!isalpha(*str+1)) //isalpha()是一个判断字符是否为英文字母的函数{ count++;}str++;}}二、将一个字符串的前n位...

2020-04-06 01:22:07 260

原创 Trie树—高级树型结构

文章目录Trie树的基本概念Trie树的特点Trie树的数据结构插入查找删除操作Trie树的应用Trie树的基本概念Trie 树中文名叫字典树、前缀树等等。这些名字暗示其与字符的处理有关,事实也确实如此,它主要用途就是将字符串(当然也可以不限于字符串)整合成树形。它的核心思想就是通过最大限度地减少无谓的字符串比较,使得查询高效率,即「用空间换时间」,再利用共同前缀来提高查询效率。典型应用于...

2020-04-06 01:16:04 479

原创 Python常用库函数

文章目录eval函数eval函数实现list、dict、tuple与str之间的转化pow(x,y)函数round(x,d)函数eval函数eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。想象一下变量赋值时,将等号右边的表达式写成字符串的格式,将这个字符串作为eval的参数,eval的返回值就是这个表达式的结果。eval的语法格式如下:eval(exp...

2020-04-06 01:13:52 4086

原创 MySQL binlog、redo log、undo log 作用

文章目录binlogbinlogbinlog记录了数据库表结构和表数据变更,比如update/delete/insert/truncate/create。它不会记录select(因为这没有对表没有进行变更)binlog我们可以简单理解为:存储着每条变更的SQL语句(当然从下面的图看来看,不止SQL,还有XID「事务Id」等等)主要有两个作用:复制和恢复数据MySQL在公司使用的时候往往都...

2020-04-02 19:04:13 268

原创 Python组合数据类型(集合、序列、元组、列表、字典类型)

文章目录集合类型集合定义集合操作符集合函数集合类型应用场景序列类型序列类型定义序列操作符序列函数序列类型应用场景元组类型列表类型列表定义列表操作符列表函数总结集合类型集合定义集合是多个元素的无序组合集合类型与数学中的集合概念一致集合用大括号{}表示,元素间用逗号分隔集合元素之间无序,每个元素唯一,不存在相同元素集合元素不可更改,不能是可变数据类型举例:A = {"pytho...

2019-12-22 19:24:32 1268 2

原创 Redis常见面试题解析(二)

文章目录一、Redis 集群结构以及设计理念1. Redis 集群架构模式有哪几种?2. Redis 集群最大节点个数是多少?3. Redis 集群的主从复制模型是怎样的?4. 请介绍一下 Redis 集群实现方案5. Redis 集群会有写操作丢失吗?为什么?6. Redis 慢查询是什么?通过什么配置?7. Redis 的慢查询修复经验有哪些?怎么修复的?8. 如何优化 Redis 服务的性能...

2019-12-20 21:58:48 322

原创 Redis常见面试题解析(一)

文章目录一、 Redis 概念理解1. 什么是 Redis?2. Redis 的特点有哪些?3. Memcache 与 Redis 的区别都有哪些?4. Redis 相比 Memcached 有哪些优势?5. 如何实现本地缓存?请描述一下你知道的方式6. Redis 通讯协议是什么?有什么特点?二、Redis 数据结构与指令1. Redis 支持的数据类型2. Redis 常用的命令有哪些?3. ...

2019-12-20 21:58:12 523

原创 Floyd算法

Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。Floyd-Warshall算法不能解决带有“负权回路”(或者叫“负权环”)的图,因为带有“负权回路”的图没有最短路。其实如果一个图中带有“负权回路”那么这个图则没有最短路。核心代码:for(k=1;k<=n;k++) for(i=1;i<=n...

2019-09-11 18:53:14 247

原创 Dijkstra算法

单源最短路径:计算源点到其他各顶点的最短路径的长度全局最短路径:图中任意两点的最短路径Dijkstra、Bellman-Ford、SPFA求单源最短路径Floyed可以求全局最短路径,但是效率比较低SPFA算法是Bellman-Ford算法的队列优化Dijkstra算法不能求带负权边的最短路径,而SPFA算法、Bellman-Ford算法、Floyd-Warshall可以求带负权边的最短...

2019-09-11 18:28:23 136

原创 Muduo网络库——EventLoopThreadPool、EventLoopThread、EventLoop浅析

muduo的并发模型为one loop per thread+ threadpool。EventLoopThread是事件循环线程,包含一个Thread对象,一个EventLoop对象。在构造函数中,把EventLoopThread::threadFunc 注册到Thread对象中(线程启动时会回调)。EventLoopThreadPool是事件循环线程池,管理所有客户端连接,每个线程都有唯...

2019-09-08 15:25:20 770

原创 Muduo库——ThreadPool线程池的实现

线程池ThreadPool用到Thread、MutexLock、Condition。ThreadPool可以设置工作线程的数量,并向任务队列放入任务。放入到任务队列中的任务将由某个工作线程执行。task使用boost::function表示,可以方便地将函数指针、普通函数、成员函数(结合boost::bind)、lambda、重载了函数调用运算符‘()’的类的对象(这些统称为可调用...

2019-09-07 23:08:58 320

原创 MySQL锁机制以及锁的粒度

文章目录MySQL锁机制概述什么是锁,为什么使用锁锁的运作锁定机制分类并发控制锁粒度两种重要的锁策略表锁(table lock)行级锁(row lock)MySQL锁机制概述什么是锁,为什么使用锁锁是计算机协调多个进程或纯线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所...

2019-09-04 20:55:23 2010

原创 TCP的四种计数器

文章目录超时重传计时器 (Retransmission Timer)持续计时器(Persistent Timer)保活计时器(Keeplive Timer)时间等待计时器(Timer_Wait Timer)TCP共使用以下四种计时器:重传计时器、持续计时器、保活计时器和时间等待计时器超时重传计时器 (Retransmission Timer)TCP是保证数据可靠传输的。怎么保证呢?带确认的重...

2019-09-03 11:15:59 937

原创 IP地址、子网掩码、主机数

文章目录IP地址子网掩码子网掩码的分类子网掩码计算网关广播地址(Broadcast Address)根据IP地址和子网掩码求 网络地址 和 广播地址主机数IP地址IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器...

2019-08-28 16:48:29 1869 1

原创 Redis持久化的两种方式

文章目录RDB持久化RDB生成方式RDB的持久化配置RDB的优点RDB的缺点AOF持久化AOF生成方式AOF的持久化配置AOF的 优点AOF的 缺点RDB VS AOFRedis 是一个支持持久化的内存数据库,也就是说Redis 可以将内存中的数据同步到硬盘,来实现持久化。Redis 提供了不同级别的持久化方式:RDB持久化方式:在指定的时间间隔能对你的数据进行快照存储。AOF持久化方...

2019-08-28 01:48:03 167

原创 页面置换算法

文章目录页面置换算法引入FIFO算法LFU算法LRU算法最佳页面置换算法(OPT)时钟(CLOCK)置换算法改进型的CLOCK置换算法页面置换算法引入页面置换:在系统运行过程中,若程序所要访问的页面不在内存而需要把他们调入内存,但内存已经没有空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送到磁盘的交换区中,这个过程称为页面置换。页面置换算法:置换算法决定将哪个页面调...

2019-08-26 23:10:38 225

原创 C++面试题总结

文章目录四种newnew和 malloc的区别引用和指针的区别四种new普通的new,内存开辟失败抛出bad_alloc异常,而非返回NULL,因此检查返回值是否为NULL判断分配是否成功是徒劳的。int *p1=new int(20);不抛出异常的new,失败返回nullptrint *p2=new (nothrow) int;常量newconst int *p...

2019-08-26 19:00:47 188

原创 HTTP和HTTPS的区别、HTTPS的加密通信过程

文章目录HTTP的缺点HTTP和HTTPS协议的区别HTTPS 下的加密加密算法HTTPS一般使用的加密与HASH算法HTTPS的加密通信过程客户端发起HTTPS 请求服务端的配置传送证书客户端解析证书传送加密信息服务端解密信息传输加密后的信息客户端解密信息HTTPS的加密通信过程总结HTTP的缺点HTTP协议通信使用明文(未加密的报文),不对传输内容进行加密。如果使用fiddler等抓包工...

2019-08-26 18:29:49 1063

原创 软链接和硬链接区别

文章目录硬链接符号链接(软连接)软连接和硬链接的区别建立软链接和硬链接的命令Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。硬链接硬连接指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在L...

2019-08-22 11:05:49 228

原创 死锁、死锁的预防和避免

死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。产生死锁的原因由死锁的定义可知,死锁主要是由于竞争资源引起的,那么这里的资源指的是哪些资源呢?系统中的资源可以分为两类:可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其...

2019-08-22 10:23:57 4529

原创 笔试|面试真题

文章目录字符串模式匹配移除子串字符串模式匹配问题描述:有一个字符串它的构成是词+空格的组合,如“北京 杭州 杭州 北京”, 要求输入一个匹配模式(简单的以字符来写), 比如 aabbaabbaabb, 来判断该字符串是否符合该模式。举例:1. pattern = "abba", str="北京 杭州 杭州 北京" 返回 true2. pattern = "aabb", str=...

2019-08-21 12:49:57 3095

原创 锁机制及CAS实现原理

文章目录锁机制悲观锁乐观锁锁机制存在的问题两种锁总结CAS(Compare & Set/Compare & Swap)CAS算法原理描述锁机制常用的锁机制有两种:悲观锁、乐观锁悲观锁假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。悲观锁的实现,往往依靠底层提供的锁机制。悲观锁会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁假设不会发生并发...

2019-08-07 00:28:19 1393

原创 C++11新特性总结

文章目录类型说明符空指针nullptr基于范围的 for 循环初始化列表构造函数类型说明符auto:用于从初始化表达式中推断出变量的数据类型。auto定义的变量必须有初始值。auto a = 10;//typeid(a).name()==intauto b ;// errdecltype:用于选择并返回操作数的数据类型。编译时类型推导,以一个普通表达式为参数,返回该表达式类型,并...

2019-08-06 01:18:50 261

原创 LeetCode刷题笔记【简单】

文章目录有效的字母异位词移除元素合并二叉树搜索插入位置二叉树的最小深度有效的字母异位词题目描述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false解题思路:根据字母异位词的...

2019-07-21 10:53:23 242

原创 LeetCode刷题笔记【中等】

两数相加题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 ->...

2019-07-21 10:52:54 250 1

原创 LeetCode刷题笔记【中等】

文章目录Z 字形变换Z 字形变换题目描述:将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。...

2019-07-21 10:52:22 189

原创 LeetCode刷题笔记【多线程】

文章目录交替打印FooBar打印零与奇偶数按序打印H2O 生成交替打印FooBar题目描述:我们提供一个类:class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i =...

2019-07-21 10:51:28 390

原创 LeetCode刷题笔记【困难】

1、柱状图中最大的矩形2、戳气球3、接雨水4、字典序的第K小数字5、寻找两个有序数组的中位数6、正则表达式的匹配7、最长有效括号8、二叉树的最大路径和9、串联所有单词的子串

2019-07-21 10:50:32 280

原创 剑指Offer刷题笔记

文章目录数组中重复的数字不修改数组找出重复的数字替换空格从尾到头打印链表二叉树的下一个节点数组中重复的数字题目描述:找出数组中重复的数字在一个长度为nnn的数字里的所有数字都在0−n−10-n-10−n−1的范围内。数组中某些数字是重复的,但不直到有哪几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。举例:输入:长度为7的数组{2,3,0,2,5,3}输...

2019-07-21 10:49:14 144

原创 剑指Offer刷题笔记

文章目录反转链表反转链表ListNode* reverseList(ListNode* head) { if(head==nullptr) { return nullptr; } ListNode *newList=nullptr; ListNode *cur=head; ...

2019-07-21 10:48:36 110

原创 数据结构—平衡二叉搜索树(AVL)

1、AVL树简介2、AVL树的单旋和双旋操作3、AVL树的插入和删除操作4、判断一棵二叉树是否是AVL树5、判断二叉搜索树是否是AVL树

2019-06-23 20:59:07 375

原创 数据结构—动态规划

1、动态规划与分治法区别2、最长公共子序列问题求解3、最大子段和问题求解4、最长非降子序列问题求解5、硬币选择问题求解6、0-背包动态规划求解

2019-06-23 11:26:19 820

原创 数据结构—回溯法、子集树、排列树

1、子集树和排列树2、轮船装载3、0-1背包4、八皇后5、整数求和6、全排列

2019-06-22 17:53:34 5081

原创 数据结构—红黑树

1、红黑树概念2、红黑树数据结构3、红黑树的插入及删除操作

2019-06-22 10:08:51 156 1

原创 数据库—事务

1、事务的概念2、事务的ACID特性3、事务的隔离级别4、事务处理的方法

2019-06-13 13:29:36 185 1

原创 const用法详解

1、const修饰的变量和普通变量的区别2、const和一级指针的结合3、const和二级指针的结合4、有关const和一二级指针结合面试常见例题

2019-06-12 20:54:27 190

原创 冒泡排序、选择排序、直接插入排序、希尔排序

1、冒泡排序2、选择排序3、直接插入排序4、希尔排序

2019-06-12 00:15:08 315

原创 快速排序、堆排、二路归并排序、基数排序

一、快速排序快速排序的思想:快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都小于基准值,基准右边的元素值 都大于基准值,如此作为基准的元素调整到排序后的正确位置。(1)第一步:找基准int Partion(int *arr,int low,int high)//找基准{ int tmp=arr[low];//tmp...

2019-06-12 00:14:22 683

原创 数据结构—BST

二叉树的定义、二叉树的主要性质、二叉树的数据结构、二叉树的常用操作、BST树的遍历

2019-06-11 21:30:32 650 1

空空如也

空空如也

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

TA关注的人

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