自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 7.3周三

Callable接口call方法有返回值,是个泛。notityAll():唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有。notify():唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方。确切的唤醒某一 个等待状态的线程,而是由 JVM 确定唤醒哪个线程,而且与。wait():使一个线程处于等待(阻塞)状态,并且释放所持有的对象的锁;线程,而是让它 们竞争,只有获得锁的线程才能进入就绪状态。

2024-06-30 17:31:23 225 1

原创 7.2 周二

1. 数据结构实现:ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向。3. 增加和删除效率:在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效。综合来说,在需要频繁读取集合中的元素时,更推荐使用 ArrayList,而在插入和。inkedList 的双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两。率要高,因为 ArrayList 增删操作要影响数组内的其他数据的下标。了存储数据,还存储 了两个引用,一个指向前一个元素,一个指向后一个元。

2024-06-30 17:27:28 188

原创 7.1 周一

equals是Object类的方法,比较的是所指向的对象的地址值,一般情况下,重写之后比较的是对象的值 equals方法不能用于比较基本数据类型,如果没有对equals方法进行重写,则相当于==,比较的是引用类型的变量所指向的对象的地址值;一般情况下,类会重写equals方法用来比较两个对象的内容是否相等.如String类中的equals()是被重写了,比较的是对象的值.用于引用类型的比较时 ==是比较栈内存中的地址是否相等(所指对象的地址值是否相等,是否是同一个对象)==和equals的区别。

2024-06-30 17:20:26 104

原创 1.23第八天

获取锁:当一个客户端尝试获取锁时,Redisson使用Redis的SETNX命令来尝试在Redis中设置一个指定的键值对作为标识,如果该键值对不存在,则表示获取锁成功,否则,获取锁失败;设置过期时间:在获取锁成功之后,Redisson会为这个锁设置一个过期时间,即使持有锁的客户端崩溃或忘记释放锁,锁也会在一段时间之后自动释放,避免死锁的情况发送;释放锁:当客户端使用完锁之后,需要主动调用释放锁的操作,Redisson会使用Lua脚本来保证释放锁的原子性,避免因为网络延迟或者其他原因导致的不一致性;

2024-01-25 08:08:13 339

原创 1.22第七天

1.多人并发下超过发放数量产生的原因:因为我首先查询优惠券,然后判断库存是否充足(领取数量<总数量),最后如果充足,更新优惠券领取数量。解决方案:对于这种场景,一般采取悲观锁,我在这里使用的是Synchronized同步代码块,锁用户id,来判断单人是否超领。1.创建优惠卷:创建优惠卷可以设置使用范围,也可以设置优惠卷类型和优惠力度,还可以设置推广方式,发放数量,每人限领等。优惠卷超领在我的项目中,总共分为两种,分别是多人并发下超过发放数量,单人并发超过每人限领。在我的项目中,优惠卷涉及到了促销微服务。

2024-01-23 08:13:38 357 1

原创 1.19第六天

总之,Java1.8中的ConcurrentHashMap在性能和并发性方面有一些改进,这些改进使得Java1.8中的ConcurrentHashMap在高并发环境中表现更优秀。对于数据库的海量数据存储,方案有很多,常见的有分区、分表、分库、集群;在mysql为了防止单表数据量过多,我们采用了分表的设计方案,把一个赛季的数据放到一张表里,我们在查询时根据赛季标识查询,只用查一张表即可。在我的项目中我采用的是分表,以每个赛季为基准进行分表,水平分出不同的表,每张表中存入对应赛季的数据;

2024-01-22 08:07:38 367

原创 1.18第五天

如果该积分加上增加的积分大于等于对应类型的积分上限,则增加的积分等于该类型上限积分减去查询的积分;bitmap是以二进制0和1来表示数据的,在我们项目中,用0 表示未签到,1表示已签到,这样就把一个人在某个月份签到记录放到了一条记录里,可以非常高效地表示和查询用户的签到记录,很大程度上节省了存储空间。在Redis中,pipeline是一种用于批量执行多个命令的机制,它可以在一个网络往返中发送多个命令,并在一个网络往返中接收它们的响应,这样减少了网络往返的次数和网络开销,可以大大提高性能。

2024-01-19 08:16:58 321 1

原创 1.16第四天

4-1 你们项目是如何部署XXL-JOB的XXL-JOB是一种定时任务,主要用于分布式系统。首先,参考官方文档搭建基础环境。然后,在本地配置调度中心的名字和执行器的端口并且在定期任务上使用@xxljob注解指定工作处理器的名字。其次,打开调度中心的网址,创建调度中心连接执行器,要和本地配置一致最后,创建任务,任务中jobhandle和@xxljob指定的名字一致。4-2 说一说你的评论点赞功能是如何完成(reids版本) 评论点赞主要涉及到两个微服务,分别是点赞微服务和学习微服务。

2024-01-18 09:24:04 288

原创 1.15第三天

3-1 你们的项目是如何进行参数校验的 为了保证数据的正确性和完整性,我们项目是用了Spring的Validation/ˌvælɪˈdeɪʃn/,这是一套基于注解的权限校验框架,在方法参数上添加字段限制,来对接口请求的参数进行后端的校验。 常见的注解有下面几类: 一、空值上的检验: @Null:可以标注在任意类型元素上,被标注的元素必须为null; @NotNull:可以标注在任意类型元素上,被标注的元素必须不能为null,但是

2024-01-18 09:21:05 309 1

原创 1.13第二天

首先,当浏览器查询的请求发过来后,从课程表中查询,设置业务条件(登录用户Id,并且以最后一次学习时间倒序排列),执行查询,虽然最近学习章节只会查询一个结果,但由于返回结果vo中需要该用户课表的数量,为了提高性能,少从数据库查一次数量,所以这里查询该用户的所有课,取第一个。生成课表则是在课表微服务,生成课表的方式有很多,我在项目中使用的是消息中间键MQ,在交易微服务业务功能返回结果的前一步,向MQ投递消息,收费的需要生成订单,支付,清空购物车,然后生成课表,免费的则是生成订单,然后生成课表。

2024-01-15 08:24:44 360

原创 1.12第一天

接下来就要进行前端传入密码和数据库查询到的密码比对,由于数据库的密码是加密保存的,所以在比对之前,还需要对前端传入的秘密进行加密;然后根据账号在数据库员工表进行查询,如果没有查到,说明此账号不存在,可以直接给前端返回一个提示,如果查询到了说明这个账号存在。这确保了项目能够高效地集成和部署。打包和部署:使用Maven等构建工具打包应用程序,然后将打包好的应用程序部署到目标环境,如测试环境或生产环境。其次,在保存完文章信息后,进行一个异步调用文章审核功能,文章审核使用的是阿里云的文字审核和图片审核。

2024-01-12 21:04:10 331

空空如也

空空如也

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

TA关注的人

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