自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM垃圾回收算法

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2021-07-01 14:32:49 243 1

原创 spring-循环依赖

spring-循环依赖详细分析,吊打面试官一篇就够。

2022-01-12 16:33:22 1347

原创 spring-注入

spring不同注入方式,以及使用场景和优缺点

2022-01-11 15:15:27 305

原创 spring源码分析-BeanPostProcessor

BeanPostProcessor接口是spring重要的接口之一,Bean的增强功能大部分都是基于这个接口来实现。如通过 @Autowired、@Value、@Resource、@PostConstruct 和 @PreDestroy等注解都是基于BeanPostProcessor的子接口InstantiationAwareBeanPostProcessor接口实现逻辑处理。

2022-01-11 14:36:50 420

原创 spring源码分析-ConfigurationClassPostProcessor

spring @Configuration注解加载Bean的原理,和源码分析。

2022-01-03 17:59:49 332

原创 spring源码分析-BeanFactoryPostProcessor

BeanFactoryPostProcessor是BeanFactory的一个钩子接口,更是一种扩展,也正是因为这个接口造就了spring加载Bean的方式变得多种多样。我相信大部分开发人员对这个接口可能还存在一些陌生,毕竟这个接口是属于一种底层扩展。

2022-01-03 14:58:51 313

原创 spring源码分析-生命周期

springIOC的生命周期

2021-12-30 18:30:58 621

原创 spring是什么?

spring是一个轻量级的java框架,做java研发的人对这个名词一定不会陌生。但是对spring全面理解的人不是很多,本文将从源码的角度剖析:spring是什么?怎么样?怎么用?

2021-12-30 16:03:05 1624

原创 Elasticsearch centOS7安装

