自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

java知识整理

The life I want,there is no shortcut.

  • 博客(95)
  • 收藏
  • 关注

原创 Java小项目--小型图书管理系统(含完整代码及工具)

写在前面对于一个java项目来说,我理解的整个流程是这样的:(1)进行需求分析(2)设计数据库(重要)(3)编写java代码注:数据库设计非常重要,特别是数据类型的定义,表与表之间的关系,如果前期这些没整太好,在后期写java代码的时候会有些小麻烦,比如,修改数据类型,删除表,添加表中字段等等。不过还好有Navicat这种神器,让我们操作数据库更简单。这里给出它的安装包和破解软件;链接...

2019-10-19 15:48:47 69241 119

原创 SpringBoot动态定时任务--利用hutool工具类实现

思路:首先是能够获取任务具体执行的类名,然后将任务类名以及cron表达式新增到数据库保存起来,有一个监听类,根据任务类名和cron表达式用来运行该定时任务。

2023-06-23 14:01:20 3549 1

原创 idea点击鼠标左键进入方法后关闭之前类问题

会进入方法,会关闭之前的页面,导致看完这个方法,再回去看之前的就会发现tab上没有进来的那个类了,在设置里面关闭一下就能改回以前的了。的勾选,点击右下角的apply,应用一下就好了。idea更新之后,在java类中,按着。,找到Opening Policy,取消。

2023-04-30 11:16:22 759 1

原创 Java的Stream流,groupingBy之后无序解决办法

HaseMap是无序的Map,是根据key的hashcode进行hash,然后放入对应的地址。所以在按照一定顺序put进HashMap之后,遍历HashMap的顺序跟put的顺序不同。一般情况下,我们拿到List集合数据后是有序的,通过stream的groupingBy函数分组之后,顺序却被打乱了,并没有按照list里面的顺序进行返回。可以看到第三个函数是主要的实现分组功能的,有参数:classifier(分组条件)、mapFactory(分组用的map),downstream。

2023-04-30 11:14:37 3441

原创 MySQL常见简单面试题

1、MySQL 索引使用有哪些事项呢?要注意索引失效情况;要添加的索引是否合适;注意索引规则等等索引失效情况:like通配符可能导致索引失效;对索引列进行运算,索引失效;对于联合索引,查询的条件不是联合索引中的第一个列,索引失效;如果字段类型是字符串,where时一定用引号括起来,否则索引失效;索引字段上使用(!= 或者 < >,not in)时,可能会导致索引失效。、查询条件包含or,可能导致索引失效;索引字段上使用is null, is not null,可能导致索引.

2022-02-28 22:17:25 792 4

原创 Java多线程——线程池的七大参数和四大拒绝策略

ThreadPoolExecutor类java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,ThreadPoolExecutor类继承了AbstractExecutorService,提供了四个构造方法,另外三个都是调用第四个构造方法进行初始化的: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,

2022-02-26 22:00:31 1680 1

原创 Redis重点及面试常见问题

Redis常见面试题

2022-02-22 21:08:47 669

原创 Spring 事物的四种隔离级别和七大传播特性

Spring事务的隔离级别和传播特性

2022-02-14 20:38:51 1440

原创 将List中的某一个元素移动到首位或指定位置

List集合的特点是有序、有下标,可重复的问题场景:从数据库查询多条数据放到List集合中,但突然想把集合中某一条数据向上移动,放到某一条数据后边,此时你又不能改变从数据库中查询结果的顺序,所以只能对集合进行处理。方法一:使用 Collections的swap方法。Collections.swap(list,a,b);list是你需要换位置的List。a是你当前需要换位置的元素的索引。b是你需要将这个元素换到哪个位置的索引。方法二:list.add(a, list.remove(b));

2022-01-01 22:11:53 24752 2

原创 数据结构-线性表

