自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jarniyy的博客

天行健,君子以自强不息

  • 博客(206)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

转载 从源码理解总结web容器、spring容器、spring mvc容器三者关系

本篇,我打算从springMVC项目的web.xml的配置文件入手,通过部分源码逐步去理解解释三个容器的关系以及调用顺序,因为是基于我个人的理解,可能有所不足。从源码理解总结web容器、spring容器、spring mvc容器三者关系 - 简书。

2024-09-01 00:17:55 99

转载 《Java 基础篇》之函数式接口

有且仅有一个抽象方法的接口。Java中的函数式编程体现就是Lambda表达式。所以函数式接口即可以适用于Lambda使用的接口。如何检测一个接口是不是函数式接口?放在接口定义的上方:如果接口是函数式接口,编译通过;注意:自定义函数式接口时,@FunctionalInterface是可选的,就算不写这个注解,只要保证满足函数式接口定义的条件,也照样是函数式接口。_java 函数式接口。《Java 基础篇》之函数式接口_java 函数式接口-CSDN博客。

2024-08-26 19:11:17 27

转载 applicationcontext获取bean_spring如何获取bean的6种方法,你知道几个?

虽然,spring提供的后三种方法可以实现在普通的类中继承或实现相应的类或接口来获取spring 的ApplicationContext对象,但是在使用是一定要注意实现了这些类或接口的普通java类一定要在Spring 的配置文件applicationContext.xml文件中进行配置。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。

2024-08-23 18:39:46 83

转载 Spring--初始化bean:InitializingBean、init-method

https://www.cnblogs.com/liaowenhui/p/16676819.htmlhttps://www.cnblogs.com/liaowenhui/p/16676819.html

2024-08-23 17:09:05 27

转载 @Transctional事务传播机制(Propagation)

@Transctional事务传播机制(Propagation)_transactional propagation-CSDN博客

2024-08-21 16:14:59 22

转载 终于有人把@Autowired 和 @Resource 的区别说清楚了!

Autowired 和 @Resource 都是用来实现依赖注入的注解(在 Spring/Spring Boot 项目中),但二者却有着 5 点不同:来源不同:@Autowired 来自 Spring 框架,而 @Resource 来自于(Java)JSR-250;依赖查找的顺序不同:@Autowired 先根据类型再根据名称查询,而 @Resource 先根据名称再根据类型查询;支持的参数不同:@Autowired 只支持设置 1 个参数,而 @Resource 支持设置 7 个参数;

2024-08-16 11:14:57 188

转载 Elasticsearch - 直观了解查询( term、match、match_phrase和query_string)区别

如“我真帅”分词为[“我”,“真”,“帅”,“真帅”],match_phrase 的查询语句“真帅”被分词为[“真帅”],其中“真帅”能匹配上text字段的分词结果,连续且顺序相同,所以能查出。如“我真帅”分词为[“我”,“真”,“帅”],match的查询语句“真帅”被分词为[“真”,“帅”],其中“真”、“帅”能匹配上text字段的分词结果,所以能查出。如“我真帅”分词为[“我”,“真”,“帅”],term必须为“我”或“真”或“帅”,才能查到,而“我帅”、“真帅”不行。match 查询语句分词。

2024-07-15 20:21:05 193

转载 ES的索引、type、document、filer、mapping、id

这与映射类型中的字段不同。我的理解是它相对于关系型数据库更为灵活,因为在7.0之后的版本,type被废除,它直接可以自定义,感觉就就是直接添加到属性中,而不是原来的在索引之后添加type,所以在添加数据时就可以更加灵活,所以我认为一个索引可以理解为一个数据库。在程序中可以很清楚的看到构架,tweet和user都是type,可以理解为索引的下个级别,可以理解为一张表,put 索引/type/id 添加一条数据(document),数据中的字段就是filed。严格来说,这是一个错误的类比,导致了错误的假设。

2024-07-15 11:04:38 64

转载 网络IO模型之BIO、NIO、SELECT、EPOLL简析

