自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于java进行收藏功能的实现

大部分点赞都是文章,帖子,或者商品的收藏,然后登录用户进行收藏,创建表的话需要文章,帖子,或者商品的id和用户的id,我这里是文章postId和userIservice层serviceImpl层(用户串行点赞必须加锁)doPostThumbInner是对数据库进行操作的,实现如下 封装了事务的方法,出现错误立即回滚。大概逻辑就是首先判断首先是否已经进行过收藏,如果已经收藏,当用户在进行收藏时,会取消收藏,首先移除收藏表里的信息,如果移除成功,将post里的收藏数进行更新,

2023-04-19 21:40:08 2194

原创 基于java进行点赞功能的实现

1.首先进行建表,大部分点赞都是文章,帖子,或者商品的点赞,然后登录用户进行点赞,创建表的话需要文章,帖子,或者商品的id和用户的id,我这里是文章postId和userId2.接下来就是代码层面的实现controller层(PostThumbAddRequest中放的是文章id)service层serviceImpl层(用户串行点赞必须加锁)doPostThumbInner是对数据库进行操作的,实现如下 封装了事务的方法,出现错误立即回滚。大概逻辑就是首先判断首先是否已经进行过点赞

2023-04-19 20:34:23 1634

原创 ThreadLocal的相关面试题

ThreadLocal的特点:实现线程间的资源隔离,实现线程内的资源共享2.原理是,每个线程都有一个ThreadLocalMap类型的成员变量,用来储存资源对象1.调用set方法,就是以ThreadLocal自己作为key,资源对象作为value,放入当前线程池的threadLocalMap集合中2.调用get方法,就是以ThreadLocal自己作为key,到当前中查找关联线程的资源值3.调用remove方法,就是以ThreadLocal自己作为key,移除关联线程的资源值。

2023-04-19 15:12:13 260

原创 基于java统一全局返回类包括异常(不必重复造轮子)

2. 封装业务异常类(自定义异常)在controller层直接使用。1. 自定义异常枚举类。2. 请求返回工具类。

2023-04-12 17:57:23 391

原创 Java实现利用标签相似度匹配用户,匹配度由上到下( 编辑距离算法实现)

1.首先就是编辑距离算法,此处匹配的是两个字符串,由于标签不止一个,我们需要进行适当的修改。我的项目是每个用户都会有标签,设置开启匹配模式,也就是说展示匹配之后的用户,实现方法如下。其中num这个参数指的是你所要展示的条数,就是匹配出来的之后展示的由大到小前几条。serviceimpl层。controller层。

2023-04-11 11:49:11 970 1

原创 利用java实现用户注册qq邮箱发验证码

1.首先导入依赖进行redis的配置appliication.ymlredis的配置邮箱的配置2.进入qq邮箱电脑端(设置-账户),开启服务 3.在usercontroller中创建接口创建实体类userSendMessage实现sendMessage方法,将验证码写入redis,为后面的用户注册校验验证码做准备用户注册功能注册功能的实现

2023-04-05 22:21:20 713

原创 HsahMap的相关问题

1.Hashmap是懒惰创建数组的,首次使用才能创建数组2.计算索引(桶下标)3.如果桶下标还没人占用,创建Node占位返回4.如果桶下标已经有人占用1.已经是TreeNode走红黑树的添加或更新逻辑,如果链表长度超过树化阈值,走树化逻辑2.是普通的Node,走链表的添加和更新的逻辑,如果链表长度超过树化阈值,走树化逻辑5.返回前检查是否超过阈值,一旦超过进行扩容不同之处:1.链表插入节点时,1.7是头插法,1.8是尾插法。

2023-04-01 15:29:41 48

原创 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 71

原创 宝塔部署ant design pro+springboot项目操作

宝塔部署springboot项目(前后端分离的项目)

2023-03-30 21:51:56 612

原创 主要排序方法

选择排序和冒泡排序的比较:选择排序在一般情况下比冒泡排序的速度快(前提是数组元素是没有顺序的),但是冒泡排序比较稳定,选择排序不稳定。选择排序是指拿第一个数和后面的数进行比较,如果后面的数小于这个数,将两个数进行位置交换,依次进行比较从而得到排好序的数组。

2023-03-29 14:43:11 33

原创 二分查找方法

二分查找方法

2023-03-28 13:22:27 51

原创 实现是否为管理员鉴权Aop

Aop

2023-03-27 20:06:47 114

原创 如何利用Git上传代码到Github?

使用git 上传代码到github

2023-03-27 13:03:33 207

原创 如何开发简易SDK?

开发简易SDK