线性表的基本概念线性表是最近本、最简单、也是最常用的一种数据结构,一个线性表是n个具有相同特性的数据元素的有限序列。线性表的特征:第一个数据元素没有前驱,这个元素被称为头结点;最后一个元素没有后驱,这个元素被称为尾结点;除了第一个和最后一个,其他数据元素有且仅有一个前驱和后驱。如果把线性表用数学语言来定义,则可以表示为 (a1, … , ai-1, ai, ai+1, … , an)。线性表中数据存储的方式可以是顺序存储,也可以是链式存储,按照存储方式不同,可以把线性表分为顺序表和链表。

2021-08-29 19:06:34 185 2

原创 快速排序算法

快排,顾名思义,就是很快的一种排序算法。核心就是:每次排序的时候,设置一个基准点,将小于等于基准点的放左边,大于等于基准点的放右边,跳跃式交换。基于“二分”的一种思想。但快排也有最坏情况,就是基准值选到最大或最小,导致数据跑到一边,最差时间复杂度是O(N2),平均时间复杂度为O(NlogN)。思路:选最左作为基准,用 j 从右往左遍历,如果比基准大,继续,比基准小,停,用 i 从左网游遍历,如果比基准小,继续,比基准大,停,然后交换 i 和 就 j 处的值,交换之后接着走,直到 i = j;

2021-08-14 20:47:08 213

原创 排序 之 桶数组-Java

桶数组排序,是一种空间换时间的算法。一维桶数组排序,要新建一个数组,其大小是待排序数字的最大值+1,

2021-08-12 19:04:20 1231

原创 Spring Boot整合JWT

参考b站视频整理:https://www.bilibili.com/video/BV1i54y1m7cP?p=1springboot整合jwt步骤:1、登录时,验证账号和密码成功后,生成jwt,返回给前端;2、前端接收后保存,再做其他操作,比如增删改查时,同时将jwt传给后端进行验证,如果jwt当做参数一起传给后端,那么每个操作都会有jwt,为了方便,把jwt放到请求头中,通过拦截器来验证。代码代码结构图如下,除了常规的controller、entity、mapper和service层,还有两.

2021-08-04 20:51:01 1391 12

原创 简单了解JWT

简单了解JWTJWT官方文档:https://jwt.io/introduction1 、JWT官方定义JWT(Json Web Token)翻译过来是:JSON网络令牌。它是一个开放标准 ( RFC 7519 ),它定义了一种紧凑且自包含的方式,用于在各方之间作为 JSON 对象安全地传输信息。该信息可以被验证和信任,因为它是经过数字签名的。JWT 可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。尽管 JWT 可以加密以在各方之间提供保密,但我们将重点关注签名

2021-07-31 19:01:57 346 1

原创 MySQL常见基础面试题

MySQL常见基础面试题1、什么是MySQL?MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司,免费,开源,而且体积小,速度快,很受欢迎。2、数据库的三大范式?第一范式(1NF):是指在关系模型中,所有的属性都应该是原子性的,不可再分;第二范式(2NF):在1NF的基础上,非主属性必须完全依赖于主码(在1NF基础上消除非主属性对主码的部分函数依赖);第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依

2021-07-06 22:55:35 444

原创 180. 连续出现的数字【lead或row_number函数解决】

leetcode 数据库 --180. 连续出现的数字链接:https://leetcode-cn.com/problems/consecutive-numbers/编写一个 SQL 查询,查找所有至少连续出现三次的数字。+----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----+----

2021-02-01 13:40:57 573

原创 mysql 中的field() 排序函数

field() 函数:是将查询的结果集按照指定顺序排序。格式: FIELD(str,str1,str2,str3,...)什么时候用: 想让某几个特定的字段值放在最后,用field()函数。解释: str是字段名字,字符串str1,str2,str3等等,是该字段的值。函数意思: 匹配到str1,将其放到结果集最后返回。详细解析: 当字段值没有匹配到str1,str2或者str3的时候,按照正常排序;当匹配到这些的时候,会把没有匹配的值放到最前面,匹配到的放到后边,并且以写的顺序排序返回结果集。

2021-01-26 20:33:05 5565 3

