- 博客(41)
- 收藏
- 关注
原创 基于java进行收藏功能的实现
大部分点赞都是文章,帖子,或者商品的收藏,然后登录用户进行收藏,创建表的话需要文章,帖子,或者商品的id和用户的id,我这里是文章postId和userIservice层serviceImpl层(用户串行点赞必须加锁)doPostThumbInner是对数据库进行操作的,实现如下 封装了事务的方法,出现错误立即回滚。大概逻辑就是首先判断首先是否已经进行过收藏,如果已经收藏,当用户在进行收藏时,会取消收藏,首先移除收藏表里的信息,如果移除成功,将post里的收藏数进行更新,
2023-04-19 21:40:08
2341
原创 基于java进行点赞功能的实现
1.首先进行建表,大部分点赞都是文章,帖子,或者商品的点赞,然后登录用户进行点赞,创建表的话需要文章,帖子,或者商品的id和用户的id,我这里是文章postId和userId2.接下来就是代码层面的实现controller层(PostThumbAddRequest中放的是文章id)service层serviceImpl层(用户串行点赞必须加锁)doPostThumbInner是对数据库进行操作的,实现如下 封装了事务的方法,出现错误立即回滚。大概逻辑就是首先判断首先是否已经进行过点赞
2023-04-19 20:34:23
1714
原创 ThreadLocal的相关面试题
ThreadLocal的特点:实现线程间的资源隔离,实现线程内的资源共享2.原理是,每个线程都有一个ThreadLocalMap类型的成员变量,用来储存资源对象1.调用set方法,就是以ThreadLocal自己作为key,资源对象作为value,放入当前线程池的threadLocalMap集合中2.调用get方法,就是以ThreadLocal自己作为key,到当前中查找关联线程的资源值3.调用remove方法,就是以ThreadLocal自己作为key,移除关联线程的资源值。
2023-04-19 15:12:13
267
原创 基于java统一全局返回类包括异常(不必重复造轮子)
2. 封装业务异常类(自定义异常)在controller层直接使用。1. 自定义异常枚举类。2. 请求返回工具类。
2023-04-12 17:57:23
418
原创 Java实现利用标签相似度匹配用户,匹配度由上到下( 编辑距离算法实现)
1.首先就是编辑距离算法,此处匹配的是两个字符串,由于标签不止一个,我们需要进行适当的修改。我的项目是每个用户都会有标签,设置开启匹配模式,也就是说展示匹配之后的用户,实现方法如下。其中num这个参数指的是你所要展示的条数,就是匹配出来的之后展示的由大到小前几条。serviceimpl层。controller层。
2023-04-11 11:49:11
1051
1
原创 利用java实现用户注册qq邮箱发验证码
1.首先导入依赖进行redis的配置appliication.ymlredis的配置邮箱的配置2.进入qq邮箱电脑端(设置-账户),开启服务 3.在usercontroller中创建接口创建实体类userSendMessage实现sendMessage方法,将验证码写入redis,为后面的用户注册校验验证码做准备用户注册功能注册功能的实现
2023-04-05 22:21:20
781
原创 HsahMap的相关问题
1.Hashmap是懒惰创建数组的,首次使用才能创建数组2.计算索引(桶下标)3.如果桶下标还没人占用,创建Node占位返回4.如果桶下标已经有人占用1.已经是TreeNode走红黑树的添加或更新逻辑,如果链表长度超过树化阈值,走树化逻辑2.是普通的Node,走链表的添加和更新的逻辑,如果链表长度超过树化阈值,走树化逻辑5.返回前检查是否超过阈值,一旦超过进行扩容不同之处:1.链表插入节点时,1.7是头插法,1.8是尾插法。
2023-04-01 15:29:41
55
原创 ArrayList扩容规则
如果现在已经是十个元素了,利用addall再添加一个有六个元素的集合,此时扩容量不是15,不是22,而是16。ArrayList在创建后数组的容量为0,每次扩容规则上次容量的1.5倍。3.尾部插入,删除性能可以,其他部分插入删除都会移动数据,性能会低。fail-fast:遍历时不可添加元素,添加元素会报错。fast-safe:遍历时可以添加元素,遍历不会报错。4.利用cpu缓存,局部性原理(数组更好的缓存)2.随机访问快(根据下标访问,只需要看下标)1.基于数组,需要连续内存。3.头部插入,删除性能高。
2023-04-01 08:51:42
79
原创 主要排序方法
选择排序和冒泡排序的比较:选择排序在一般情况下比冒泡排序的速度快(前提是数组元素是没有顺序的),但是冒泡排序比较稳定,选择排序不稳定。选择排序是指拿第一个数和后面的数进行比较,如果后面的数小于这个数,将两个数进行位置交换,依次进行比较从而得到排好序的数组。
2023-03-29 14:43:11
37
原创 java添加新数据时出现重复数据(利用redis加锁)
在我们添加用户时,如果点击过快,可能数据库会出现两个一模一样的数据,这个原因有很多种,但是我遇到的是因为同时执行了两个线程,同时插入了两个一样的数据,那么我来分享下解决之道!!这里就要引入分布式锁了,如果使用synchronized这个锁的话,就是锁的力度比较强,锁的范围有点大,此处利用的redis中的redisson这个锁进行操作首先需要引入redis和redisson的相关jar包。
2023-03-08 17:09:08
2499
原创 HTML笔记
HyperTextMarkupLanguage(超文本标记语言)< body >、< /body>等成对的标签,分别叫做开放标签和闭合标签,单独呈现的标签(空元素),如< hr/ >;意为用/来关闭空元素。html注释:
2022-10-24 16:49:25
56
原创 Day8 建造一个空数组,通过循环以及调用输入方法输入学生成绩,然后通过差值来判断学生成绩等级
【代码】Day8 建造一个空数组,通过循环以及调用输入方法输入学生成绩,然后通过差值来判断学生成绩等级。
2022-09-28 07:01:40
112
原创 Day7 创建account.customer.bank三个类,通过主函数调用
【代码】Day7 创建account.customer.bank三个类,通过主函数调用。
2022-09-27 08:48:39
53
原创 Day6 面向对象的练习(定义学生的三个属性成绩.年龄.班级,然后通过随机数生成被主函数调用,进行查找.遍历.排序)
学生随机数产生成绩,年级,学号,通过方法调用来实现排序,遍历等
2022-09-26 15:04:04
88
原创 排序方法之冒泡排序
如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中。冒泡排序重复地走访过要排序的元素列,依次比较两个相邻的。的气泡最终会上浮到顶端一样,故名“冒泡排序”。
2022-09-24 08:56:45
106
原创 day 3 基于java的数组学习
数组:包含一维数组和二维数组,对于二维数组可以看成一维数组又作为另一个数组的元素而存在。l两者的区别 :二维数组需要进行两次遍历,第一次是进行行遍历,第二次是需要进行列遍历。一.关于一维数组的声明和初始化。二.关于数组中的一些常用方法。3.查找元素之线性查找。查找元素之二分法查找。
2022-09-23 16:37:07
181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人