Epoll模型是调用epoll_create来在内核中创建一个空间,然后再使用epoll_ctl来将连接过来的客户端文件描述符加到这个空间中,来一个加一个,如果有客户端发送消息,那么通过事件驱动,正在处理其他操作的cpu会收到一个软中断,来将有消息的fd移到内核中的另一块空间中,而redis-server则不断调用epoll_wait来循环遍历有消息的这块内存,如果该内存中有fd,则调用read来读取数据。在 CPU 的所有指令中,有些指令是非常危险的,如果错用,将导致系统崩溃,比如清内存、设置时钟等。

2024-07-12 11:28:04 55

转载 Redis面试-高频常考30题(面试突击,建议收藏)

跳表的时间复杂度(时间复杂度是O(logN))跳表的空间复杂度(空间复杂度是O(N))

2024-07-09 19:48:39 87

转载 Redis7实战加面试题-高阶篇(Redis为什么快?高性能设计之epoll和IO多路复用深度解析)

4种组合方式:1.同步阻塞:服务员说快到你了,先别离开我后台看一眼马上通知你。客户在海底捞火锅前台干等着,啥都不干。2.同步非阻塞:服务员说快到你了,先别离开。客户在海底捞火锅前台边刷抖音边等着叫号3.异步阻塞:服务员说还要再等等,你先去逛逛,一会儿通知你。客户怕过号在海底捞火锅前台拿着排号小票啥都不干,一直等着店员通知4.异步非阻塞:服务员说还要再等等,你先去逛逛,一会儿通知你。拿着排号小票+刷着抖音,等着店员通知。高性能设计之epoll和IO多路复用深度解析)_redis epoll-CSDN博客。

2024-07-09 19:44:27 25

转载 Redis7实战加面试题-高阶篇(Redlock算法和底层源码分析)

Redis7实战加面试题-高阶篇(Redlock算法和底层源码分析)_redis源码剖析与实战-CSDN博客。文章浏览阅读759次。当前文档源码,接上一篇博客逐步深入,引入Redlock。_redis源码剖析与实战。

2024-07-09 19:40:18 20

转载 Redis7实战加面试题-高阶篇(手写Redis分布式锁)

文章浏览阅读1k次。1.synchronized,单机版oK,上分布式死翘翘2.nginx分布式微服务单机锁不行3.取消单机锁,上redis分布式锁setnx只加了锁,没有释放锁,出异常的话,可能无法释放锁,必须要在代码层面finally释放锁宕机了,部署了微服务代码层面根本没有走到finally这块,没办法保证解锁,这个key没有被删除,需要有lockKey的过期时间设定为redis的分布式锁key,增加过期时间此外,还必须要setnx+过期时间必须同—行。_redis分布式锁面试题。

2024-07-09 19:37:06 22

转载 Redis7实战加面试题-高阶篇(布隆过滤器BloomFilter,缓存预热+缓存雪崩+缓存击穿+缓存穿透)

1.现有50亿个电话号码,现有10万个电话号码,如何要快速准确的判断这些电话号码是否已经存在?3.安全连接网址,全球数10亿的网址判断4.黑名单校验,识别垃圾邮件5.白名单校验,识别出合法用户进行后续处理是什么:由一个初值都为零的bit数组和多个哈希函数构成,用来快速判断集合中是否存在某个元素设计思想:设计:减少内存占用。方式:不保存数据信息,只是在内存中做一个是否存在的标记flag布隆过滤器是—种类似set的数据结构,只是统计结果在巨量数据下有点小瑕_布隆过滤器面试题。

2024-07-09 19:24:00 34

转载 Redis7实战加面试题-高阶篇(Redis线程与IO多路复用,BigKey,缓存双写)