2023-03-23 17:10:51 398

原创 利用Nacos实现RPC

nacos

2023-03-22 16:00:30 843

原创 Java8新特性之stream流

java8之stream流

2023-03-15 16:44:51 62

原创 mq的高级特性

mq的一些高级特性的实现

2023-03-11 15:09:46 41

原创 利用springboot整合mq

springboot整合mq

2023-03-10 08:38:31 179

原创 Mq消息队列

mq的基础知识及使用

2023-03-09 18:10:59 56

原创 java添加新数据时出现重复数据(利用redis加锁)

在我们添加用户时,如果点击过快,可能数据库会出现两个一模一样的数据,这个原因有很多种,但是我遇到的是因为同时执行了两个线程,同时插入了两个一样的数据,那么我来分享下解决之道!!这里就要引入分布式锁了,如果使用synchronized这个锁的话,就是锁的力度比较强,锁的范围有点大,此处利用的redis中的redisson这个锁进行操作首先需要引入redis和redisson的相关jar包。

2023-03-08 17:09:08 2320

原创 如何使用knife4j接口文档

knif4j接口文档的使用

2023-03-08 16:21:18 265

原创 如何使用Shiro?

shiro的简单使用

2023-03-07 19:55:06 97 1

原创 HTML笔记

HyperTextMarkupLanguage(超文本标记语言)< body >、< /body>等成对的标签,分别叫做开放标签和闭合标签,单独呈现的标签(空元素),如< hr/ >;意为用/来关闭空元素。html注释:

2022-10-24 16:49:25 47

原创 jdbc连接数据库

Mysql

2022-10-16 12:28:29 532

原创 MYSQL之事务

事务

2022-10-14 20:49:21 209

原创 MYSQL之多表查询

行子查询表子查询。

2022-10-14 18:17:50 120

原创 mysql之约束

外键:将两个没有关系的表联系起来。

2022-10-13 20:38:22 58

原创 mysql 之函数

显示成绩以优秀及格不及格来显示。

2022-10-13 19:19:29 95

原创 dml 数据库的增删改查

1.给指定字段添加数据。2.给全部字段添加数据。

2022-10-12 16:53:45 168

原创 MYSQL 数据库与表的操作

2.修改字段名和字段类型。删除指定表并重新建立该表。查询当前数据库所有表。查询指定表的建表语句。

2022-10-12 14:52:34 65

原创 Day11 基于io流的文本拷贝

【代码】Day11 基于io流的文本拷贝。

2022-10-05 08:02:22 37

原创 Day 10利用Runnable接口实现票务出售

利用Runnable接口可以实现多线程来处理同一资源,避免有java单继承性的局限性。

2022-10-02 17:15:52 637

原创 Day9 枚举类型

【代码】Day9 枚举类型。

2022-10-02 17:10:31 43

原创 Day8 建造一个空数组,通过循环以及调用输入方法输入学生成绩,然后通过差值来判断学生成绩等级

【代码】Day8 建造一个空数组,通过循环以及调用输入方法输入学生成绩,然后通过差值来判断学生成绩等级。

2022-09-28 07:01:40 105

原创 Day7 创建account.customer.bank三个类,通过主函数调用

【代码】Day7 创建account.customer.bank三个类,通过主函数调用。

2022-09-27 08:48:39 48

原创 Day6 面向对象的练习(定义学生的三个属性成绩.年龄.班级,然后通过随机数生成被主函数调用,进行查找.遍历.排序)

学生随机数产生成绩,年级,学号,通过方法调用来实现排序,遍历等

2022-09-26 15:04:04 79

原创 Day5 Arrays工具的使用

【代码】Day5 Arrays工具的使用。

2022-09-25 10:36:55 59

原创 排序方法之冒泡排序

如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中。冒泡排序重复地走访过要排序的元素列,依次比较两个相邻的。的气泡最终会上浮到顶端一样,故名“冒泡排序”。

2022-09-24 08:56:45 100

原创 day 3 基于java的数组学习

数组:包含一维数组和二维数组,对于二维数组可以看成一维数组又作为另一个数组的元素而存在。l两者的区别 :二维数组需要进行两次遍历,第一次是进行行遍历,第二次是需要进行列遍历。一.关于一维数组的声明和初始化。二.关于数组中的一些常用方法。3.查找元素之线性查找。查找元素之二分法查找。

2022-09-23 16:37:07 174

原创 day2: java生成不重复的六个随机数

Java生成六个不会重复的随机数,需要一个固定生成随机数的公式。

2022-09-23 10:45:56 1505

空空如也

空空如也

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

TA关注的人

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