自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

原创 数据库基础-mvcc-对数据库事务的四种隔离级别逐步加深的理解

此时,在事务B中使用 select 语句进行查询,我们发现在事务A提交之前,事务B中查询到的记录 age 一直是14,直到事务A提交,此时在事务B中查询,发现 age 的值已经是 30 了。注意:处于该隔离级别的事务A与B,如果事务A使用事务B不提交的变化作为计算的基础,然后哪些未提交的变化被事务A撤销,这就导致了大量的数据错误变化。在可重复读隔离级别下,普通的查询是快照读,是不会看到别的事务插入的数据的。,事务A的提交影响了事务B的查询结果,这就是不可重复读,也就是读取已提交隔离级别。

2023-03-03 13:06:37 997 1

原创 Redis底层原理(持久化+分布式锁)

Redlock 只有建立在「时钟正确」的前提下,才能正常工作,如果你可以保证这个前提,那么可以拿来使用。但是时钟偏移在现实中是存在的:第一,从硬件角度来说,时钟发生偏移是时有发生,无法避免。例如,CPU 温度、机器负载、芯片材料都是有可能导致时钟发生偏移的。第二,人为错误也是很难完全避免的。所以,Redlock尽量不用它,而且它的性能不如单机版 Redis,部署成本也高,优先考虑使用主从+ 哨兵的模式 实现分布式锁(只会有很小的记录发生主从切换时的锁丢失问题)。

2023-02-19 19:24:34 1145

原创 Redis入门与应用

带参数启动redis-server加上要修改配置名和值(可以是多对),没有设置的配置将使用默认配置,例如:如果要用6380作为端口启动Redis,那么可以执行:这种方式一般我们也用得比较少。配置文件启动配置文件是我们启动的最多的模式,配置文件安装目录中有复制过来改一下权限通过配置文件来启动注意:这里对配置文件使用了相对路径,绝对路径也是可以的。同时配置文件的方式可以方便我们改端口,改配置,增加密码等。打开注释,设置为自己的密码,重启即可。

2023-02-08 18:30:04 753

原创 redis高级特性学习(慢查询、Pipeline、事务、Lua)(上)

先有一个桶,桶的容量是固定的。以任意速率向桶流入水滴,如果桶满了则溢出(被丢弃)。桶底下有个洞,按照固定的速率从桶中流出水滴。

2023-02-08 18:06:24 1331

原创 字符串和集合的相互转换,对象之间批量传值,时间,相互转换的总结

时间方面总结:前台传: 时间戳类似(new Date().getTime() 1639988311970)后台代码 :1)入参entity,可以用Date 类型接收。2)mapper.xml中。对应数据库的字段格式,是timestamp ,可以直接接收Date类型的数据@DateTimeFormat 和 @JsonFormat 注解为什么@DateTimeFormat单独放到入参entity上,注解Date类型,很难生效,必须加@JsonFormat?字符串,集合相...

2023-01-11 10:01:13 1899

原创 基础-Mybatis一级缓存和二级缓存的区别

如果你的MyBatis使用了二级缓存,并且你的Mapper中select语句也配置使用了二级缓存,那么在执行select查询的时候,MyBatis会先从二级缓存中取输入,其次才是一级缓存,即MyBatis查询数据的顺序是:二级缓存 —> 一级缓存 —> 数据库。SqlSession的生命周期:它应该存活在一个业务请求中,处理完整个请求后,应该关闭这条连接。一个会话查询一条数据,这条数据就会被放到当前会话的一级缓存中。如果当前会话关闭了,那么这个会话的一级缓存会放入二级缓存中。默认情况下,只有一级缓存开启。

2022-12-25 21:06:22 979

原创 更自动化的开发----给开发插上恣意飞翔的翅膀!

总结:设置启动项:开机时候快速启动自己所需要的程序,根据程序数量不一样,每天节省可重复的劳动时间约为5s-1min(此处数据为自己瞎说 O(∩_∩)O哈哈~);使用生成代码的插件:开发使用easycode的插件,目的是只需要自己写好数据库表字段的设计,就可以自动生成基础的controller到 表格相关的实体类(自己再略微修改一下,约定好访问路径等,就可以实现简单的增删改查),又可以节约时间,一个涉及到三张数据库表以上的开发,可以节省重复劳动1天以上的基础搭建代码时间。(*^▽^*)

