自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kafka你真的了解吗

消息: Record。Kafka是消息引擎嘛,这里的消息就是指Kafka处理的主要对象。主题: Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。分区: Partition。一个有序不变的消息序列。每个主题下可以有多个分区。消息位移: Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。副本: Replica。Kafka中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。

2023-03-24 16:17:28 389

原创 java代码发送http post请求

1,使用springboot自带的restTemplate(感觉这个很容易踩坑,特别是公司项目下使用,一不小心就容易报错)org.springframework.web.client.RestClientException: No HttpMessageConverter for java.util.LinkedHashMap and content type “application/x-www-form-urlencoded;charset=UTF-8”,很容易就犯了这样的错。type是可变的比如a

2022-07-14 17:51:46 4820 2

原创 ES的操作

es是用于来搜索无结构的,使用的是倒排索引,es创建一个索引就相当于是创建一个数据库。(1)创建索引,是用put方法来进行的,uri后面跟着索引的名字(2)查询这个es创建的所有索引(3)查看单个索引,你就后面跟某个索引的名字就行(4)在对应的数据添加数据http://127.0.0.1:9200/索引名字/_doc记住格式要用json的格式,而且发送额方法是post,如果不是post的话就会报错(5)条件查询可以不把索引对应的所有数据查询出来,只查询自己想要的数据(6)查询指定的字段...

2022-07-07 21:57:15 484

原创 es7创建索引容易犯的错误

(1)es的type错误,对于es7来说,没有String类型只有text类型或者keyword类型(2)"Root mapping definition has unsupported parameters:出现这个错误,还是版本问题。记住es7mapping后面直接对接properties就可以了,不需要其他的,这个都是es6使用的。(3)Failed to parse value [not_analyzed] as only [true] or [false] are allowed这依旧是版

2022-06-30 23:12:18 1223

原创 操作系统45战笔记(1)

文章目录Cpu的工作的三种模式Cpu的工作的三种模式自从cpu迭代而来,产生了三种模式,实模式保护模式长模式1、x86 CPU的位数越来越高,从16到32到64,每次进步都尽量的去兼容了之前的CPU架构,所以:A、16位时寻址能力不足,所以要借助额外的寄存器进行1M空间的寻 址;32位时,每个程序都有自己独立的4G寻址空间,操作系统用低位的1G-2G,其余留给用户程序;64位后,暂时就遇不到寻址能力不足的事情了;B、前一代的寄存器尽量保留,不够用就扩展新的C、寄存器的长度

2022-05-12 15:29:46 159

原创 redis的主从复制

文章目录1,redis的复制是什么2,旧版redis的复制功能同步命令传播旧版本复制得缺点3,新版的复制部分完整重同步的实现1,redis的复制是什么对于redis来说,单机的布置是当然不够的,这时候就需要多个redis节点,当有多个节点的时候,就要确定谁是主机,谁是从机,还有数据的一致性问题。为了维护数据的一致性问题,从机就要从主机复制数据,要使两台机器的数据处于同一个阶段,这就是redis的复制。在执行slaveof(现在采用replicaof)命令后就会进行复制。从机A的Ip地址:端口号 sla

2022-05-10 20:53:56 446

原创 不一样的浏览器

文章目录1,浏览器里面的进程个数2,从浏览器的方向理解输入URL请求3,使用谷歌浏览器抓包4,两种http包体的传输方式5,TCP协议的特点1,浏览器里面的进程个数我们来说一说对于谷歌浏览器,他开启是有多少个进程。查看进程是怎么查看的呢,首先点开左上角三个点–》更多工具–》任务管理器,每个电脑打开的页面,安装的插件不同,导致的浏览器的进程也是不同的。最开始的时候,浏览器的是单进程的,页面渲染,用户交互等都是一个进程,缺点就是运行缓慢,不稳定。然后就分为四个进程,分别是,浏览器进程,渲染进程,Gpu进程,

2022-05-07 15:34:16 138

原创 kafka笔记(1)

文章目录1,消息队列的两种模式点对点模式发布/订阅模式2,kafka的基础架构3,kafka的命令行操作4,kafka的发送过程5,Idea编写kafka6,kafka分区器的优点7,分区的策略主要有三种分区策略8,kafka的可靠传输a,解决重复传输----幂等性b,幂等性的原理c,事务目前md文件尚未上传到git仓库中,如果需要md文件的可以私信我kafka中的结构组件是什么Producer消息生产者:向Broker发送消息的客户端Producer消息消费者:从Br

2022-04-30 15:35:49 701

原创 kafka安装

