自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 生成12位短id,自增且不连续,永不重复,不依赖数据库

限定初始时间为2023-08-01 00:00:00,获取当前时间时间戳T1,T1与初始时间的毫秒差值T2,转为16进制,转为字符串为r1,获取该字符串的长度L1。平均步长为max/n,(0~平均步长)的平均数为max/n/2,假设使用平均步长最为随机步长范围,最终的值与max相差较远,大约后一半的数字没有被使用。将平均步长*2-平均步长*容错因子(0.1)的值作为我们随机步长的范围 容错因子:减小溢出概率。获取L2 (length - L1) ,获取L2位数字的16进制自增数值范围,取最大值max。

2023-08-29 13:52:23 1624

原创 为什么springboot中的mapper层方法不能重载? mapper[xxx] is ignored, because it exists, maybe from xml file

为什么springboot中的mapper层方法不能重载? mapper[xxx] is ignored, because it exists, maybe from xml file

2023-04-10 14:48:41 2584 1

原创 equals方法居然也有不一样的?

equals方法居然也有不一样的?

2022-12-19 17:36:04 211

原创 springboot通用查询方法,一个方法解决所有领域资源的条件查询操作

springboot通用查询方法,一个方法解决所有领域资源的条件查询操作

2022-10-10 17:17:26 1867

原创 java分割图片为九宫格

java分割图片为九宫格

2022-07-05 18:25:35 455

翻译 java生成二维码

java生成二维码

2022-07-05 17:01:55 145

原创 java发送邮件

文中程序荡下去可以直接运行,再也不用隔一会儿看一下程序有没有跑完了

2022-07-05 14:51:32 267

原创 java连接ElasticSearch 8.2.3、新建索引、删除索引、填充数据

java连接ElasticSearch 8.2.3、新建索引、删除索引、填充数据,同步ES库与数据库数据

2022-07-04 17:45:00 1896 2

原创 java集成easyExcel

java集成easyExcel,一个比POI更好用的读写Excel文件工具

2022-06-28 18:53:51 628

原创 后端接收json参数转为map

后端接收json参数转为map,适用于包含数组的json参数

2022-06-09 16:38:53 730

原创 java使用原生HTTP请求访问外部接口

java使用原生HTTP请求访问外部接口,复制粘贴即用

2022-06-09 15:56:07 332

原创 在线文件不落地转base64

在线文件无需下载,直接转为base64,防止删除文件时宕机导致文件残留

2022-06-09 15:52:12 1170

原创 使用RSA与base64对字符串进行加密解密

使用RSA进行加密解密

2022-06-08 18:15:37 1718

原创 POI写入xlsx文件

我们在开发中经常会遇到将信息打印到xlsx文件中的功能,可以使用POI来完成。创建Excel文件HSSFWorkbook workbook = new HSSFWorkbook();创建工作表sheetHSSFSheet sheet = workbook.createSheet();创建第一行,标题行HSSFRow rowFirst = sheet.createRow(0);创建第一列...

2022-01-20 13:25:42 1057

原创 redis分布式锁(redis实现及redisson实现)

今天做任务用到了redis的分布式锁,分享一下,不足之处还请大佬指正。方法一使用redis,我们想要自己实现分布式锁,首先要防止死锁、占用时间过长等问题,以下是分布式锁的流程,分为两个线程,左半边为主线程,右半边为守护线程。由于我并没有用这种方法做,只是设计了一下,就不战列具体代码,只说思路。首先我们要封装三个方法,降低耦合性,设置参数的时候要考虑灵活性,这样其他的代码也可以使用,第一个方法tryGetDistributed...

2022-01-19 22:09:31 920

原创 关于main方法你不知道的事

main方法的各种情况

2022-01-17 21:29:15 440 1

原创 Git入门基础操作(拉取远程分支)

git拉取远程分支,附git常用命令

2021-12-08 17:36:37 300

翻译 Lambda表达式 学习笔记

Oracle 首席架构师 Mark Reinhold 将 Lambda 表达式描述为有史以来对编程模型的最大一次升级,甚至超过了泛型。

2021-12-08 16:16:44 218

原创 启动tomcat后中文乱码

解决启动tomcat后中文乱码,强迫症福音