Redis的版本很多3.x、4.x、6.x,版本不同架构也是不同的,不限定版本问是否单线程也不太严谨。2 版本4.x,严格意义来说也不是单线程,而是负责处理客户端请求的线程是单线程,但是开始加了点多线程的东西(异步删除)。3 2020年5月版本的6.0.x后及2022年出的7.0版本后,告别了大家印象中的单线程,用一种全新的多线程来解决问题。Redis7实战加面试题-高阶篇(Redis线程与IO多路复用,BigKey,缓存双写)_redis的io多路复用和单线程多线程相关面试题-CSDN博客。

2024-07-09 19:16:52 18

转载 Redis7实战加面试题-高阶篇(案例落地实战bitmap/hyperloglog/GEO)

位图本质是数组,它是基于String数据类型的按位的操作。截至2020年3月31日的12个月,京东年度活跃用户数3.87亿,同比增长24.8%,环比增长超2500万,此外,2020年3月移动端日均活跃用户数同比增长46%假设10%左右的用户参与签到,签到用户也高达3千万。又称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。georadius 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。

2024-07-09 18:59:22 51

转载 Redis7实战加面试题-基础篇(Redis复制(replica),Redis哨兵(sentinel),Redis集群(cluster))

而一致性Hash算法是对2 ^ 32取模,简单来说,一致性Hash算法将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数H的值空间为0-2 ^ 32-1(即哈希值是一个32位无符号整形),整个哈希环如下图:整个空间按顺时针方向组织,圆环的正上方的点代表0,0点右侧的第一个点代表1,以此类推,2、3、4、……一般的,在一致性Hash算法中,如果一台服务器不可用,则受影响的数据仅仅是此服务器到其环空间中前一台服务器(即沿着逆时针方向行走遇到的第一台服务器)之间数据,其它不会受到影响。

2024-07-09 17:35:54 43

转载 Redis7实战加面试题-基础篇(Redis持久化,Redis事务,Redis管道,Redis发布订阅)

开启:以MULTI开始一个事务入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面执行:由EXEC命令触发事务。

2024-07-09 17:24:00 42

转载 Redis7实战加面试题-基础篇(Redis10大数据类型)

Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。Redis能干嘛?

2024-07-09 17:03:24 31

转载 ConcurrentHashMap(JDK8)

对比 与HashMap的区别是什么? ConcurrentHashMap是HashMap的升级版,HashMap是线程不安全的,而ConcurrentHashMap是线程安全。而其他功能和实现原理和HashMap类似。   与Hashtable的区别是什么? Hashtable也是线程安全的,但每次要锁住整个结构,并发性低。相比之下,ConcurrentHashMap获取size时才锁整个对象。...

2022-05-02 16:32:06 764

转载 HashMap 数据覆盖问题

阿粉今天就来谈谈这个,这个问题在 1.7 版本和 1.8 版本中都有,阿粉分别来说说 在说之前,咱们先要达成一个共识: HashMap 发生数据覆盖的问题,是在多线程环境 & 扩容下产生的,接下来咱们具体来看 jdk 1.7 void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.l...

2022-05-02 15:15:54 2135

转载 HashMap中扩容导致环链现象分析

目录 为什么会出现环链? 什么时候会出现环链? 出现环链的场景:       数据准备、结果预期       模拟的转移代码   多线程的场景分析  形成的根本原因 数据分析 线程一数据变化 第一次循环  第二次循环 线程二开始执行 为什么会出现环链?       &...

2022-05-02 10:50:24 1183

转载 HashMap, LinkedHashMap 和 TreeMap的区别

原文链接:HashMap, LinkedHashMap 和 TreeMap的区别_Gogo-2020的博客-CSDN博客_treemap和hashmap的区别HashMap, LinkedHashMap 和 TreeMap的区别Java里面的HashMap, LinkedHashMap 和 TreeMap 有什么区别?我看不出以下3个key和value有什么不同的。Hashtables里面又是怎么样的呢?Map m1 = new HashMap();m1.put("map", "HashMap");m1.p

2022-04-30 11:09:06 215

转载 PriorityQueue用法与介绍