2022-12-11 22:54:18 405

原创 基础--吊打面试官--精通synchronized底层实现原理

1.0之前太慢,重,jdk1.0后修改.基本概念理解:用户态和内核态的概念:程序的不同级别。内核态级别更高,理解是操作权限更高,更贴近系统。重量级:用户态到内核态申请;内核态再返回结果给用户态。轻量级:都是在用户态实现的。cas概念:是一种自偏锁,更是一种乐观锁的概念。当前值0;计算结果值1;会去看内存值是不是0,如果是,把1去更新内存值;2)如果发现,内存值是8,会重新读取一次,读到8,再计算计算结果得到9,再放入内存;特殊场景cas中遇到ABA问题,即:有线程把数据从0改为8,

2022-12-09 12:35:30 508

原创 架构体系-黑马学习2:-业务幂等性技术架构体系(2)

Zk分布式锁,可以解决表新增数据并发问题。利用zk的有序节点和watch机制来实现分布式锁。解决掉了并发幂等性问题、接口重复调用、服务间重试机制幂等性问题(第一种属于多人操作,后两种属于单人操作导致的问题)...视频讲解的业务是:增加订单,同时减少库存18min5028min。

2022-11-29 21:51:35 515

原创 架构体系-黑马学习2:-业务幂等性技术架构体系(1)

25min以下涉及到的都是一人操作时候,多次点击造成的并发,对幂等性问题的影响。大多适用场景,都是单表。没有兼顾数据库分库分表分区场景。幂等性定义:无论对某一个资源操作了多少次,其影响都应该是相同的。换句话说,在接口重复调用的情况下,对系统产生的影响是一样的,但是返回值允许不同,如查询。1)幂等性的概念幂等性不仅仅只是一次或者多次操作对资源没有产生影响,也包含第一次操作产生影响后,以后多次操作不会再产生影响。并且幂等性关注的是 是否对资源产生影响,而不关注结果。

2022-11-29 21:47:38 1072

转载 JVM之内存结构详解

对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。今天开始,《JVM详解》系列开启,带大家深入了解JVM相关知识。我们不能为了面试而面试,但是学习会这些核心知识你必定会成为面试与工作中“最亮的一颗星”。本系列首发于微信公众号“程序新视界”。下面,开启我们的第一篇文章《JVM之内存结构详解》。学习也是要讲究方式方法的,本系列学习过程中会引导大家通过《》来学习,同时尽量采用图文方式来进行讲解。正所谓一图胜千言。

2022-11-25 14:17:25 257

转载 世界上程序员最好的学习法:费曼学习法

你是否曾幻想读一遍书就记住所有的内容?是否想学习完一项技能就马上达到巅峰水平?除非你是天才,不然这是不可能的。对于大多数的普通人来说,可以通过笨办法(死记硬背)来达到学习的目的,但效率低下。当然,也可以通过优秀的学习法来进行学习,比如今天讲的“费曼学习法”,可以将你的学习效率极大的提高。费曼学习法是由加拿大物理学家费曼所发明的一种高效的学习方法,费曼本身是一个天才,13岁自学微积分,24岁加入曼哈顿计划(核武器计划);

2022-11-25 12:33:01 498

原创 实操--多个集合之间取交集、左交集、右交集

对于集合元素是对象。

2022-11-08 19:54:04 810

原创 基础--Concurrenthashmap的实现原理分析

jdk1.7中采用Segment[]+HashEntry的方式进行实现Segment是一种可重入锁(ReentrantLock:是一种过程可以多次声明该锁而不会对其自身进行阻塞的锁),在ConcurrentHashMap里扮演锁的角色ConcurrentHashMap初始化时,计算出Segment数组的大小ssize和每个Segment中HashEntry数组的大小cap,并初始化Segment数组的第一个元素;其中ssize大小为2的幂次方,默认为16,cap大小也是2的幂次方,最小值为2,...

2022-11-08 19:37:05 262

原创 事务隔离级别(数据库层面)和传播机制(代码层面spring框架)的偏本质的理解,分布式加入后对CAP的理解,自己能挖到的最深处