原创 JSON序列化和反序列化

1、什么是json序列化和反序列化?json序列化:就是JavaBean对象转化为JSON格式的字符串。反序列化:就是序列化的反方向,将字符串转化为JavaBean。2、为什么要序列化和反序列化?现在比较流行前后端分离的项目,前后端分离就离不开传递数据,一种好的数据表示形式让开发者和网站能轻易识别是很重要的,而这个数据表示形式就是json。这时候问题又来了,前端要json字符串,后端要javaBean对象(假设后端采用java语言)怎么办?此时就需要json的序列化和反序列化了。3、流行的类库j

2021-01-24 15:49:17 15660 4

原创 sql函数之count()

建表插入数据建一个account表CREATE TABLE `account` ( `id` int(11) NOT NULL, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `money` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY

2021-01-08 20:46:03 285 1

原创 小白学集合之看ArrayList和LinkedList源码

List实现类【重要】ArrayList:底层是数据,查询快,增删慢JDK1.2版本,运行效率快,线程不安全LinkedList:底层是链表,查询慢,增删快Vector:底层是数据,查询快,增删慢JDK1.0版本,运行效率慢,线程安全ArrayListArrayListDemo类是ArrayList的一些方法的使用。package com.list;import com.collection.Student;import java.util.ArrayList;import

2021-01-03 16:38:08 567 5

原创 小白学集合之List接口

List子接口它的父类是collcetion特点:有序、有下标,元素可以重复有序指的是:插入和取出的顺序一样方法:void add(int index, Object o) //在index位置插入对象oboolean addAll(int index, Collection c) //将一个集合中的元素插入到此集合index位置Object get(int index) //返回集合中指定位置的元素List subList(int fromIndex, int toInd

2021-01-02 13:39:36 256

原创 小白学集合之collceion

小白学集合之collceion根据学习B站视频 Java集合框架详解整理:https://www.bilibili.com/video/BV1zD4y1Q7Fw?p=1什么是集合?集合概念:对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能。集合和数组的区别:(1)数组长度固定;集合长度不固定。(2)数组可以存储基本类型和引用类型;集合只能存储引用类型。集合位置:java.util.*Collection体系结构Collection父接口特点:代表

2021-01-01 22:25:38 290 1

原创 访问阿里云mysql出现Access denied for user ‘root‘@‘xxxxx‘ (using password: YES)

问题:在我连接远程阿里云的mysql时候,出现了Access denied for user 'root'@'xxxxx' (using password: YES)问题。排查:1、密码是否正确2、阿里云的虚拟机是否开放了3306端口号。我的就是密码正确,而且开放了3306端口的还是这样的错误,最后发现是权限不够的原因。修改方法:MySQL8不能将创建用户和授权放在一句话执行,所以要分开执行,然后再执行生效语句。远程连接自己的虚拟机,然后使用 mysql -uroot -p 命令登录自己

2020-12-13 10:50:32 4136 1

原创 Spring Boot项目出现 Invalid bound statement (not found):错误

Spring Boot项目出现错误如下org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.lu.healthy.mapper.UserMapper.getUserByMessage下边一大堆不复制了,上边的是主要错误信息。原因: 找不到xml中的方法解决办法: 逐一排查以下几点1、xml文件中namespace是否正确;2、xml文件中id是否和mapper接口中方法名一致

2020-12-11 20:51:59 12378 1

原创 Spring Boot qq邮箱验证码注册和登录验证

文章目录1、登录注册思路1.1、思路1.2、 整个项目结构图2、准备2.1、开启邮箱POP3/SMTP服务2.2、创建一个spring boot项目的时候,一直确认,jdk选择8。2.3、application.properties配置文件2.4、创建数据库3、全部代码类4、使用postman测试4.1、测试发送邮件4.2、测试注册4.3、测试登录1、登录注册思路这是一个使用spring boot做的一个qq邮箱注册和登录的项目。没写前端页面,使用postman测试。有截图详细。1.1、思路注

2020-12-06 20:39:12 15802 64

原创 Elasticsearch

根据b站视频整理笔记: https://www.bilibili.com/video/BV1Qz411e7yx?p=1文章目录1、ElasticSearch简介1.1、什么是ES1.2、ES和Solr1.3、ES的由来小故事1.4、ElasticSearch和Kibana2、ElasticSearch基本操作2.1、操作ES的RESTful语法2.2、索引的创建、查看和删除3.4 、ES中Field可以指定的类型创建索引并指定数据结构term查询match查询match_all查询match查询 根据.

2020-12-04 18:44:11 836

原创 git上传时出错

错误: 当我们执行:git push -u origin master 命令向码云或者GitHub上传时,出现如下错误:! [rejected] master -> master (non-fast-forward)error: failed to push some refs to ‘gitee.com:kenslu/conmmunity.git’hint: Updates were rejected because the tip of your current branch

2020-11-19 17:57:19 694

原创 三种代理模式详解

文章目录二、代理模式(Proxy Pattern)1、常见的几种代理模式:2、静态代理3、JDK动态代理4、CGLib代理5、CGLib和JDK动态代理的区别二、代理模式(Proxy Pattern)根据B站狂神视频整理:https://www.bilibili.com/video/BV1mc411h719?p=9参考1:https://blog.csdn.net/kongsanjin/article/details/105419414参考2:https://www.cnblogs.com/cen

2020-10-25 14:30:11 4731 2

原创 1024的blog

今天本来想发一篇关于代理模式的blog。结果看到jdk动态代理和CGlig代理的时候,没搞太明白,只能明天接着看。但是,今天不能不发blog,为什么?因为要混一个1024的勋章!!!所以,这是一篇混勋章的blog。加油,打工人!!!...

2020-10-24 18:26:05 341

原创 ssm框架整合

根据b站>狂神说java整理: https://www.bilibili.com/video/BV1aE41167Tu?p=17文章目录7、ssm整合7.1、基本环境7.2、编写代码之mybatis层7.3、编写代码之spring层7.4、编写代码之springmvc层7.5、将配置文件加入applicationContext.xml文件中整合在一起7.6、简单总结7、ssm整合7.1、基本环境1、创建数据库ssm和创建book表create database ssm;use ssm;

2020-10-22 12:48:38 471 3

原创 SpringMVC中的拦截器

6、SpringMVC中的拦截器6.1、拦截器的作用SprigMVC的拦截器类似于Serlvet开发中的过滤器Filter,用于对处理器进行预处理和后处理。用户可以自己定义一些拦截器来实现特定的功能。拦截器和过滤器的区别:过滤器是servlet规范中的一部分,任何java web工程都可以使用。拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用。过滤器是在url-pattern中配置了 /*之后,可以对所有要访问的资源拦截。拦截器只会拦截访问的控制器方法,如

2020-10-21 10:31:02 476

原创 学习SpringMVC响应结果和文件上传

根据B站视频整理:https://www.bilibili.com/video/BV1Mt411G7A8?p=1文章目录4、响应结果和结果视图4.1、响应返回结果是string类型4.2、响应返回结果是void类型4.3、响应之使用forward和redirect页面跳转4.4、响应json数据之过滤静态资源4.5、响应json数据之发送ajax请求4.6、响应json数据之响应json格式数据(ResponseBody)5、文件上传5.1、文件上传的前提5.2、文件上传之传统方式上传源代码5.3、文.

2020-10-20 16:42:11 402

原创 SpringMVC参数和常用注解

根据B站视频整理:https://www.bilibili.com/video/BV1Mt411G7A8?p=1文章目录2、请求参数的绑定2.1、请求参数的绑定。获取单一请求参数2.2、封装类。获取一个类2.3、类里面有类的引用2.4、解决中文乱码2.5、请求参数绑定集合2.6、自定义类型转换器3、常用注解3.1、@RequestParam(接收普通参数的注解)3.2、@RequestBody(获取请求体中的数据)3.3、@PathVaribale(映射 URL 绑定的占位符)3.4、@Request.

2020-10-18 19:34:14 732

原创 SpringMVC概念和第一个程序

根据B站视频整理:https://www.bilibili.com/video/BV1Mt411G7A8?p=1文章目录1、SringMVC 概念1.1、三层架构1.2、MVC模型1.3、第一个SpringMVC程序1、SringMVC 概念1.1、三层架构1、我们开发架构一般都是基于两种形式:一种是 Client/Server 架构(C/S架构),也就是客户端/服务器;另一种是 Browser/Server 架构(B/S架构),也就是浏览器/服务器。2、在JavaEE开发种,几乎全都是基.

2020-10-17 15:48:00 2919 6

原创 单例模式的五种方式

文章目录1、懒汉式(单例对象延迟加载)2、饿汉式(单例对象立即加载)3、双重校验锁( DCL,即double-checked locking)4、静态内部类式5、枚举根据B站尚学堂视频整理:https://www.bilibili.com/video/BV1F54y1R7L1?p=1参考菜鸟教程:https://www.runoob.com/design-pattern/singleton-pattern.html核心作用: 保证一个类只有一个实例,并且提供了一个访问该实例的全局访问点。常见应用

2020-10-10 14:01:17 915 3

原创 spring事务入门级理解

文章目录一、事务概念二、spring事务三、事务操作(注解实现声明式事务管理)四、声明式事务管理参数配置一、事务概念1、什么是事务事务是数据库操作最基本的单元,逻辑上一组操作,要么都成功,如果有一个失败,则所有操作都失败经典场景:银行转账2、事物的四个特性(ACID)原子性一致性隔离性持久性3、引出事务操作(1)数据库建表account,并插入数据pom依赖 <dependencies> <dependency>

2020-10-08 09:56:26 923

原创 JdbdTemplate操作数据库

文章目录一、什么是JdbdTemplate二、准备工作三、代码实现四、批量操作一、什么是JdbdTemplateSpring框架对JDBC进行封装,使用JdbdTemplate方便实现对数据库操作二、准备工作1、导入依赖druid :德鲁伊连接池mysql-connector-javaspring-jdbcspring-tx: spring事务spring-orm :整合Template或者mybatis要用创建一个maven项目后,可以直接把下边的依赖坐标,复制到pom文件中

2020-10-06 23:07:01 745

原创 AOP介绍及注解代码实现

文章目录一、AOP概念二、AOP底层原理三、JDK动态代理四、AOP相关术语五、AOP操作准备一、AOP概念1、什么是AOP(1)面向切面编程(Aspect Oriented Programming),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(2)通俗描述:不通过修改源代码的方式,在主干功能里面添加新功能。(3)如下图,登录例子:如果想要添加一个权限判断功能。以前是要修改源代码的,而现在可以写一个模块,然后横切

2020-10-05 23:34:04 925 1

原创 IOC管理Bean--基于注解方式

文章目录1、什么是注解?2、Spring对Bean管理中创建对象提供的注解3、基于注解方式实现对象创建4、开启逐渐扫描细节配置5、基于注解方式实现属性注入(1)@Autowired:根据属性类型进行自动装配(2)@Qualifier:根据属性名称进行注入(3)@Resource:可以根据类型注解,可以根据名称注入(4)@Value:注入普通类型属性6、完全注解开发1、什么是注解?(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值…)(2)使用注解,注解作用在类上边、方法上边、属性上边(3

2020-10-04 17:26:51 619

原创 引用外部属性文件

在Spring中,使用PropertyPlaceholderConfigurer可以在XML配置文件中引用外部属性文件。它是BeanFactory的后置处理器。 配置文件xml<!-- 数据库配置文件位置 --><context:property-placeholder location="classpath:db.properties" /><!-- 配置德鲁伊--><bean id="dataSourceDefault" class="com.al

2020-09-30 18:06:26 376

空空如也

空空如也

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

TA关注的人

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