2021-12-06 14:35:59 134

原创 每天5道java面试题 -9(JVM)

1.说一下JVM有哪些部分组成?运行流程是什么? JVM包含两个子系统和两个组件:两个子系统为Classloarder(类装载),Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)Class loader(类装载):根据给定的全限定类名(如:java.lang.Object)来装载class文件到Runtime data area中的method area。 Execution en...

2021-11-11 23:07:12 1173

原创 每天5道java面试题 -8(多线程)

1.启动线程方法start()和run()方法有什么不同? 每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,run()方法称为线程 体。通过调用Thread类的start()方法来启动一个线程。 start() 方法用于启动线程,run() 方法用于执行线程的运行时代码。run() 可以重复调用,而 start() 只能调用一次。 start()方法来启动一个线程,真正实现了多线程运行。调用start()方法无需等待ru...

2021-11-11 00:16:39 399

原创 每天5道java面试题 -7(Redis)

1.什么是Redis? Redis是一个使用C语言写成的,开源的高性能key-value非关系缓存数据库。他支持储存的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set -- 有序集合)和hash(哈希类型)。Redis的数据都基于缓存的,所以很快,每秒可以处理超过10万次读写操作,是已知性能最快的Key-value DB。Redis也可以实现数据写入磁盘中,保证了数据的安全不丢失,而且Redis的操作是原子性的2.Re...

2021-11-09 22:30:53 712

原创 每天5道java面试题 -6(MyBatis)

1.MyBatis是什么? MyBatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态SQL,可以严格控制SQL执行性能,灵活度高。 MyBatis可以使用XML或注解来配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。2.JDBC编程有哪些不足之处?MyBatis是怎...

2021-11-09 00:55:15 890

原创 每天5道java面试题 -5(集合)

1.常用的集合类有哪些? Map和Collection接口是所有集合框架的父接口 1)Collection接口的子接口包括Set接口和List接口 2)Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等 3)Set接口的主要实现类有:HashSet、TreeSet、LinkedHashSet等 4)List接口的主要实现类有:Arr...

2021-11-08 01:08:38 82

原创 每天5道Java面试题 -4(MySQL)

1.实践中如何优化MySQL?按照以下顺序优化:SQL语句及索引的优化数据库表结构的优化系统配置的优化硬件的优化2.优化数据库的方法1)选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置成NOTNULL,例如“省份”、“性别”最好使用ENUM2)使用连接(JOIN)来代替子查询3)使用联合(UNION)来代替手动创建的临时表4)事务处理5)锁定表,优化事务处理6)使用外键,优化锁定表7)建立索引8)优化查询语句3.唯一索引比普通索引快吗,

2021-11-06 22:40:34 110

原创 每天5道Java面试题 -3

1.什么是事务?事务的四大特性是什么? 事务指访问并可能更新数据库中的各种数据项的一个程序执行单元,简单地说就是将多个修改数据库中数据的操作作为一个整体,要么一起成功,要么一起失败事务四大特性: 原子性:要么执行,要么不执行 隔离性:所有操作执行完以前,其他会话不能看到过程 一致性:事务前后,数据总额一致 持久性:一旦事务提交,对数据的改变就是永久的2.Tomcat的优化经验 1)去掉web....

2021-11-06 01:14:49 70

原创 每天五道Java面试题 -2

1.字节流如何转换为字符流?字节输入流可以通过InputStreamReader流转换,InputStreamReader流的构造方法的输入参数就是InputStream 字节输出流可以通过OutputStreamWriter流转换,OutputStreamWriter流的构造方法的输入参数就是OutputStream2.字节流和字符流的区别 字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再...

2021-11-05 01:55:28 66

原创 每天5道java面试题 -1

思考好久不知道该发什么,直接发一大批面试题估计就会在收藏夹吃灰了,每天5道,大家可以在碎片时间看。1.JDK和JRE有什么区别?JDK:Java Development Kit的简称,Java开发工具包,提供了Java的开发环境和运行环境。JRE:Java Runtime Environment的简称,Java运行环境,为Java的运行提供了所需环境。具体来说JDK其实包含了JRE,同时还包含了编译Java源码的编译器Javac,还包含了很多Jav...