事务隔离级别(数据库层面)和传播机制(代码层面spring框架)的区别?事务隔离级别和事务传播机制都是对事务行为的规范,但二者描述的侧重点却不同。本文这里所说的事务隔离级别和事务传播机制指的是 Spring 框架中的机制。1、事务隔离级别事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控制并发事务在同时执行时的某种行为。

2022-10-24 14:08:11 160

转载 理解单点登录和多点登录原理以及重点

多点登录的概念:同一账号可以在不同终端同时登录,同时收发信息。多点登录限制(禁止用户多点在线):一个端同一个账号只能登录一个实例,例如一个账号在网站端登录后,后一个人使用这个账号在网站端登录,前一个人会被挤下去并会收到通知“你已在别处登录....”待补充...

2022-09-16 11:28:25 6290 2

转载 学习IDEA的EasyCode插件

丰富插件的使用,为了快速使用,自己可以编辑的文章

2022-09-16 09:43:36 1677

原创 实操----mybatis自动生成实体类/mapper.java/mapper.xml:mybatis-generator-config

mybatis自动生成实体类/mapper.java/mapper.xml:mybatis-generator-config

2022-09-14 11:30:13 995

原创 sql的各种特殊使用==linux数据库信息导出,成为insert的形式--sql

linux数据库信息导出,成为insert的形式

2022-08-18 14:10:29 741

原创 一文讲清楚,拦截器、过滤器和Javaweb三大组件servlet等

中各个元素的执行顺序是这样的,context-param-->listener-->filter-->servlet;而拦截器是在SpringMVC中配置的,如果从整个项目中看,一个servlet请求的执行过程就变成了这样context-param-->listener-->filter-->servlet-->interceptor(指的是拦截器),为什么拦截器是在servlet执行之后,因为拦截器本身就是在servlet内部的,下面把所学和所总结的用自己的描述整理出来~。...

2022-07-28 08:58:03 548

原创 git的总结(二)git安装过程

【1】Git官网:https://git-scm.com/【2】安装过程:一直下一步点击Git Bash Here打开Git终端:点击Git Bash Here打开Git终端:

2022-03-09 22:00:50 88

原创 git的总结(一)git概念

git概念=============================================================【1】Git技术:公司必备,一定要会【2】Git概念:Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。【3】什么是版本控制?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 。【4】为什么要使用版本控制?软件开发中采用版本控制系统是个明智的选择。有了它你就可以将某个文件回溯到之前的状

2022-03-09 21:55:52 89

原创 idea中的maven settings.xml文件

<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistributed with this work for additional informationregarding copyright ownersh.

2021-11-20 15:54:36 767

转载 sleep()方法和await()方法有什么区别?sleep()和yield()方法有什么区别?

sleep()是使线程暂停执行一段时间的方法。await()也是一种使线程暂停执行的方法。当线程交互时,如果线程对一个同步对象x发出wait()调用请求,那么该线程会暂停执行,被调对象进入等待状态,直到被唤醒或者等待超时。具体来说sleep()方法和await()方法的区别主要表现在以下几个方面?原理不同sleep()方法是Thread类的静态方法,是线程用来控制自身流程的,它会使线程暂停执行一段时间,而把执行机会让给其他线程,等到计时时间一到,此线程会自动被唤醒。例如:当线程执行报时功能时

2021-10-25 18:56:07 338

转载 spring拦截器

同类别:过滤器监听器参考文章根据 参考文章的多遍学习,自己标红,根据图表更快捷的掌握中心内容,读懂脉络逻辑1,拦截器的概念 java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或者之后加入某些操作。目前,我们需要掌握的主要是...

2021-10-25 18:55:18 272

原创 垃圾回收的学习总结

垃圾回收机制什么是垃圾回收机制?什么时候进行垃圾回收?如何判断对象已死(或能够被回收)?分代收集算法的具体?对新生代,老年代,永久代概念的理解。对几种核心基础算法的理解(新生代的parnew收集器用的复制算法;老年代用的:标记-清理)以上总结链接########################################################################垃圾回收算法的种类?常见的老年代的收集器的代表CMS(Concurrent..

