自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 锁升级及线程池相关

在JVM底层实现锁的过程中,有三类锁:偏斜锁、轻量级锁、重量级锁在Java6之前,synchronized的实现完全依靠重量级锁(系统内的互斥锁),从用户态转为内核态非常消耗资源。偏斜锁、轻量级锁、重量级锁。所谓的升级、降级,就是JVM优化synchronized运行的机制,当JVM检测到不同的竞争状况时,会自动切换到适合的锁实现,这种切换就是锁的升级、降级。偏向锁只有单线程执行情况下,该线程在后续访问时,便会自动获取锁。

2024-10-30 22:46:38 982

原创 线程的状态及常用方法

要让两个线程一次只能操作一个线程,如果加锁,必须保证两个线程加的是同一把锁创建一个共有的类,当作锁(Object类型的常量)

2024-10-29 23:23:21 1275

原创 多线程理解

在线程中,可以通过调用Thread.sleep(毫秒),强迫当前线程按照指定毫秒值休眠。并不代表,通过设置优先级来确保高优先级的线程一定会先执行。

2024-10-28 18:39:48 610

原创 Redis面试题

Redis是一个存储在内存中的数据库,这意味着它的读写速度非常快,非常适合做缓存;字符串、哈希散列、列表、集合;可以选择将数据定期存储到磁盘中,防止重启时数据丢失;可以将一组操作看成一个整体一起执行,确保了操作的完整性;支持复制数据和集群部署,提高了数据的可用性和可扩展性;支持消息传递模式,适合用于构建实事应用;支持编写Lua脚本,可在服务器上执行复杂操作;具自动检测故障并恢复的能力,增强了系统的可靠性。

2024-10-24 17:26:42 778

原创 Redis分布式锁

场景:在电商网站中,当面临抢购、秒杀等活动时,由于并发量大,可能会引发库存超卖的问题。为了避免这种情况,可以使用分布式锁来控制并发访问。:是一种多节点共享的同步机制,在同一时间只有一个节点能获的锁并执行关键操作。在电商网站中,可以将每个商品的库存作为共享资源,使用分布式锁来控制并发访问。分布式锁的目的是保证在分布式部署的应用集群中,多个服务在请求同一个方法或者同一个业务操作的情况下,对应业务逻辑只能被一台机器上的一个线程执行,避免出现并发问题。设置有效期直接在设置键值时,就设置时长。

2024-10-16 19:26:10 1018

原创 Redis 缓存预热,缓存雪崩,缓存击穿,缓存穿透

缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据。

2024-10-13 22:52:37 1737 2

原创 SpringBoot自动配置原理

自定义redis-starter ,要求当导入 redis 坐标时, SpringBoot 自动创建 Jedis 的 Bean实现步骤:1、创建redis_spring_boot_autoconfigure模块2、创建自动加载和属性配置类//注入jedis@Bean3、定义META INF/spring.factories文件,引入jedis坐标。

2024-10-07 20:14:43 1412

原创 Redis

Redis是用C语言开发的一个开源的高性能键值对(Key-value)数据库字符串类型 string列表类型 list散列类型 hash集合类型 set有序集合类型 sorted_set5.持久化支持。可以进行数据灾难恢复。

2024-10-07 18:13:03 4864

原创 Mybatis-plus

IService/ServiceImp=================================>公共的业务层。BaseMapper=======================================>公共的数据访问层。@TableField(value="关联字段名称")=====================》修饰在属性。@TableName(value="关系表名称")=======================》修在类。注意:mp坐标添加后,mybatis坐标移除。

2024-10-07 14:49:38 1480

原创 Springboot Web

限制请求参数,例如:params={"msg1","msg2"}表示请求路径中必须携带参数名为msg1与msg2的参数。* method=常量,此请求的类型(get,post),若不设置则此请求适配所有的请求方式。* 绑定的机制:SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。*  /users/1/新名/新性 PUT: 更新 id = 1 的 user。例如:请求 url 中 /delete/{id},

2024-09-30 19:24:56 1445

原创 ElasticSearch倒排索引

Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布, 是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速, 安装使用方便。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是 Apache Solr,也是基于Lucene 演示:京东,淘宝。虽然要先查询倒排索引,再查询正向索引,但无论是词条、还是文档id都建立了索引,查询速度非常快,无序全表扫描。做查询准备的一些属性。