原文链接:PriorityQueue用法与介绍 - 简书一、PriorityQueue介绍队列是遵循先进先出(First-In-First-Out)模式的,PriorityQueue类在Java1.5中引入并作为JavaCollectionsFramework的一部分。优先队列中的元素可以默认自然排序或者通过提供的Comparator(比较器)在队列实例化的时排序。优先队列不允许空值,而且不支持non-comparable(不可比较)的对象,比如用户自定义的类...

2022-04-28 19:17:56 3736

转载 讲解HashMap原理和流程

1.前言HashMap是开发中最常用的键值对集合类,也是面试中经常被问及的一个知识点,也是衡量java基础是否扎实的标准之一,是每个JAVA初学者入门必须跨过的槛。所以HashMap重要性不言而喻,需要彻底掌握。 但在开始学习HashMap时,如果文章中有一大堆源码和一大段文字,会让读者阅读起来十分枯燥以及苦涩难懂。特别是不太了解HashMap的读者,但为了深入理解肯定要结合源码学习。 所以打算先介绍HashMap流程,熟悉主要操作...

2022-04-17 23:46:37 689

转载 ArrayList扩容原理

今天带来的下饭菜是ArrayList的扩容源码解读。 相信大家对这盘菜都不陌生,我们经常使用它来定义一个集合,无论日常开发还是自己学习使用的频率是相当的高。 而且大家也都一定知道ArrayList集合是通过数组实现的,但是在声明一组数据的时候都会选择ArrayList而不是数组,原因就是由于这组数据的元素的数量不确定,如果使用数组的话,我们还得亲自维护数组的长度,这时你一定会说TMD烦死了;但如果使用了ArrayList,维护数组长度的事情就不用我们...

2022-04-17 10:37:24 319

转载 面经手册 · 第8篇《LinkedList插入速度比ArrayList快?你确定吗?》

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言 你以为考你个数据结构是要造火箭? 🚕汽车75马力就够奔跑了,那你怎么还想要2.0涡轮+9AT呢?大桥两边的护栏你每次走的时候都会去摸吗?那怎么没有...

2022-04-17 10:01:33 369

转载 Java常量池理解与总结