Elasticsearch系列(二)文章目录Elasticsearch系列(二)一、下载二、安装创建用户和用户组安装2.读入数据总结一、下载1、到官方网站下载Elasticsearch(建议下载最新稳定版),下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch2、选择linux64位的版本二、安装创建用户和用户组因为Elasticsearch运行用户不能是root用户,则必须创一个用户(如果系统有已创建

2021-12-11 14:33:44 2285

原创 Elasticsearch是什么?

Elasticsearch系列(一)文章目录Elasticsearch系列(一)前言什么是全文检索?Elasticsearch如何检索?Lucene是什么?分词器倒排索引Elasticsearch总结前言如果读者打开这篇博文,我相信你一定和软件开发有关联,在说Elasticsearch是什么之前,我们先来回顾一下在日常开发中我们是如何存储数据?是的,你大脑肯定在思索传统数据库mysql,oracle和nosql数据库redis,MongoDB,memcached等都可以存储数据啊,没错,但是它们都

2021-12-10 16:31:15 2786

原创 TCP/IP协议

目录前言TCP报头标志位TCP开始连接TCP断开连接为什么建立连接是三次握手,而关闭连接却是四次挥手呢?前言TCP/IP协议是一种基础的网络传输协议,属于OSI七层架构(应用层,表示层,表示层,传输层,网络层,数据链路层,物理层)中的传输层,现在大部分传输协议都是基于该协议完成,如:http协议,https协议,websocket协议等等。TCP报头标志位TCP协议中在报头设计了6个标志位,来标识每一个数据包的动作,它们代表意思如下:URG:紧急标志。紧急标志为"1"表明该位有效。ACK:确认

2021-12-07 18:37:05 1553

原创 5种网络I/O模型

文章目录前言用户态和内核态阻塞式I/O模型非阻塞式I/O模型多路复用I/O(select,poll,epol)模型信号驱动式I/O模型select、poll、epollselectpollepoll前言在网络时代网络模型已经是随处使用了,它是所有网络服务器的理论基础,如Apache、Tomcat、Undertow、Nginx等。本文列出linux系统下常用的网络I/O模型。用户态和内核态一个操作系统通俗来说是硬件资源和软件程序的管理系统,其中硬件资源才是操作系统的底层基础,所以硬件资源管理权限变得

2021-12-06 22:59:54 319

原创 redis在springboot中的应用

redis在springboot中的应用需要代码实现和说明,为了更方便读者理解和实战,请点击下面链接redis在springboot中的应用

2021-12-06 15:18:46 314

原创 redis-cluster 高可用集群管理

文章目录前言一、集群命令(redis-cli --cluster help)二、管理实战总结前言之前我们搭建过redis-cluster高可用集群了,但是没有讨论集群的详细管理,本章我们主要对集群的缩容、扩容和数据迁移三个方面来讨论。 Redis Cluster 在5.0之后取消了ruby脚本 redis-trib.rb的支持(手动命令行添加集群的方式不变),集合到redis-cli里,避免了再安装ruby的相关环境。直接使用redis-clit的参数–cluster 来取代。如何使用redis

2021-12-06 15:12:44 855

原创 redis-cluster高可用集群实战(docker版本)

文章目录一、搭建环境二、搭建三、常见问题一、搭建环境linux centos7redis 5.0以上dockerdocker-compose二、搭建1、准备3台虚拟机,每一台都满足搭建环境192.168.252.128192.168.252.129192.168.252.1302、每一台机器创建/root/redis目录,在该目录下创建docker-compose构建脚本,redis-cluster.sh3、根据脚本每一台虚拟机启动3个服务192.168.252.128创建

2021-12-06 14:57:21 921

转载 数据结构-跳表

一、跳表的基本概念 1、跳表的定义 跳表(SkipList):增加了向前指针的链表叫做指针。跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质是一种可以进行二分查找的有序链表。跳表在原有的有序链表上增加了多级索引,通过索引来实现快速查询。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。 跳表是一个随机化的数据结构,可以被看做二叉树的一个变种,它在性能上和红黑树、AVL树不相上下,但是跳表的原理非常简单,目前在Redis和LevelDB中都有用到。 2、跳表的详解 .

2021-12-06 14:12:24 4608 2

原创 redis集群原理

文章目录前言sentinel模式集群redis-cluster 模式集群(推荐)前言单机模式,硬件资源有限,如果机器故障,直接导致redis不可用。为了提高redis服务稳定、高qps、高扩展,高可用才进行redis的集群搭建。集群主要是通过多个服务相互协调和维护来保证服务的高可用,redis集群一般分为sentinel模式和redis-cluster模式(redis5.0之后官方推出的)sentinel模式集群在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控maste

2021-12-06 05:21:37 83

原创 redis键过期策略

文章目录前言过期策略定时删除惰性删除定期删除redis过期策略原理RDB对过期键的处理AOF对过期键的处理总结前言过期功能是redis的一大亮点,很多功能都基于这个来完成,比如Resion是通过续租setnx命令的过期时间来完成,所以怎么样的业务选择适合的过期策略还是很重要的,本文就来讨论redis中有那些策略。过期策略定时删除在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除优点保证内存被尽快释放能按时删除键缺点若过期

2021-12-06 05:15:54 293

原创 redis持久化

文章目录前言一、RDB原理配置二、AOF原理配置总结前言redis是内存级别的存储系统,断电或机器故障难免数据丢失,为了保证数据的完整redis根据一定的策略将数据保存到硬盘中。目前redis提供了RDB和AOF两种策略互补完成数据持久化。一、RDB原理RDB方式在指定的时间间隔对数据快照备份。这种备份方式有一段时间的间隔,如果在间隔时间内机器发生了故障会丢失这段时间新增的数据。RDB可以开启文件压缩处理的防止文件过大,所以数据备份就是采用这种方式来处理。优点1、RDB是一个非常紧凑的文件

2021-12-06 04:35:12 297

原创 redis数据类型

文章目录前言一、字符串二、散列(hashes)三、列表(lists)四、集合(sets)五、有序集合(sorted sets)六、 事务总结前言Redis 是一个开源的内存级别数据结构存储系统,它可以用作数据库、缓存和消息中间件。是常用的缓存数据库之一,它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatia

2021-12-06 03:53:33 617

原创 redis-centos7安装

文章目录前言一、下载二、安装前言本文讲解linux安装redis的教程(单机版)一、下载根据自己的需求下载对应版本,不要追求高版本,生产环境我们应该要使用稳定版本(redis官网)1、 手动下载然后上传到服务器2、如果linux环境网络能访问redis,可以在linux下拉取wget https://download.redis.io/releases/redis-6.2.6.tar.gz二、安装1、由于redis是由c语言写的,我们下载源码编译安装,所以第一步先确认自己系统是否安装了

2021-12-06 03:23:33 655

原创 mysql5.7主从架构-实战

文章目录前言一、准备环境master配置slave配置前言mysql主从架构有4中,本文使用最常用的无损复制模式来搭建。无损复制是基于GTID技术完成,GTID (Global Transaction ID),也就是全局事务ID, 其保证为每一个在master主上提交的事务在复制集群中可以生成一个唯一的ID,首先从服务器会告诉主服务器已经在从服务器执行完了哪些事务的GTID值,然后主库会有把所有没有在从库上执行的事务,发送到从库上进行执行,并且使用GTID的复制可以保证同一个事务只在指定的从库上执行一次

2021-12-03 22:45:10 344

原创 mysql主从架构原理

文章目录前言原理异步复制同步复制半同步复制无损复制binary log(二进制日志)relay log(中继日志)总结前言msyql是开源的关系数据库,个人或小公司主要以单机版为主。单机版存在问题是在高并发场景下无法做负载均衡,然后为了满足需求msyql官方提供了一种主-从复制的模型,将所有写(insert、update和delete)操作全部执行在主数据库,将所有查询操作执行从数据库,一般情况下是一个主数据库对应多个从数据库(架构模型有很多,一主多从是最常用,也是推荐的模型),本文也主要以这种模型

2021-12-03 19:18:59 286

原创 linux mysql5.7安装

文章目录下载mysql卸载旧版本安装mysql常见错误下载mysql1、mysql官方 下载 地址:https://dev.mysql.com/downloads/mysql/2、选择系统、版本、文件卸载旧版本1. 查看旧版本查看mysql旧版本服务rpm -qa | grep mysql查看mysql旧版本相关依赖服务rpm -qa | grep mariadb-libs2. 卸载旧版本rpm -e --nodeps <相关mysql组件名称>安装mysql

2021-12-03 17:28:18 256

原创 JVM性能调优

文章目录前言性能调优难吗?jvm调优需要懂那些知识?什么是垃圾?如何判定是垃圾?jvm的内存模型?jvm有那些垃圾回收算法?jvm有那些垃圾回收器?找出性能问题相关命令和参数jdk自动工具设定堆内存大小设定新生代大小设定垃圾回收器其他常用参数总结前言java是一门内存垃圾自动回收语言,大部分时候我们都是通过new关键字来创建一个java对象,然而我们并不知道它在底层是如何申请内存和释放内存,归根结底这个强大的功能是由jvm来完成。对于新手经常出现这样的问题,刚开始开发一个项目时接口响应时间很快感觉

2021-12-02 23:54:00 244

原创 java锁-AQS

java锁-AQS 详细讨论java中AQS底层加锁原理和应用。文章目录java锁-AQS前言总结前言总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...

2021-11-26 23:03:03 562

原创 java锁详解

java锁详解 详细讨论java中锁的种类和应用文章目录java锁详解介绍目录介绍java是一门支持高并发编程的语言,在高并发下如何保证多线程之间数据的原子性、有序性和可见性尤为重要。锁是保证这些特性的重要技术之一,在java中锁主要有synchronized关键字、Lock接口、ReadWriteLock接口、Condition接口这几种方式。下面详细讨论他们的原理和用法目录1. synchronized关键字2. Lock接口3. ReadWriteLock接口4. Condit

2021-11-26 23:00:35 300

原创 java锁-Condition

java锁-Condition 详细讨论java中Condition接口的实现类底层加锁原理和应用。文章目录java锁-Condition前言总结前言总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...

2021-11-26 22:58:04 100

原创 java锁-ReadWriteLock

java锁-ReadWriteLock 详细讨论java中ReadWriteLock实现类的底层加锁原理和应用。文章目录java锁-ReadWriteLock前言总结前言总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...

2021-11-26 22:55:43 650

原创 java锁-Lock

java锁-Lock 详细讨论java中Lock接口底层加锁原理和应用。文章目录java锁-Lock前言总结前言总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...

2021-11-26 22:53:28 600

原创 java锁-synchronized

java锁-synchronized关键字 详细讨论java中synchronized关键字底层加锁原理和应用。文章目录java锁-synchronized关键字前言总结前言总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...

2021-11-26 22:50:17 744 1

原创 数据结构-队列

数据结构-队列数据结构本身和语言无关,为了方便理解本文使用java语言举例说明,介绍队列是什么?队列特性和队列使用场景文章目录数据结构-队列一、队列是什么二、java实现队列1.实现类2.测试3.测试结果:特性应用场景总结一、队列是什么队列也是一种线性结构,像一根管道一样,数据从一头进入从另一头出来,是有序的,也是我们经常说的先进先出。二、java实现队列1.实现类package com.luodea.datastructure;/** * 数据结构-队列 * @author

2021-11-24 17:47:13 530

原创 数据结构-栈

数据结构-栈数据结构本身和语言无关,为了方便理解本文使用java语言举例说明,介绍栈是什么?栈特性和栈使用场景文章目录数据结构-栈一、栈是什么二、java实现栈1.栈实现类2.测试3.测试结果:特性优缺点1.优点1.缺点应用场景总结一、栈是什么栈(stack)是一种运算受限的线性表。只能在栈顶进行插入和删除操作的线性表。顶部称为栈顶,相对地,底部称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶

2021-11-24 14:31:03 886

原创 数据结构-数组

数据机构-数组数据结构本身和语言无关,为了方便理解本文使用java语言举例说明,介绍数组是什么?数组特性和数组使用场景文章目录数据机构-数组一、数组是什么?二、使用1. 创建数组2. 插入数据3. 获取数据优缺点1.优点1.缺点总结一、数组是什么?数组是一组拥有相同数据类型且有序的线性结构数据组。在计算机内存中是连续的地址空间。由于需要分配连续地址空间所以在定义时就必须明确指定数组长度。二、使用1. 创建数组根据创建数据类型和长度在内存中开辟一个对应大小的内存空间。int arrCou

2021-11-24 12:52:51 805

原创 Serial、Serial Old、ParNew、ParNew Old垃圾回收器

java虚拟机垃圾回收器 java虚拟机经典垃圾回收器 — Serial、ParNew目录java虚拟机垃圾回收器前言目标Serial 垃圾回收器ParNew 垃圾回收器总结前言众所周知java语言是垃圾自动回收语言,垃圾自动回收机制是基于java虚拟机的垃圾回收器完成。 为了适应不同的需求,虚拟机设计者们开发了多种不同的垃圾回收器,其中最为经典也最为古老的垃圾收集器Serial和ParNew就不得不提了,本文根据时间线介绍这两款垃圾收集器。本文会涉及到java虚拟机垃圾回收相关专业术语,如第

2021-07-04 20:18:00 429

原创 java虚拟机垃圾回收专业术语

java虚拟机垃圾回收器系列 java虚拟机垃圾回收器— 专业术语文章目录java虚拟机垃圾回收器系列目标GC线程用户线程串行 (Serial)并行 (Parallel)STW (stop the world)并发 (Concurrent)暂停时间吞吐量目标了解java虚拟机垃圾回收器的相关专业术语GC线程java虚拟机在垃圾回收过程总使用的线程(专业处理GC的工作线程)。用户线程java虚拟机执行字节码相关的工作线程(如执行类加载、代码逻辑等工作线程)。串行

2021-07-03 17:36:30 170

原创 java虚拟机内存模型

说到java语言我相信大家一定不陌生,但我更相信大部分java开发人员对jvm是既熟悉又陌生。都知道java是运行在jvm之上,不知道jvm是如何执行java;都知道java是面向对象高级语言,不知道对象在jvm中的内存结构;都知道java的大部分对象保存在堆中变量保存在栈中,不知道jvm是如何设计堆和栈以及在开发中会出现怎么样的问题;都知道java中存在线程安全和非线程安全的操作,但不知道jvm中那些内存块会出现这些问题以及

2021-06-29 14:47:05 610

原创 Java 类加载机制和运行原理详解

Java 运行原理详解前言阅读对象目标java 运行流程前言阅读对象本文是博主根据自己经验和查阅资料完成,如有不正确之处欢迎指正。本文主要针对Java语言有一定基础且想提高技术深度的人员。如果你还是一个小白推荐Java入门教程。如果你有以下几个疑问欢迎阅读1. Java文件(xxx.java)是如何转为字节码文件(xxx.class)?2. 字节码文件内存结构模型?3. Java虚拟机是如何加载字节码文件?4. Java虚拟机是如何执行代码?5. Java虚拟机的内存模型?6. Java对

2021-06-27 12:13:45 1055 1

原创 字节码技术

java字节码内存模型

2021-06-27 12:07:30 656 2

空空如也

空空如也

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

TA关注的人

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