2024-09-29 19:18:45 1203

原创 SpringBoot

4. 解压项目包,并用IDEA以Maven项目导入,一路下一步即可,直到项目导入完毕。boolean:TRUE #TRUE、true、True、FALSE、false、False均可。SpringBoot是基于约定的,搜易很多配置文件都有默认值,但如果想使用自己的配置文件替换默认配置,就可以使用。maps: {first: 吃饭,second: 睡觉, third: 玩手机}maps: {first: 吃饭,second: 睡觉, third: 玩手机}

2024-09-27 11:02:36 970

原创 Spring面试题

Bean代表IOC容器管理的对象通过配置文件或注解,告诉IOC容器我们管理那些对象。

2024-09-24 23:13:55 1285

原创 Spring循环依赖

4.UserDao属性注入,需要UserService,从三级缓存中找UserService,并获取UserService,将UserService从三级缓存 移入二级缓存;注入单向对象引用属性时,从容器中getBean获取后通过set方法反射进去,如果容器中没有,则先创建被注入对象Bean实例(完成整个生命周期)后,在进行注入操作;2.开始UserService属性注入,发现UserDao需要,从缓存中获取,发现没有UserDao;Bean的初始化阶段的步骤比较复杂,所以着重研究Bean的初始化阶段。

2024-09-17 20:33:39 514

原创 Bean的生命周期

对象存储在一个名为singletonObjects的MapBean实例化基本流程加载xml配置文件,解析获取配置中的每个信息,封装成一个个的BeanDefinition 对象;将BeanDefinition存储在一个名为beanDefinitionMap的Map中;ApplicationContext底层遍历beanDefinitionMap,创建Bean实例对象;

2024-09-17 14:11:51 620

原创 Aop和动态代理

将那些与业务无关的,却为业务模块所共同调用的逻辑(例如:事务处理、日志管理、权限控制等)封装轴取成一个可钟用的模块,这个模块被名为“切面”(Ascept),便于减少系统的重复代码,降低模块间得耦合度,并有利于未来的可拓展性和可维护性;,基于继承的方式,生成一个被代理对象的子类来作为代理(cglib动态代理的核心是MethodInterceptor接口和Enhancer类);oxy(反射),基于接口的方式,创建代理的对象(JDK动态代理的核心是InvocationHandler接口和Proxy类);

2024-09-17 00:19:45 653

原创 Spring注解及配置

细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。(value="注入容器中的id,如果省略id为类名且首字母小写,value属性名称可以省略")3.spring3.0后==annotation+JavaConfig配置类。2.若容器中有多个类型可以与之匹配,则自动切换为按照名称装配,若名称没有对应,则报错。2.spring2.5后==xml+annotation。含义:首选项,当类型冲突的情况下,此注解修饰的类被列为首选。

2024-09-16 20:09:57 1488

原创 SpringIOC及DI、Bean管理

DI:(Dependecy Inject,依赖注入)是对IOC概念的不同角度的描述,是只应用程序在运行时,每一个bean对象都依赖IOC容器注入当前bean对象所需要的另一个bean对象。包括:类名,属性,构造方法参数,依赖,是否延迟加载,是否是单例等配置信息。IOC是指将创建对象的控制权力交给spring框架去管理,Spring框架通过注解或者配置文件的方式,创建Bean对象并各个Bean之间的依赖关系,从而形成。2.通过注解或者配置类管理各个bean之间的依赖关系,完成bean的注入。

2024-09-16 16:01:30 752

原创 Spring框架

包括:IOC Container(IOC 容器),Event(事件通知机制),Resource(资源加载机制),Il8n(国际化),Validation(数据校验),Data Binding(数据绑定),Type Conversion(类型转换),spEL (Spring MVC),AOP (面向切面编程);包括:Spring MVC(Spring 基于MVC模式设计封装的Web框架),WebSocket(Spring 集成WebSocket,WebSocket是一个服务器与客户端双向通信的技术)等;

2024-09-15 12:24:08 472

空空如也

空空如也

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

TA关注的人

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