2021-09-15 19:16:25 84

原创 G1收集器

前言G1收集器是一款在server端运行的垃圾收集器,专门针对于拥有多核处理器和大内存的机器,在JDK 7u4版本发行时被正式推出,在JDK9中更被指定为官方GC收集器。它满足高吞吐量的同时满足GC停顿的时间尽可能短。G1收集器专门针对以下应用场景设计可以像CMS收集器一样可以和应用并发运行 压缩空闲的内存碎片,却不需要冗长的GC停顿 对GC停顿可以做更好的预测 不想牺牲大量的吞吐量性能 不需要更大的Java HeapCan operate concurrently with appl

2021-09-15 19:16:02 806

原创 jvm调优以及优化进阶学习

性能调优概述,指的是什么??what性能调优包含多个层次,从上到下比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代码调优可以反映到JVM调优上,所有调优中架构调优是对系统影响最大的。性能调优基本上按照以下步骤进行:明确优化目标、发现性能瓶颈、性能调优、通过监控及数据统计工具获得数据、确认是否达到目标。这篇内容主要是讲解jvm这层次的调优何时进行JVM调优?when遇到6种以下情况,就需要考虑进行JVM调...

2021-09-10 17:19:28 324 1

原创 jvm学习

整个应该分成几大块基础知识性能调优更全面的知识实际操作####################################################################什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。jvm 内存模型划分Java代码编译和执行的整个过程包含了以下三...

2021-09-10 17:18:49 90

原创 GC垃圾回收机制,垃圾回收算法,垃圾回收器

Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈。楔子-JVM内存结构补充在上篇《JVM之内存结构详解》中有些内容我们没有讲,本篇结合垃圾回收机制来一起学习。还记得JVM中堆的结构图吗?图中展示了堆中三个区域:Eden、From Survivor、To Survivor。从图中可以也可以看到它们的大小比例,准确来说是:8:1:1。为什么要这样设计呢,本篇文章后续会给出解答,还是根据垃圾回收的具体情况来设计的。

2021-09-10 15:55:39 573 1

转载 Spring Boot 自动装配原理

相关的参考文章淘宝一面:“说一下 Spring Boot 自动装配原理呗?”整体讲解,后半段对springboot的流程说明很好----------------------------------------------------------------------------------------------------------我觉得我们可以从以下几个方面回答:什么是 SpringBoot 自动装配? SpringBoot 是如何实现自动装配的?如何实现按需加载? 如何实现

2021-09-09 19:09:49 71

原创 springIOC--bean的创建过程,生命周期的理解

生命周期的理解:实例化 -> 属性赋值 -> 初始化 -> 销毁spring容器启动的过程通俗理解:加载配置文件,配置文件可以是xml,也可以是配置类;统一先由beanDfinereader读取beandfinne,这些配置信息(bean的详情,一般是String)然后由beanfactorypostprocsee的实现类(可以自己实现)做beandifine增强然后通过反射创建实例然后填充属性populatBean()然后由beanpostprocess做..

2021-09-09 17:10:03 244

原创 springioc循环依赖问题详解

springioc循环依赖问题详解循环依赖问题在Spring中主要有三种情况:通过构造方法进行依赖注入时产生的循环依赖问题。 通过setter方法进行依赖注入且是在多例(原型)模式下产生的循环依赖问题。 通过setter方法进行依赖注入且是在单例模式下产生的循环依赖问题。注意:在Spring中,只有【第三种方式】的循环依赖问题被解决了,其他两种方式在遇到循环依赖问题时都会产生异常。https://blog.csdn.net/weixin_32569115/article/detail..

2021-09-09 13:56:31 223

原创 springCloud--Hystrix

hystrix很好使用,但是现在已经停止更新了,最新使用sentinel。概念Hystrix 是 Netflix 开源的一款容错系统,能帮助使用者码出具备强大的容错能力和鲁棒性的程序。Hystrix 具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包(request collapsing,即自动批处理,译者注),以及监控和配置等功能。相关的一些概念服务熔断服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时...

2021-08-28 19:14:12 260

原创 论如何处理高并发