1,kafka的下载下载地址(1)点击下载 (2)下载箭头所指(3)两个都可以下载 (4),下载后用xftp把包导入linux中2,kafka的安装(1),解压 tar -zxvf kafka_2.12-3.1.0.tgz -C /usr/local//这里/usr/local是我自己解压创建好的目录,你可以自己换(2),查看是否解压完好,并且修改名称。(可以不修改,只是为了方便)(3)进入config文件进行配置(主要有三个位置需要配置) a,配置多个kafk

2022-04-29 10:35:43 1102

原创 安装RabbitMQ过程,包含错误的解决

1,选择对应的RabbitMQ版本,而且对于mq运行是需要有Erlang支持的,具体下载版本,下载途径可以看这位老哥的下载链接我下载的版本2,上传安装包到linux中(可通过xshell上传)3,安装erlang环境rpm -ivh erlang-debuginfo-23.3.4.11-1.el7.x86_64.rpm4,再安装mq之前先安装依赖yum install socat -y5,安装mq在安装mq的时候出现了差错这个时候在后面加上 --force --nodep

2022-04-24 14:15:06 3300

原创 教你如何快速解决二叉树类的算法题

笔记依照于东哥所著算法文章目录二叉树类的题如何思考例题二叉树类的题如何思考二叉树解题的思维模式分两类:1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个 traverse 函数配合外部变量来实现,这叫「遍历」的思维模式。2、是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案?如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值,这叫「分解问题」的思维模式。无论使用哪种思维模式,你都需要思考:如果单独抽出一个二叉树节点,它需要做什么事情?需要在什么时候(前/中/后

2022-04-12 08:55:25 367

原创 mysql的一些事(一)

1,count(*)的一些事相信我们都知道,在执行count(*)语句的情况下,Myisam执行速度通是O(1)级别的,是比innodb是要执行要快的,这是因为Myisam中对于行的个数是专门有个字段记录的,而innodb是一行行的来统计才得出的。但是为什么,innodb也不弄一个字段来存储行数。因为MVCC机制的作用,MVCC是多版本并发控制,innodb是支持事务的,在多个事务执行期间,由于MVCC机制,他会导致每个事务所读取的行数是不相同的(如下图)。这就是为什么不弄一个专门的字段来存储。

2022-03-28 15:55:48 733

原创 题解LRU算法

LRU算法,最久未被使用算法,有一个固定大小的cache,当装不下任务的时候,就会选取,最久未被使用过的任务,进行淘汰。对于LRU要求有如下:1,查找和删除都是O1级别的,O1级别立马就想到了hash表结构,满足这个要求。2,要求把使用过的任务安放起来,用的时候,就去寻找,这个想到了用链表来实现。实际上java中提供了这两种结构的结合题,这就是LinkedHashMap。用这种结构就能解决力扣上的LRU算法题,代码如下:class LRUCache { private int ca

2022-03-26 21:13:28 1852

原创 (mysql)使用了删除,为什么表的空间还是不变

今天发现了一个问题,当我执行删除语句的时候,删除了表中的一些行,所占的空间是不变的。后面我干脆把整个表的给删除了,发现还是表大小不变。让我感觉有点奇妙,后面阅读了极客文章知道了原因。innoDB表包含两部分:表结构定义和数据。MySQL8.0之前,表结构是存在 .frm 为后缀的文件里,8.0版本则允许把表结构定义放在系统数据表中了。参数 innodb_file_per_table参数 innodb_file_per_table 设置为OFF时,表的数据放在共享表空间,也就是跟数据字典放在一起;当设置

2022-03-23 20:41:17 2017

原创 操作系统内存图解

虚拟地址和物理地址相映射的关系有两种一种是用段的方式分配内存一种是用页的方式分配内存![请添加图片描述](https://img-blog.csdnimg.cn/24bbaaf5f6274d90a1d353b97ccfbe5f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6K6h566X5py65Lit55qE5bCP5Z6D5Zy-,size_15,color_FFFFFF,t_70,g_s

2022-03-17 12:20:58 412

原创 ServletRequestAttributes疑惑与想法

如有错误请指出谢谢今天在看项目的时候,在统一记录日志的时候,发现了一个很长的单词ServletRequestAttributes,中文意思是Servlet请求属性,使用方法是这样的。 @Before("pointcut()") public void before(JoinPoint joinPoint) { // 用户[1.2.3.4],在[xxx],访问了[com.nowcoder.community.service.xxx()]. ServletReque

2022-02-26 16:05:41 1897 2

原创 sort里面的排序算法

如有错误请指出谢谢当我们调用Arrays中的api进行排序的时候,我们有没有想下,里面用的是什么排序呢?今天我们就来看一看public static void sort(int[] a) { //里面又调用了另一个方法 DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0); }static void sort(int[] a, int left, int right,

2022-02-25 21:14:16 494 2

原创 HashMap1.8中的Put源码

当我们再调用hashMap中的put方法的时候,其实put内部又调用了putVal方法public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }在调用putVal方法的时候,就把key的hash计算当成参数传进去了final V putVal(int hash, K key, V value, boolean onlyIfAbsent,

2022-02-23 20:00:21 365

原创 事务持久性的实现原理

我们知道事务ACID,原子性,持久性,隔离性,一致性原子性是通过undo日志来实现的,隔离性是通过各种锁来实现的,持久性是通过redo日志实现的,今天我们就来盘一盘。**为什么需要redo:**数据库操作数据不是直接在磁盘中操作的,而是在内存有个buffer pool,当需要操作某个数据的时候,先把数据所处的那一页刷入内存,然后在内存中修改完成后再刷入道磁盘中,折磨一说好像没毛病,但是有这样一个问题,当我们事务提交了,内存中数据修改了,但是这时服务器坏了,电脑关机了,内存中的数据没到磁盘中,这该怎么办。

2022-02-15 22:41:37 693

原创 对象的创建过程

1、判断对象对应的类是否加载、链接、初始化虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载,解析和初始化。(即判断类元信息是否存在)。如果该类没有加载,那么在双亲委派模式下,使用当前类加载器以ClassLoader + 包名 + 类名为key进行查找对应的.class文件,如果没有找到文件,则抛出ClassNotFoundException异常,如果找到,则进行类加载,并生成对应的Class对象。

2022-02-12 23:29:45 158

原创 了解volatile

介绍:volatile是Java中的一个轻量级同步机制,主要有三个特性,1,可见性,2,有序性,3,不保证原子性可见性:在介绍可见性我还得介绍另一个东西,JMM。这是一个规范,他描述了获取变量的一些规范,屏蔽各种硬件和操作系统的内存访问差异,实现让 Java 程序在各种平台下都能达到一致的内存访问效果规定了线程和内存之间的一些关系。JMM里面规定,线程共享的变量存储在主内存中,每个线程有自己的一个工作内存,每次都是先把主内存中的数据拷贝到自己的工作内存进行操作,然在写入主内存这就引发一件事数据不一致

2022-02-07 00:21:03 317

原创 面试常问 lock和synchronized的区别

只是当前所了解的总结,如有不完善或错误请指出,谢谢1,两者都是基于去解决线程安全的问题去的。2,从锁的实现方面来谈论:synchronized是JVM来实现的。是关键字层次的,他的原理是通过Monitor(监管器),这个Monitor也是一个class,实例是存储在堆里。每个 Java 对象都可以关联一个 Monitor 对象。如果使用 synchronized 给对象上锁(重量级)之后,该对象头的 Mark Word 中就被设置指向 Monitor 对象的指针,这就是重量级锁。锁原理会再开篇文章讲

2022-01-14 18:40:07 242

原创 sql语句的执行过程

相信我们程序员打交道最多的就是数据了,而与数据牵扯到的最多的就是数据库了。sql语句相信都会写,但是我们如果要知道sql语句的执行过程呢?1,首先介绍一条查询语句的执行过程:先了解下mysql的组成。mysql是分为两个部分的,分别是server层和存储引擎层 server层中有连接器,查询缓存,分析器,优化器,执行器等,所有的跨存储引擎操作都是在server层,例如视图,等。存储引擎在mysql中有很多种,MYISAM,InnoDB,Memory,负责的是数据的存储和提取注意 :不同的

2022-01-07 20:15:12 765

原创 聊聊几种创建多线程的方法

在这篇文章中,博主来说说博主了解到的几种创建多线程的方法1,直接继承Thread方法,来创建多线程:这种方法是最先接触到多线程所了解到的方法,当需要一个类需要创建多线程的时候让这个类继承Thread,重写其中的run()方法第一步,继承Thread类,重写run方法:class MyThread extends Thread{ @Override public void run() { for (int i = 0; i <100 ; i++) {

2021-09-25 16:49:44 298

原创 关于Statement和Prestatement区别

Statement是java.sql包下的一个接口,想必在学习过jdbc的同学们就对这个接口有一定的印象,Statement接口下有很多方法是对sql语句处理的,例如executeQuery(“sql语句”)方法 //3,创建数据库对象 Statement stmt=con.createStatement(); //4,对数据库进行操作 String sql="select * from dept"; ResultSe..

2021-09-19 21:59:58 961 1

原创 关于java中常见的几个默认初始值和扩容倍数

StringBuffer的默认容量是16,当不赋值的时候,调用续保构造函数的时候,给StringBuffer默认16的容量大小

2021-09-11 23:50:36 675 2

原创 2020-05-20

今天5.20第一天打卡

2020-05-20 00:35:30 82

空空如也

空空如也

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

TA关注的人

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