- 博客(15)
- 收藏
- 关注
原创 关于系统涉及的I/O模型
本文已被收录至 GitHub: https://github.com/JavaLiuTongXue/JavaCoding ,想要获取更多的干货文章,可以关注公众号:不会说话的刘同学我们平时说的I/O操作有两种,一种是本地磁盘I/O,也就是我们经常使用的 InputStream 和 OutputStream (这两个类是用于本地磁盘I/O操作),另外一种是网络I/O操作,也就是我平时通过网络进行读取或发送数据,比如通过 http 请求一个接口,接口里所涉及到的请求数据和响应数据。
2022-12-19 16:52:56
172
1
原创 Redis的持久化机制及其持久化策略
本文已被收录至 GitHub: https://github.com/JavaLiuTongXue/JavaCoding ,想要获取更多的干货文章,可以关注公众号:不会说话的刘同学Redis 虽然是一个内存数据库,但是为了保证在宕机的时候能够让数据迅速的恢复到最初的状态,Redis 提供了三种持久化机制—RDB 、AOF、混合持久化本篇文章就来具体讲讲这几种持久化机制及其对应的持久化策略。
2022-12-13 13:14:47
361
原创 Redis集群架构所产生的问题及如何处理
如果Redis是单节点部署的话,那如果Redis在那种高并发的环境下突然挂掉了,那基本上就玩完了,就算Redis对数据做了持久化,Redis重启之后要去恢复数据的话估计也要花费很久的时间,这样也极大的影响了项目的运行因此在那种高并发的环境下,一般对于Redis的部署都是集群部署的,以此来保证高可用Redis的高可用架构一共分为三种—主从、哨兵、Redis Cluster,它们虽然能够保证Redis的高可用,但是在使用的过程中还是会存在一定的问题对于Redis集群如何进行搭建,可以看下这篇文章 : Redis
2022-12-09 19:34:01
923
原创 Redis对于过期key的处理
对于过期键的处理,Redis一共提供了两种过期策略,不同的策略也会影响Redis的性能下面我就来具体讲讲这两种过期策略Redis会将每个设置了过期时间的key放入一个独立的字典中,之后会定时遍历这个字典来删除到期的keyRedis默认每秒进行10次过期扫描,过期扫描不会遍历过期字典中所有的key,而是采用了一种简单的贪心策略,如下:这种随机从字典里选择删除key在一定程度下可以保证主线程在处理过期key的时候不会占用太多的时间但是如果Redis实例中所有的key都在同一时间过期,那么Redis会持续扫描过期
2022-11-26 19:10:06
2209
原创 Redis集群搭建
Redis是我们在平时开发中经常会用到的一个缓存数据库,特别是在高并发环境下,可以抗住很高的流量,很大的程度上提高了项目的性能Redis运用之所以这么广泛有一个很大的原因,那就是可以很好的支持集群模式,到现在Redis一共支持三种集群模式----主从模式、哨兵模式、Redis Cluster集群。
2022-11-19 22:21:20
608
原创 Spring Bean的生命周期及各个阶段的回调
本文已被收录至GitHub如果想要获取更多的干货文章,关注微信公众号:不会说话的刘同学Spring在日常开发中用得比较多,对于Bean的创建及使用也非常的熟练,但是Bean在创建的过程中也会涉及到生命周期及各个阶段的回调,本片文章就来说说Spring Bean的生命周期及各个阶段的回调,看完绝对在日后的面试中或开发中有所帮助。
2022-11-14 12:40:14
449
原创 Java8对于集合的操作(一)
Java8最大的特性就是提供了一组流式API对于集合的操作,那么我们具体来看看有那些个API是如何对集合进行操作的在将如何够一个集合之前,我们先来看看Stream这个接口,我们所有所使用的对于集合操作的API都定义在了这个接口里,这个类除了定义了一些接口之外,还定义了很多的静态方法,以便于我们能更好的操作,其中就包括构建集合我们平时在写程序的时候,有时候往往需要自己来手动构建一个集合,那么对于集合的构建,我们可以这样来写但是这样写虽然可以达到我们的目的,但是却花了五行代码,这个编码的过程非常的繁琐Stre
2022-07-03 10:25:43
515
原创 Spring的AOP原理
Spring的AOP是我们在开发中比较常用的一种思想,比如日志的数据等,那Spring是如何通过配置来创建AOP的呢本文主要通过注解配置来讲解解析切面类我们在使用注解配置AOP的时候通常需要@EnableAspectJAutoProxy这个注解来开启AOP那其实这个注解里的@Import注解里有个AspectJAutoProxyRegistrar类来注册对应的BeanDefinition这个类里注册了一个AnnotationAwareAspectJAutoProxyCreator这个Bea
2022-05-04 15:03:15
577
原创 Mybatis源码解析
Mybatis是我们在项目开发中用的比较多的一个ORM框架,Mybatis通过xml配置的方式可以动态的编写我们的sql,那Mybatis是如何去解析的呢Mybatis解析配置文件我们在使用Mybatis的时候通常需要去配置一些XML文件,Mybatis通过解析XML文件来获取数据库的连接数据以及sql,我们来看下具体是如何解析的我们在使用Mybatis来操作数据库的时候通常需要SqlSessionFactory来进行操作,我们先来看下具体的代码package com.mybatisdemo;/
2022-05-04 13:20:27
492
原创 SpringMVC的原理
SpringMVC是我们再开发过程中常用的一个开发框架,它是Spring下的一个子模块,我们来看看其中具体的实现原理SpringMVC的配置在使用Spring任何一个框架的时候,我们第一要想到的就是怎么去配置在配置SpringMVC的时候我们第一步就是要导入对应的jar包<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs
2022-05-02 21:13:01
188
原创 Spring的IOC加载流程
大家好,我是小年,Spring这个框架是我们在项目开发中使用的比较多的一个框架,它也是极大的简化了开发,那么我们在配置IOC的是时候又两种配置方式,一种是javaConfig的方式,一种是xml配置方法,那在配置完之后Spring是如何去读取配置文件并且解析的呢...
2022-05-01 17:24:56
1778
原创 HashMap在多线程环境下除了死链问题还有啥
大家好,我是哪吒,我们都知道 「HashMap」 在 「JDK1.7」 的时候使用了「头插法」作为链表插入的方式,但是插入这种方式在多线程环境下会造成「死链问题」,但是其实 HashMap 在多线程环境下除了死链问题,还有在扩容的时候对象丢失问题,那么本期文章就带大家来看看HashMap是如何造成死链以及在 JDK1.8 中是如何解决死链的死链问题分析一个问题我们还是需要通过一个现象来看其本质,那么我们先来看看现象造成死链的条件无非就两个,一个是在多线程环境下,二个是在扩容的时候那其实我们在复现这个
2021-05-15 16:43:21
552
原创 一个HashMap有啥好杠的
初始化如果要说到HashMap的底层数据结构,我相信大家应该都能说出来–数组加链表,HashMap的底层数据结构在JDK1.7与JDK1.8的时候是有很大区别的,在JDK1.7的时候结构是数据加链表 , 但在JDK1.8除了数组加链表外,还引入了红黑树,除了这两者的区别以外,还有其底层的hash值的计算也有区别当我们在了解HashMap的时候,我们首先就是要去了解它的初始化的过程,我们在使用HashMap(JDK1.8)的时候,一般就是简单的去put一个值比如一个很简单的一个例子当然除了Strin
2021-05-08 18:03:06
113
原创 Spring的xml以及注解的相关配置
Spring框架作为企业级应用框架已经完全的融入到了互联网各大项目中,框架中除了有利于提升开发效率外,里面的设计模式以及编码的思想也是值得我们去学习学习的,接下来我会从Spring最基础的搭建开始,慢慢的深入去学Spring是什么Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Sprin.
2020-10-31 17:54:13
423
原创 springboot2.0x整合mybatis-plus
mybatis-plus是对mybatis的一个增强,让我们在做数据层面开发的时候效率得到很大的提升,那么springboot如何去整合mybatis-plus1、首先在pom.xml中导入springboot的父依赖 <parent> <groupId>org.springframework.boot</groupId> &l...
2019-04-05 12:36:24
3230
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人