- 博客(25)
- 收藏
- 关注
原创 Redis实现分布式锁的7种方案,及正确使用方式!
分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。互斥性: 任意时刻,只有一个客户端能持有锁。锁超时释放:持有锁超时,可以释放,防止不必要的资源浪费,也可以防止死锁。可重入性:一个线程如果获取了锁之后,可以再次对其请求加锁。高性能和高可用:加锁和解锁需要开销尽可能低,同时也要保证高可用,避免分布式锁失效。安全性:锁只能被持有的客户端删除,不能被其他客户端删除。
2025-06-25 15:42:55
965
原创 SpringSecurity和OAuth2入门到实战
实际开发的过程中,我们需要应用程序更加灵活,可以在SpringSecurity中创建自定义配置文件Java自定义配置用来管理用户信息,是UserDetailsService的一个实现,用来管理基于内存的用户信息。创建一个WebSecurityConfig文件:定义一个@Bean,类型是UserDetailsService,实现是InMemoryUserDetailsManager@EnableWebSecurity//Spring项目总需要添加此注解,SpringBoot项目中不需要@Bean。
2025-04-03 16:32:45
1192
原创 格式化输出String.foramt()
String.format() 方法可将不同类型的数据格式化为指定格式的字符串,并将结果存储在字符串中。
2025-01-21 14:52:30
833
原创 ⾯试最常⻅问题之 Java 集合框架
先来看⼀下 Collection 接⼝下⾯的集合。为了能让 HashMap 存取⾼效,尽量较少碰撞,也就是要尽量把数据分配均匀。我们上⾯也讲到了过 了,Hash 值的范围值-2147483648 到 2147483647,前后加起来⼤概 40 亿的映射空间,只要哈希函数 映射得⽐较均匀松散,⼀般应⽤是很难出现碰撞的。但问题是⼀个 40 亿⻓度的数组,内存是放不下 的。所以这个散列值是不能直接拿来⽤的。⽤之前还要先做对数组的⻓度取模运算,得到的余数才能⽤ 来要存放的位置也就是对应的数组下标。
2023-09-19 15:53:59
179
原创 分布式 - 锁
性能:一个sql > 悲观锁 > jvm锁 > 乐观锁如果追求极致性能、业务场景简单并且不需要记录数据前后变化的情况下。 优先选择:一个sql如果写并发量较低(多读),争抢不是很激烈的情况下优先选择:乐观锁如果写并发量较高,一般会经常冲突,此时选择乐观锁的话,会导致业务代码不间断的重试。 优先选择:mysql悲观锁不推荐jvm本地锁。Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。设计目的。
2023-09-19 13:38:45
177
原创 spring6
Spring61、概述1.1、Spring是什么?Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架除了自己提供功能外,还提供整合其他技术和框架的能力。Spring 自诞生以来备受青睐,一直被广大开发人员作为 Ja
2023-07-14 11:09:13
175
原创 spring
BeanFactory 接口,典型功能有:ApplicationContext 接口,是 BeanFactory 的子接口。它扩展了 BeanFactory 接口的功能,如:可以看到,我们课上讲的,都是 BeanFactory 提供的基本功能,ApplicationContext 中的扩展功能都没有用到。com.itheima.a01 包通过这个示例结合 debug 查看 ApplicationContext 对象的内部结构,学到:到底什么是 BeanFactoryBeanFactory 能干点啥Appli
2023-07-13 22:36:39
154
原创 chatGPT最全提示词
我想让你充当一个 linux 终端。我会输入命令,你会回答什么终端应该显示。我希望你只回复终端输出在一个唯一的代码块,没有别的。不要写解释。除非我指示,否则不要输入命令。当我需要用英语告诉你一些事情的时候,我会把文本放在大括号里面{像这样}。我的第一个命令是 pwd。
2023-05-26 20:39:59
3863
原创 ChatGPT进阶用法
它能够生成类似于人类写作的文本。您只需要给出提示或提出问题,它就可以生成你想要的东西。在此页面中,您将找到可与 ChatGPT 一起使用的各种提示。
2023-05-26 20:17:22
476
原创 Java面试 - Linux篇
du 显示目录或文件的大小df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。(文件系统分配其中的一些磁 盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户 级的程序来说是不可见的,通常称为 Meta Data。) du 命令是用户级的程序,它不考虑 Meta Data, 而 df命令则查看文件系统的磁盘分配图并考虑 Meta Data。df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。
2023-05-23 22:22:40
804
原创 java面试 - 多线程&并发篇
线程安全就是说多线程访问同一代码,不会产生不确定的结果。在多线程环境中,当各线程不共享数据的时候,即都是私有(private)成员,那么一定是线程安全的。但这种情况并不多见,在多数情况下需要共享数据,这时就需要进行适当的同步控制了。线程安全一般都涉及到synchronized, 就是一段代码同时只能有一个线程来操作 不然中间过程可能会 产生不可预制的结果。如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。
2023-05-22 22:17:08
464
2
原创 java面试 - JVM篇
JVM定义了不同运行时数据区,他们是用来执行应用程序的。某些区域随着JVM启动及销毁,另外一些 区域的数据是线程性独立的,随着线程创建和销毁。jvm内存模型总体架构图如下:(摘自oracle官方 网站)JVM在执行Java程序时,会把它管理的内存划分为若干个的区域,每个区域都有自己的用途和创建销毁 时间。如下图所示,可以分为两大部分,线程私有区和共享区。下图是根据自己理解画的一个JVM内存 模型架构图:JVM内存分为线程私有区和线程共享区线程私有区1、程序计数器。
2023-05-22 16:58:06
459
4
原创 java面试基础篇
反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意个对象,都能 够调用它的任意一个方法。在java中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。
2023-05-21 22:24:22
301
1
原创 linux中对jar文件的操作
根据上面的解压目录找到application.yml,然后把我们需要更换的这个文件放进去,覆盖之前的文件即可。linux中,替换jar包中的文件,可以减少重新打包上传的时间,尤其是网速不好的时候。文件放入成功,这个时候,重启项目即可。之后开始把更新后的文件放入jar中。前2个步骤同上,最后一步略有不同。使用的是-uvf0而是不是-uvf。二、替换jar包中的jar文件。
2023-05-11 22:16:33
3519
原创 ZooKeeper
一、什么是ZooKeeper从上面我们也可以发现,好像哪都有ZooKeeper的身影,那什么是ZooKeeper呢?我们先去官网看看介绍:
2021-07-04 16:23:39
30
原创 Dubbo
DubboDubbo是什么?Dubbo是一个分布式服务框架,致力于提供搞性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。(告别Web Service模式中的WSdl,以服务者与消费者的方式在Dubbo上注册)。核心部分:远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。自动发现:基于注
2021-07-04 16:21:13
32
原创 Spring-boot
Spring-boot简介:简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring boot的特点:创建独立的 Spring 应用程序嵌入的 Tomcat,无需部署 WAR 文件简化 Maven 配置自动配置 Spring提供生产就绪型功能,如指标,健康检查和外部配置没有代码生成和对 XML 没有要求配置约定优于配置Spring boot的优点:spring boot
2021-07-04 16:16:38
182
原创 SpringBoot面试题
SpringBoot面试题1、什么是springboot用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序 main方法运行嵌入的Tomcat 无需部署war文件简化maven配置2、什么是 JavaConfig?Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法。因此它有助于避免使用 XML 配置。 使用 Ja
2021-07-03 22:27:05
24
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