一.相关概念 什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变! final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。 Class文件中的常量池 在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版本号,再接着是用于存放常量的常量池,由于常量的数量是不固定的,所以常量池的入口放置一个U2类型的数据(consta

2022-03-13 13:57:02 291

转载 Java 基本数据类型

原文链接:Java 基本数据类型 - Sunsin - 博客园Java 基本数据类型 变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 因此,通过定义不https://www.cnblogs.com/cisum/p/8006239.html变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据

2022-03-03 17:19:54 96

转载 jvm类加载器的父类委托机制

1. 两种类型的类加载器:(1) JVM自带的加载器- 根类加载器(Bootstrap) 它负责加载虚拟机的核心类库,如java.lang.*等使用C++编写,它的实现依赖于底层操作系统,它并没有继承java.lang.ClassLoader类- 扩展类加载器(Extension) 它的父加载器为根类加载器,它从jre\lib\ext子目录下加载类库,它使用Java代码实现,是java.lang.ClassLoader类的子类。- 系统类加载器(System - 应用类加载器) 它的

2022-03-02 22:40:48 500

转载 Java中数组的定义与使用(三)

数组排序在很多的面试题上都会出现数组排序的操作形式。但是这个时候你千万别写上:java.util.Arrays.sort(数组)。而这种排序都是以升序为主。基础的排序操作:范例: 冒泡排序public class ArrayDemo { public static void main(String args[]) { int data[] = new int[] {9, 3, 1, 5, 4, 2, 7, 8, 6, 0}; sort(data); ...

2022-01-17 15:36:53 179

转载 Java中数组的定义与使用(二)

数组与方法调用数组是一个引用数据类型,那么所有的引用数据类型都可以为其设置多个栈内存指向。所以在进行数组操作的时候,也可以将其通过方法进行处理。范例: 方法接受数组public class ArrayDemo { public static void main(String args[]) { int data[] = new int[] {1, 2, 3}; printArray(data); } //定义一个专门进行数组...

2022-01-17 12:55:55 107

转载 Java中数组的定义与使用(一)

数组的基本概念如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下:int i1, i2, i3, ... i100;1但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次。其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。数组本身属于引用数据类型,那么既然是引用数

2022-01-17 11:10:56 115

转载 maven的单继承和多继承

原地址一原地址二简化了一下方便自己记录单继承的两种方式方式一:1、父模块 account-aggregator只显示主要部分 pom.xml <groupId>com.youzhibing.account</groupId> <artifactId>account-aggregator</artifactId> <version>1.0.0-SNAPSHOT</version> <packa

2022-01-13 16:01:08 450

转载 Maven全局配置文件settings.xml详解

目录一、概要1、settings.xml的作用2、settings.xml文件位置3、配置的优先级二、settings.xml元素详解1、顶级元素概览  1.1、LocalRepository  1.2、InteractiveMode  1.3、UsePluginRegistry  1.4、Offline  1.5、PluginGroups  1.6、Servers  1.7、Mirrors  1.8、Proxies  1.9、Profiles  1.10、Acti

2022-01-13 11:54:21 17965

转载 Git知识总览(六) Git分支中的远程操作实践

原文链接:Git知识总览(六) Git分支中的远程操作实践 - 青玉伏案 - 博客园前几篇博客陆陆续续的讲了好多关于Git操作的内容, 其中在上篇博客聊了《Git中的merge、rebase、cherry-pick以及交互式rebase》,本篇博客仍然也不例外,不过本篇博客的主题是关https://www.cnblogs.com/ludashi/p/8323617.html前几篇博客陆陆续续的讲了好多关于Git操作的内容, 其中在上篇博客聊了《Git中的merge、rebase、cherry-pick以

2022-01-07 19:54:26 1442

转载 Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

原文链接:Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase - 青玉伏案 - 博客园上篇博客聊了《git分支管理之rebase 以及 cherry-pick相关操作》本篇博客我们就以Learning Git中的关卡进行展开。下方列举了LearningGit中的 merge、rebashttps://www.cnblogs.com/ludashi/p/8213550.html上篇博客聊了《git分支管理之rebase 以及 cherry-pick相关操

2022-01-07 19:53:15 1792

转载 Git知识总览(四) git分支管理之rebase 以及 cherry-pick相关操作

原文链接:Git知识总览(四) git分支管理之rebase 以及 cherry-pick相关操作 - 青玉伏案 - 博客园上篇博客聊了《Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决》,本篇博客我们主要来看一下 rebase 变基相关的操作。rebase 操作和 merge 操作最终都可以达到合并代码的效https://www.cnblogs.com/ludashi/p/8116434.html上篇博客聊了《Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决》,本篇博客我们

2022-01-07 19:48:44 1263

转载 Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决

原文链接:Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决 - 青玉伏案 - 博客园前两篇博客集中的聊了git的一些常用命令,具体请参见《Git知识总览(一) 从 git clone 和 git status 谈起》、《Git知识总览(二) git常用命令概览》。本篇博客主要涉及了在https://www.cnblogs.com/ludashi/p/8093145.html前两篇博客集中的聊了git的一些常用命令,具体请参见《Git知识总览(一) 从 git clone 和 git sta

2022-01-07 19:05:37 550

转载 Git知识总览(二) git常用命令概览

原文链接:https://www.cnblogs.com/ludashi/p/8053382.htmlhttps://www.cnblogs.com/ludashi/p/8053382.html上篇博客我们从 git clone 和 git status 两个命令开始,引出了一系列的git操作命令, 请参见:《Git知识总览(一) 从 git clone 和 git status 谈起》。上篇博客中所涉及的git命令也是git命令操作中常用的基础操作命令,本篇博客继续来总结一下git使用时常用的命令操作

2022-01-07 18:54:03 168

PMP (1) (2).doc

自己整理的pmpbok第六版,未完待续

2021-06-12

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

TA关注的人

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