自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL索引(B树、B+树)

目录简介索引结构(树)为什么用树,而不用哈希表BTree索引B+Tree索引聚簇索引与非聚簇索引简介MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。优点:1、类似大学图

2022-02-27 19:14:45 7585 8

原创 ZooKeeper分布式锁实现

目录什么是分布式锁zookeeper分布式锁原理什么是分布式锁1、在我们进行单机应用开发,涉及并发同步的时候,我们往往采用synchronized或者Lock的方式来解决多线程间的代码同步问题,这时多线程的运行都是在同一个JVM之下,没有任何问题。2、但当我们的应用是分布式集群工作的情况下,属于多JVM下的工作环境,跨JVM之间已经无法通过多线程的锁解决同步问题。那么就需要一种更加高级的锁机制,来处理种跨机器的进程之间的数据同步问题——这就是分布式锁。(多节点从分布式组件中获取锁)3、其他分布式

2022-02-09 22:19:38 1751

原创 Zab协议及工作原理

Zab协议事务编号 Zxid(事务请求计数器+ epoch)两种基本模式:(崩溃)恢复和原子广播工作原理投票机制:如何选leader?在服务器集群中,我们讲到,第二次请求任何一台服务器都能够像第一次那样获得我们想要的数据信息,因为zookeeper将服务器集群进行了数据的一致统一。Zab协议就是为分布式协调服务ZooKeeper专门设计的一种支持奔溃恢复的原子广播协议,实现分布式数据一致性。、事务编号 Zxid(事务请求计数器+ epoch)在 ZAB ( ZooKeeper Atomic Broa

2022-02-08 21:31:04 1737

原创 计算机的I/O设备及I/O设备控制方式(DMA、IO通道)

目录I/O设备设备控制器对IO设备的控制方式DMA(直接内存访问)通道I/O设备除了CPU和主存外,计算机系统的每一部分都可作为一个外围设备来看待。外围设备的功能是在计算机和其他机器之间,以及计算机与用户之间提供联系。五大类外围设备:设备控制器IO设备一般是由执行IO操作的机械部分和执行控制IO的电子部件组成。通常将这两部分分开,执行IO操作的机械部分就是一般的IO设备,而执行控制IO的电子部件则称为设备控制器或适配器。可见,设备并不是直接与CPU进行通信,而是与设备控制器通信。设备控制器

2021-11-14 00:08:15 7635 1

原创 TCP/IP——Windows下常用DOS指令

目录ipconfigipconfig /allping IP addresstracert IPnetstatnbtstatipconfigipconfig /allping IP addresstracert IP追踪目的地址的路径信息。netstatnetstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。Netstat的一些常用选项netstat -s——本选项能够按照各个协议分别显示其统计数据。netstat -e—

2021-11-01 12:51:47 12276 6

原创 计算机网络面经——计算机网络详细知识点

目录计算机网络体系结构网络接口层物理层数据链路层网络层(IP协议)运输层(TCP、UDP协议)应用层计算机网络体系结构应用层:应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。(DNS,HTTP,SMTP等)运输层:运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。主要使用以下两种协议(传输控制协议TCP、用户数据报协议UDP)网络层:网络层负责为分组交换网上的不同主机提供通信服务(IP协议)数据链路层:负责互

2021-10-24 00:22:39 7782 2

原创 Java实现飞机大战(详细思路与过程,含源代码)

目录演示构思演示 飞机大战 构思首先,要把整体的游戏框架和内容构思出来(根据预先构思游戏里存在的组件内容的游戏功能抽象出指定类)。以我的小游戏为例:1.主界面框架类:GameFrame(extends JFrame)           显示开始界面2.弹出界面类:Dialog (extends JDialog)&n

2021-08-07 12:36:20 20913 6

原创 (进程/线程)阻塞、挂起、睡眠的区别

目录共同本质:阻塞:(被动)挂起(主动)睡眠(主动)共同本质:正在执行的进程/线程,由于某些原因(主、被动)释放CPU,暂停执行(这里讨论的均是处于运行状态的进/线程) 阻塞:(被动)进/线程被动暂停执行,阻塞的进程仍处于内存中,OS把处理机分配给另一个就绪进程,而让被暂停的进程处于暂停状态。(自动)阻塞恢复:需要在等待的资源得到满足(例如获得了锁)后,才会进入就绪状态,等待被调度而执行。阻塞原因:进程:进程由于提出系统服务请求(如I/O操作),但因为某种原因未得到操作系统的立

2021-07-30 12:38:03 3556

原创 二维码图像编码原理(字符编码:ASCII、UTF-8)

信息编码基本原理我们日常甚或中

2021-07-26 12:51:56 12795

原创 Java实现图片渲染((拖动)马赛克、黑白照、油画风格等)

一次性绘画所有像素点紧接上一篇实现图片渲染链接: java实现图片渲染.可以发现:只前在绘画图片的时候速度非常的慢。那是因为每次只要一获得像素就立即将其绘画出来。g.setColor(color);g.fillRect(i, j,1, 1)在内存中执行代码后,会向GPU请求刷新屏幕,一张图片有成千上万个像素,那么屏幕就会连续刷新很多次,速度非常慢。例如,如果电脑屏幕的刷新率是60赫兹的话,意味着一秒钟屏幕会刷新60次,放到这里来讲的话,一秒钟最多显示60个像素,对于分辨率极高的图片,要加载出来,

2021-07-21 20:11:18 1649 2

原创 图片渲染(图像编码原理)

根据图像编码原理给图片渲染(马赛克、油画风格等图像的编码原理图像的编码原理图像是由一个个带有颜色的小格组成的,每个小格的颜色都是唯一的。一张图片的像素个数=长*宽。所以不难理解,为什么一张图片的像素(像素点个数)越高,图片就越清晰,因为图片的精密度更高。下图显示的是一个分辨率为 900 ×\times× 600的图片。而每个像素的颜色取值是通过RGB模式确定的,RGB色彩就是常说的光学三原色,R代表Red(红色),G代表Green(绿色),B代表Blue(蓝色)。自然界中肉眼所能看到的任何色彩都可以

2021-07-12 11:08:40 2705

原创 Java——类和对象(类的继承、重载与重写、对象转型、关键字abstract)

Java 类的继承、对象转型目录Java 类的继承、对象转型类的继承构造器方法方法重写对象转型向上转型应用场景向下转型类的继承java当中一个类可以被另一个类通过关键字extends继承,继承的类成为子类或派生类,被继承的类成为父类、基类或者超类。eg:public class UNStudent extends Student{}子类: UNStudent 父类: UNStudent现在有一个父类Studentpublic class Student { private

2021-06-12 17:33:09 2463

转载 转:Kubernetes vs Docker Swarm:完整的比较指南

Kubernetes vs Docker Swarm:完整的比较指南

2022-08-12 01:25:35 1053 1

转载 转:idea中language level设置

idea

2022-07-25 23:00:16 15738

原创 用递归进行数组求和

i++ ++i i+1

2022-07-22 15:38:36 879

原创 守护线程及应用场景

守护线程

2022-07-15 20:56:52 1919

转载 转:linux零拷贝

linux

2022-07-13 18:33:44 808

转载 转:kafka为什么抛弃zookeeper

kafka zookeeper

2022-07-13 09:54:22 1555

转载 @RequestBody注解

@RequestBody的使用

2022-06-22 10:36:10 4482

原创 Git使用记录(Github参与开源项目)

git使用 开源项目 github

2022-06-11 13:40:13 806 1

转载 git branch后不显示本地分支的解决方法

git status

2022-06-11 13:17:57 4588

转载 Linux: -bash: apt-get: command not found

日常错误

2022-06-10 20:38:53 5017

转载 wget命令使用

linux——wget指令

2022-06-09 23:38:11 1618

原创 Linux命令使用记录

目录ps -ef|grep详解kill -9杀进程tail查看日志curlps -ef|grep详解kill -9杀进程linux 的信号机制信号是Linux中非常重要的部分。信号机制是进程间相互传递消息的一种方法,全称为软中断信号。信号可以看作进程控制的一部分。tail查看日志curl详解:https://blog.csdn.net/angle_chen123/article/details/120675472......

2022-06-09 00:34:59 113

原创 Elasticsearch——Mapping

mappingcopy_to 用法:index :当在es中存了一些字段,当你不希望这些字段被查询,那么就可以通过index字段设置(比如身份证号)详细设置参考官网文档日期的自动识别:数字的自动识别:使用建议:当多个字段需要我们设置mapping时,先使用自带的然后,getmapping,将mapping复制过来直接修改就可以了

2022-06-01 17:32:07 155

原创 Elasticsearch——倒排索引与分词

目录正排索引和倒排索引倒排索引的构成单词词典倒排列表分词Analyze APIes自带分词器自定义分词正排索引和倒排索引正排索引:文档ID到文档内容、单词的关联关系根据文档id获取文档内容倒排索引:单词到文档ID的关联关系:根据单词可以获取到它属于哪个文档两者关系:将文档内容分词即可得到倒排索引。因此我们可以将两者结合实现一个搜索流程:倒排索引的构成单词词典倒排列表分词分词是将文本转换成一系列单词的过程,也可以叫做文本分析,在es里面称为Analysis

2022-05-30 15:22:52 265

原创 DFS、BFS的区别

面试问题:请说一下BFS和DFS在算法实现上的本质区别?BFS用队列来记住下一个节点,DFS用栈来记录下一个节点。

2022-05-17 19:59:48 248

原创 @RunWith(SpringRunner.class)注解

正常情况下测试类是需要@RunWith的,作用是告诉java你这个类通过用什么运行环境运行,例如启动和创建spring的应用上下文。否则你需要为此在启动时写一堆的环境配置代码。但是idea编辑器里可以自动识别一个JUNIT的运行环境,所以可以不用加。但在其他编辑器,例如eclipse里面就必须加...

2022-04-30 20:59:06 689

转载 注解@TableName、@TableField

目录@TableName(value = …)当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名(不加这个注解默认将实体类的小写形式在db中寻找)@TableField 字段注解,该注解用于标识非主键的字段。将数据库列与 JavaBean 中的属性进行映射@TableId(type = …)指定实体类的属性为对应的主键,主要有以下几种:// 数据库ID自增IdType.AUTO// 该类型为未设置主键类型(默认)IdType.NONE /** * 用户输入ID

2022-04-10 16:51:34 30576

原创 BigInterger、BigDecimal的使用

目录BigIntegerBigDecimalimport org.junit.Test;import java.math.BigInteger;import java.util.*;/** * @author guochao * @date 2022/4/9 */public class Main { static BigInteger resInteger = new BigInteger("0"); public static void main(String[] a

2022-04-09 20:04:41 690

原创 递归心得记录

目录循环与递归?递归的写法?如何切入递归尾递归递归出口怎么找循环与递归?递归:程序调用自身的编程技巧称为递归( recursion)突然脑子闪现一个想法:递归是调用自身,再直白一点就是调用同一段代码,这不就是循环也可以做到的事吗?以单链表转置代码为例:// 双指针class Solution { public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode cur =

2022-03-18 13:19:25 591

原创 二叉树——二叉查找树、平衡二叉树(红黑树)

王争——数据结构与算法之美

2022-03-05 22:45:09 1756

原创 springboot整合Mybatis-Plus

1、导入依赖:<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3&l

2022-02-23 23:31:53 438

原创 SpringBoot解决跨域问题

import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class CrosConfig implemen

2022-02-23 23:14:02 100

转载 布隆过滤器原理

目录什么情况下需要布隆过滤器?常规思路布隆过滤器介绍(原理)原文连接:链接: https://www.cnblogs.com/cpselvis/p/6265825.html.什么情况下需要布隆过滤器?1、字处理软件中,需要检查一个英语单词是否拼写正确2、在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上3、在网络爬虫里,一个网址是否被访问过4、yahoo, gmail等邮箱垃圾邮件过滤功能这几个例子有一个共同的特点: 如何判断一个元素是否存在一个集合中?(作者这句话我觉得总结的很到位)常规思路

2022-02-23 10:22:49 125

原创 Redis缓存——(分布式锁)

目录缓存击穿,穿透,雪崩缓存击穿,穿透,雪崩

2022-02-22 22:34:05 1300 1

原创 JUC——读写锁

目录读写锁介绍ReentrantReadWriteLockCOW和读写锁对比读写锁介绍读锁又叫共享锁,可以允许多个线程读数据;写锁又叫做独占锁,只能允许一个线程进行写操作。读锁和写锁都可能引起死锁现象:所以为避免死锁现象,对相应数据上什么锁,就只对相应数据做什么操作。ReentrantReadWriteLock读锁在同一时刻可以允许多个读线程获取,即允许多个读线程同时上锁读取数据,不允许写线程获取操作。(上多个读锁:允许多个读线程,不允许写线程)写锁同一时刻只能有一个写线程获取成功,其他都

2022-02-11 12:47:22 962

原创 JUC——辅助类

目录CountDownLatchCyclicBarrierSemaphoreCountDownLatch减少计数器public class CountDownLatchDemo{ public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch = new CountDownLatch(6); for (int i =

2022-02-11 11:03:41 138

原创 JUC——Callable接口

目录Callable接口原理Callable接口未来的任务,用它就干一件事,异步调用。Callable接口介绍:(1)java.util.concurrent.Callable是一个泛型接口,只有一个call()方法(2)call()方法抛出异常Exception异常,且返回一个指定的泛型类对象使用Callable接口实现多线程的步骤(1)第一步:创建Callable子类的实例化对象(2)第二步:创建FutureTask对象,并将Callable对象传入FutureTask的构造方法中(注

2022-02-10 23:42:13 437

原创 多线程锁synchronized多种测试案例

1、标准访问,先打印短信还是邮件class Phone { public synchronized void sendSMS() throws Exception { //TimeUnit.SECONDS.sleep(4); //即使是当前线程sleep4秒,其他线程也无法调用此类中的所有synchronized方法,因为锁就是当前调用此方法的对象,且并没有释放。 System.out.println("------sendSMS"); }

2022-02-10 22:08:18 835

空空如也

空空如也

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

TA关注的人

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