![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 68
UnIQUE Eason
努力就有收获
展开
-
Java设计模式之建造者模式详解(Builder Pattern)
构建者模式是一种非常有用的设计模式,尤其适用于创建具有很多属性的复杂对象。通过链式调用的方式来设置对象的属性,使得代码更加清晰和易于阅读。同时,将对象的构造和表示分离开来,使得我们可以灵活地改变对象的创建过程。然而,对于简单的对象,使用构建者模式可能会过度复杂化代码,因此在使用时需要权衡利弊。总的来说,掌握好构建者模式,可以让我们的代码更加清晰、易于维护和理解原创 2023-09-09 10:53:27 · 738 阅读 · 0 评论 -
Java数字转中文大写工具类(拿去即用)
Java数字转中文大写工具类: 包括数字转中文大写形式,比如一百二十一;数字转金额用的大写形式,比如:壹佰贰拾壹;转金额形式,比如:壹佰贰拾壹整原创 2023-08-31 10:42:10 · 3499 阅读 · 1 评论 -
Java设计模式之单例模式详解(懒汉式和饿汉式)
在开发工作中,有些类只需要存在一个实例,这时就可以使用单例模式。单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。本文将介绍Java单例模式的概念、具体的实现方式,给出示例代码,并探讨单例模式的使用场景和注意事项。原创 2023-07-26 17:18:18 · 3546 阅读 · 1 评论 -
Java实现乐观锁和悲观锁
在 Java 并发编程中,乐观锁和悲观锁都是常用的并发控制机制。乐观锁通常是通过 CAS(Compare and Swap)算法实现的,CAS 算法在 JDK 中提供了相应的原子类,如 AtomicInteger、AtomicLong、AtomicReference 等。悲观锁通常是通过 synchronized 关键字或者 Lock 接口及其实现类来实现的。原创 2023-03-16 16:24:04 · 1712 阅读 · 0 评论 -
Spring中@Transactional事务失效原因
Transactional 注解的作用就是保证方法内的多个数据库操作具有事务特性,即要么都成功提交,要么都失败回滚。但是错误的使用会导致事务失效,这里总结了九种可能发生事务失效的原因。原创 2023-01-30 14:15:00 · 1434 阅读 · 0 评论 -
并发场景使用SimpleDateFormat异常问题和解决
SimpleDateFormat类主要是负责日期的格式化与转换操作,因为它不是线程安全的,所以使用SimpleDateFormat时,务必确保同一个SimpleDateFormat对象不要与其他线程共享,否则并发情况下会出现问题原创 2023-01-16 15:10:29 · 771 阅读 · 0 评论 -
Java多线程之读写锁ReentrantReadWriteLock类使用
在JDK中提供了一种读写锁ReentrantReadWriteLock类,相比ReentrantLock类,使用前者可以加快运行效率。ReentrantLock类是具有完全互斥排他的效果,即同一时间只有一个线程在执行ReentrantLock.lock()方法后面的任务,这样做虽然保证了实例变量的线程安全性,但效率却是非常低下的。所以在某些不需要操作实例变量的方法中,完全可以使用读写锁ReentrantReadWriteLock来提升该方法的代码运行速度。原创 2023-01-12 11:26:02 · 549 阅读 · 0 评论 -
Java实现生成和校验图片验证码(详细)
验证码校验是日常中很常见的场景,工作中难免会遇到了生成和校验验证码这样的需求,可以用Hutool工具类;hutool生成图片验证码的核心接口是ICaptcha,此接口定义了以下方法:createCode 创建验证码,实现类需同时生成随机验证码字符串和验证码图片getCode 获取验证码的文字内容verify 验证验证码是否正确,建议忽略大小写write 将验证码写出到目标流中原创 2022-09-08 15:57:50 · 11389 阅读 · 1 评论 -
JSP内置对象详解(笔记)
JSP九大内置对象:request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例response对象response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例原创 2022-08-17 10:49:11 · 201 阅读 · 0 评论 -
Redis分布式锁Redisson+RLock方法使用详解
基于新的Redis客户端Redisson的锁实现RLock原创 2022-08-03 14:31:24 · 5697 阅读 · 0 评论 -
Java之使用递归查询多级树形结构数据(2)
上一篇文章里说到使用递归查询多级树形结构数据,后来我想了一下,对于一直循环访问数据库还是不推荐,于是这篇文章对递归查询做了一些优化;既然不要循环访问数据库,那么我们就可以一次把所有数据查出来存到`List`集合里,再通过`递归`List把数据存到另一个List也是一个道理,下面上代码...原创 2022-07-06 10:15:27 · 2762 阅读 · 7 评论 -
Java之使用递归查询多级树形结构数据
Java之使用递归查询多级树形结构数据;工作中可能会碰到一个表中存在父子关系,需要查询多级结构的树形数据场景(如图1-1),因此我们可以使用递归来实现原创 2022-07-05 11:40:46 · 8013 阅读 · 9 评论 -
layui富文本编辑器添加使用、新增、回显详解(layeidt)
html部分添加textarea标签<textarea id="wznr" lay-verify="content" style="display: none;"></textarea>JS部分layui.config({ base: '../lib/modules/' }).extend({ layerUtil: 'layerUtil', //在use中加载模块layedit, }).use(['laydate原创 2021-03-10 11:48:48 · 3830 阅读 · 0 评论 -
windows环境安装启动zookeeper和kafka
kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域本文主要介绍windows环境安装启动zookeeper和kafka原创 2022-05-19 18:12:12 · 1562 阅读 · 0 评论 -
解决AJAX发送请求成功却接收不到返回参数问题
今天开发过程中碰到的一个问题, 提交表单的时候使用ajax发送请求成功, 数据也添加进去了, 但是确没有收到返回, 页面就自动刷新了原因<button type="submit" onclick="updateSubmit()" class="btn btn-primary">提交</button>这里的提交按钮type为submit, submit会强制刷新页面, 因为页面被刷新了, 那么ajax返回的信息来到了一个新的页面, 那返回的信息自然是接收不到的解决<b原创 2022-05-10 14:15:53 · 4267 阅读 · 0 评论 -
Java实现复制文件(文件、文件夹)
Java复制文件主要是File工具类中`listFiles()`方法先列出文件夹中的文件, 然后使用`BufferedInputStream`缓冲输入流接收要复制的文件, 再用`BufferedOutputStream`缓冲输出流的`write()`方法写入文件原创 2022-04-28 15:15:10 · 7450 阅读 · 0 评论 -
Java实现数组和List之间的转换
Java中数组和List之间的相互转换实例原创 2022-04-18 10:24:43 · 1218 阅读 · 0 评论 -
Java将字符串反转的几种方式
使用 StringBuilder 或 StringBuffer 的 reverse 方法(需要JDK1.8)不考虑字符串中的字符是否是 Unicode 编码,自己实现。使用递归方法原创 2022-04-11 12:06:20 · 13149 阅读 · 0 评论 -
使用SpringBoot实现邮件发送
邮件发送是一个非常常见的功能,注册时的身份认证、重要通知发送等都会用到邮件发送。Sun公司提供了JavaMail用来实现邮件发送,但是配置烦琐,Spring中提供了JavaMailSender用来简化邮件配置,Spring Boot则提供了MailSenderAutoConfiguration对邮件的发送做了进一步简化。下面就来看看Spring Boot中如何发送邮件。发送前的准备以QQ邮箱为例,首先要申请开通POP3/SMTP服务或者IMAP/SMTP服务。SMTP全称为Simple MailTr.原创 2022-04-07 17:20:41 · 9775 阅读 · 4 评论 -
Java循环中List添加元素把前面的元素被覆盖问题
关于Java循环中List添加元素到后面把前面的元素都覆盖了的问题解决原创 2022-03-28 17:09:20 · 4801 阅读 · 1 评论 -
SpringBoot实现定时任务的两种方式(详细)
定时任务是企业级开发中最常见的功能之一,如定时推送短信和邮件、数据库备份、定时统计收益、定时统计访客等,简单的定时任务可以直接通过Spring中的@Scheduled注解来实现,复杂的定时任务则可以通过集成Quartz来实现,本文将分别介绍@Scheduled注解和集成Quartz原创 2022-03-28 10:00:00 · 3305 阅读 · 0 评论 -
Java使用EasyExcel实现常规的Excel导入导出(详细)
记录一次用EasyExcel实现Excel导入导出以前工作中实现Excel操作都是用的公司封装好的功能或者用JXL和POI,最近发现了一款excel操作神器EasyExcel,看了源码之后是真香啊,用起来简直不要太爽!原创 2022-02-12 11:06:31 · 30645 阅读 · 39 评论 -
Java如何避免sql注入详解
sql注入是web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息、利用数据库的特性执行添加用户、导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。造成sql注入的原因:程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL脚本,程序在接收后错误的将攻击者的输入作为SQL语句的一部分执行,导致原始的查询逻辑被改变,执行了攻击者精心构造的恶意SQL语句。如从用户表根据用户名admin和密码123查用户信息select * from User where原创 2022-01-12 11:07:21 · 9010 阅读 · 1 评论 -
SpringBoot实现文件上传功能(单文件、多文件)
Spring MVC对文件上传做了简化,而在Spring Boot中对此做了更进一步的简化,文件上传变得更为方便,下面开始演示单文件上传首先创建一个Spring Boot项目,并添加spring-boot-starter-web依赖然后创建一个upload.jsp文件,做一个简单的文件上传页面,具体代码如下:<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><hea原创 2022-01-05 17:09:06 · 3116 阅读 · 0 评论 -
Java String类的常用方法详解
Java String类的50个常用方法length(); 获取字符串的长度concat(str); 连接字符串length(); 获取字符串的长度返回类型:int//用法String str = "赶快想想办法啊!123q";System.out.println("字符串长度:"+str.length());concat(str); 连接字符串返回类型:String//两个字符串连接String str = "万物";String str1 = "变化";System.out.p原创 2021-07-30 15:51:27 · 272 阅读 · 0 评论