通过很长一段时间的学习,总结。用一句话去说处理高并发不容易。应该分析当前的高并发场景,是处理某一场景,还是整个服务架构上说的预处理高并发。整个场景,或者通用性质的处理方式个别场景下的处理如秒杀,如单一场景的处理,合理使用Hystrix 或者sentinel,去做熔断,降级,限流。也是一种很好的方式。...

2021-08-27 18:00:23 114

原创 springCloud--OpenFeign

OpenFeign使用步骤基础使用之后,需要关注两点:openfeign超时控制springcloud——openfeign的增强日志自我理解:写在在消费者端,pom <!--openfeign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo

2021-08-27 15:19:54 84

原创 springCloud--Ribbon

是什么?在哪里用?是netflix发布,提供客户端的软件负载均衡算法和服务调用。和NGINX不同,NGINX是服务端负载均衡,请求到达NGINX之后,NGINX实现转发。原理?在调用微服务接口时候,会在注册中心获取注册列表,缓存到jvm本地,从而在本地实现RPC远程服务调用技术。比如消费者负载均衡,去调用生产者的所有微服务。执行步骤:1.优先选择在同一个区域内负载较少的server2.根据用户的策略,在注册列表中选择一个地址。总共的策略,以及每个策略的意思?策略名 策略声明

2021-08-27 10:03:54 88

原创 eureka zookeeper consul三者的差别

组件名 语言 CAP 服务健康检查 对外暴露的接口 springcloud集成 eureka Java AP 可配支持 HTTP 已集成 consul Go CP 支持 HTTP/DNS 已集成 zookeeper Java CP 支持 客户端 已集成 ...

2021-08-26 17:52:16 97

转载 SpringCloud--Eureka

Eureka工作原理Eureka 核心概念服务注册调用示意图,服务提供者和服务的消费者,本质上也是 Eureka Client 角色。整体上可以分为两个主体:Eureka Server 和 Eureka Client.Eureka Server:注册中心服务端注册中心服务端主要对外提供了三个功能:服务注册服务提供者启动时,会通过 Eureka Client 向 Eureka Server 注册信息,Eureka Server 会存储该服务的信息,Eureka Server 内部有二层缓

2021-08-26 12:12:26 70

原创 openFeign

是什么?有了Eureka,RestTemplate,Ribbon我们就可以????愉快地进行服务间的调用了,但是使用RestTemplate还是不方便。聪明的小朋友肯定想到了,那就用映射呀,就像域名和IP地址的映射。我们可以将被调用的服务代码映射到消费者端,这样我们就可以“无缝开发”啦。什么作用?帮助更加简便的开发。怎么用?maven依赖<dependency> <groupId>com.netflix.feign</groupId...

2021-08-13 14:20:03 83

最新面试文档Java类,常规高手快速成长的问答,解决口笨;解决知识难点;解决面试八股文

最新面试文档Java类,常规高手快速成长的问答,解决口笨;解决知识难点;解决面试八股文;还有其他很多文档,有需要可以下载。助你在面试道路上勇敢前行。 最新面试文档Java类,常规高手快速成长的问答,解决口笨;解决知识难点;解决面试八股文;还有其他很多文档,有需要可以下载。助你在面试道路上勇敢前行。 最新面试文档Java类,常规高手快速成长的问答,解决口笨;解决知识难点;解决面试八股文;还有其他很多文档,有需要可以下载。助你在面试道路上勇敢前行。 最新面试文档Java类,常规高手快速成长的问答,解决口笨;解决知识难点;解决面试八股文;还有其他很多文档,有需要可以下载。助你在面试道路上勇敢前行。 最新面试文档Java类,常规高手快速成长的问答,解决口笨;解决知识难点;解决面试八股文;还有其他很多文档,有需要可以下载。助你在面试道路上勇敢前行。 最新面试文档Java类,常规高手快速成长的问答,解决口笨;解决知识难点;解决面试八股文;还有其他很多文档,有需要可以下载。助你在面试道路上勇敢前行。 最新面试文档Java类,常规高手快速成长的问答.world is beauty,gogogogo!!

2022-07-21

HKT系统设计说明书_关于Hunting Group销户后历史数据查询问题解决方案.v2.docx

Java

2021-03-01

空空如也

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

TA关注的人

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