- 博客(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循环依赖
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关注的人
RSS订阅