2021-11-04 00:16:12 86

原创 第一个SpringBoot项目

我用的是IDEA(2019.3.1)首先打开IDEA这里面的不用动,直接点击next即可Group+Artiface通俗一点说,就是你的包名Name随便命名,点击next选择web下的Spring Web,点击next设置一个名字,点击Finish点击这里的绿色小三角,出现如下界面即为创建成功浏览器输入loaclhost:8080/Hello,即可出现我们写的Hello Word...

2021-11-01 20:50:50 149 1

原创 第一个SpringMVC项目(Easy Code)

我所用的是IDEA(2019.3.1)+ MySQL 8.0.15首先打开IDEA选择maven,然后点击next添加项目名称和地址,点击Finish点击Enable Auto-import点击file -> settings点击plugins,搜索Easy Code 点击安装 点击右下角Apply 然后点击ok我已经安装过了,所以显示的是installed再次点击settings,会发现有EasyCode目录,点击Template,发现这...

2021-11-01 00:21:13 162

原创 熬夜整理的数据库基础、JavaWeb、JDBC资料 需要者自取

数据库基础知识点JavaWeb知识点JDBC知识点纯原创图片放大后还是有点不清晰, 需要PDF版本的可以私信找我拿

2021-10-30 16:31:41 65

原创 熬夜整理的java基础, HTML, CSS 需要者自取

java基础知识点HTML知识点CSS知识点纯原创熬不动了,目前只整理了三个,剩下的明天更新图片放大后还是有点不清晰, 需要PDF版本的可以私信找我拿

2021-10-29 21:47:49 66

原创 重定向和转发的区别

重定向和转发的区别转发客户端只发送一次请求,重定向客户端至少发送两次请求转发速度较快,重定向速度较慢转发是客户端向服务器端发送一次请求,服务器端在内部进行转发,将最终结果返回给客户端,从客户端角度来说,只发送了一次请求,速度较快。重定向是客户端向服务器端发送一次请求,服务器端返回302状态码和一个URL地址,从客户端角度来说,重定向至少发送两次请求,速度较慢。转发过程中,request请求资源共享,重定向不共享转发后URL不会变化,重定向后地址栏会变化转发是在服务器内部进行转发,URL不会产生

2021-10-29 00:35:18 469

原创 IDEA连接mysql数据库报错:Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ prop

错误信息:解决方案1mysql版本设置错误,点击图中内容更换版本选择你自己的版本,我的是8.0.15然后点回最开始时我们的界面好了解决方案2时区未设置点击键盘win+r,打开命令行窗口输入mysql -hlocalhost -uroot -p输入 show variables like'%time_zone'; (别落下最后的分号)这里显示SYSTEM,需要我们设置一下时区输入set global...

2021-10-27 20:47:56 95

原创 第一个Vue项目

让我们来看一下Vue项目长什么样子我所用的是HbuilderX(3.2.9)构建Vue项目1. 安装node.js, 从node.js官网下载并安装node安装成功后, 在终端输入node-v ,出现版本号即为安装成功2. 安装cnpm, 在终端窗口输入: npm install -g cnpm --registry=https://registry.npm.taobao.org3. 安装脚手架:通过vue-cli帮助创建vue项目, 在终端窗口输入: sudo cnpm in.

2021-10-26 23:45:44 108 2

原创 Spring框架-AOP

概念OOP(Object-Oriented Programming)面向对象编程,允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用。 AOP(Aspect-Oriented Programming),一般称为面向切面编程,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦...

2021-10-25 23:26:10 82

原创 Spring框架-IOC

概念控制翻转, 也叫依赖注入, 他不会直接创建对象, 只是把对象声明出来, 在代码中不直接与对象和服务进行连接, 但是在配置文件中描述了哪一项组件需要哪一项服务, 容器将他们组件起来. 在一般的IOC场景中容器创建了所有的对象, 并设置了必要的属性将他们联系在一起, 等到需要使用的时候才把他们声明出来, 使用注解就更方便了,容器会自动根据注解把对象组合起来.我认为的控制反转就是: 将对组件对象控制权的转移, 从程序代码本身转移到了外部容器...

2021-10-24 17:38:05 99

空空如也

空空如也

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

TA关注的人

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