九阴真经
小小大侠客
用技术改变世界,用代码改变命运!
展开
-
Java实现Mysql批量插入与更新
第一、批量插入语句第二、批量更新语句第三,工具类第四、调用方式欢迎大家积极留言交流学习心得,点赞的人最美丽!原创 2024-06-13 13:32:09 · 729 阅读 · 0 评论 -
高并发中的限流策略
限流,简单来说,就是限制在一定时间内可以处理的请求数量。在互联网时代,随着用户数量的激增和业务需求的不断扩展,我们的应用程序经常面临高并发的挑战。高并发环境下,服务器需要处理大量的请求,这就需要我们采取一些策略来保护系统不被过多的请求所压垮。它通过一个令牌桶来控制请求的速率,桶中存放着一定数量的令牌,请求需要消耗令牌才能被处理。我们可以设置一个计数器,每当有请求进来时,计数器就加一,当计数器达到设定的阈值时,就拒绝新的请求。它通过一个固定容量的桶来控制请求的速率,请求就像是水,以固定的速率从桶中漏出。原创 2024-06-05 09:53:11 · 225 阅读 · 0 评论 -
Java使用IText根据pdf模板创建pdf文件
【代码】Java使用IText根据pdf模板创建pdf文件。原创 2024-04-25 15:32:23 · 886 阅读 · 3 评论 -
ZXing生成二维码与条形码
【代码】ZXing生成二维码与条形码。原创 2024-04-16 13:56:36 · 524 阅读 · 0 评论 -
图片转base64
2、根据图片url将图片转为base64。1、根据图片路径将图片转为base64。原创 2024-03-22 13:19:39 · 182 阅读 · 0 评论 -
@Transactional 事务注解
在这里我也放个问题吧,希望有高手可以回复指点指点我,因为JVM动态代理是基于接口实现的,那么是不是service层都要按照接口和实现类的开发模式,注解才会生效呢,就是说controller层直接调用没有接口的service层,加了注解也一样不起作用吧,这个懒了,没有测试,其一是因为没有人会这么开发吧,其二是我就认为是不起作用的,哈哈。代码太长了,超过屏幕了,粘贴出来截的图,红框注释需要仔细看,希望不要影响你的阅读体验,至此,本篇关于@Transactioinal注解的使用就到此为止啦,原创 2024-01-09 17:09:31 · 410 阅读 · 1 评论 -
Spring中Bean的生命周期
值得注意的是:实例化和初始化是两个完全不同的过程,前者只是给Bean分配内存空间,而后者则是将程序执行权从系统级别转到用户级别,执行用户添加的业务代码。进行初始化工作(使用注解 @PostConstruct 初始化 或者 使用(xml)init-method 初始化, 前者技术比后者技术先进~);: 给Bean分配内存空间(对应JVM中的“加载”,这里只是分配了内存);: 进行Bean的注入和装配;执行初始化的前置工作;执行初始化的后置工作;原创 2024-01-09 16:18:17 · 429 阅读 · 0 评论 -
一个 Java 对象到底有多大?
Object Header占4byte,Pointer占4byte,一个int字段(size)占4byte,elementData数组本身占12(4+4+4),数组中10个Integer对象占10×16。一个long比一个int才多4byte,但是你要想,如果内存中有100W个long,那就白白浪费了约4MB空间,不要小看这一点点的空间浪费,因为随便一个跑着在线应用的JVM中,对象都能达到上千万!结果是16byte!一个int在java中占据4byte,所以Integer的大小为4+4+4=12byte。原创 2023-10-13 15:12:33 · 332 阅读 · 0 评论 -
Java 序列化和反序列化为什么要实现 Serializable 接口
如果不显示指定serialVersionUID, JVM在序列化时会根据属性自动生成一个serialVersionUID, 然后与属性一起序列化, 再进行持久化或网络传输. 在反序列化时, JVM会再根据属性自动生成一个新版serialVersionUID, 然后将这个新版serialVersionUID与序列化时生成的旧版serialVersionUID进行比较, 如果相同则反序列化成功, 否则报错..先说结论, 被transient关键字修饰的属性不会被序列化, static属性也不会被序列化.。原创 2023-10-11 13:58:11 · 126 阅读 · 0 评论 -
Java加密和解密敏感数据
1、对称加密: 对称加密使用同一个密钥来加密和解密数据。原创 2023-07-07 14:48:36 · 455 阅读 · 0 评论 -
Java之Comparator排序问题
Java之Comparator排序问题原创 2023-05-15 11:05:23 · 732 阅读 · 0 评论 -
docker查询日志输出到文件的优雅实践
第一、创建日志文件vim file.txt顺便普及一下vim退出的方式按 ESC,左下角就可以进行输入:w 保存但不退出:wq 保存并退出:q 退出:q! 强制退出,不保存:e! 放弃所有修改,从上次保存文件开始再编辑命令历史第二、查询容器iddocker ps第三、写入指定容器在某时间段的日志--将最近225分钟的日志写到file.txt文件docker logs --since 225m 4261ce7f5c14 >>file.txt第四、将file.tx原创 2022-01-15 15:13:18 · 18948 阅读 · 0 评论 -
序列化与反序列化
1.序列化与反序列化的概念序列化:将对象写入到IO流中反序列化:从IO流中恢复对象Serializable接口是一个标记接口,不用实现任何方法,标记当前类对象是可以序列化的,是给JVM看的。序列化机制允许将这些实现序列化接口的对象转化为字节序列,这些字节序列可以保证在磁盘上或者网络传输后恢复成原来的对象。序列化就是把对象存储在JVM以外的地方,序列化机制可以让对象脱离程序的运行而独立存在。序列化在业务代码也许用的不多,但是在框架层面用的是很多的。先给出序列化的例子。package com.s原创 2021-12-16 15:34:11 · 557 阅读 · 0 评论 -
Java代码优化之超搞笑的小技巧
前言代码优化是一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的:呜呼!泰山不让土壤,故能成其大;河海不择细流,故能就其深;王者不却众庶,故能明其德。一点一滴的优化都是未来系统飞速疾驰的巨大动力。代码优化的目标是:1.减小代码的体积。2.提高代码运行的效率。优化细节1、尽量指定类、方法的final修饰符带有 final 修饰符的类是不可派生的。在 Java 核心 API 中,有许多应用 final 的例子,例如 jav原创 2021-09-29 11:03:50 · 215 阅读 · 0 评论 -
Java8 LocalDate、Date、LocalDateTime、时间戳的转换
7.String转LocalDate。原创 2021-06-23 13:08:27 · 1592 阅读 · 0 评论 -
Tomcat配置图片保存路径
1.使用Tomcat作为服务器的时候,如果不配置图片保存路径,将图片保存在项目路径下,那么再次打war包发布项目可能会造成图片的丢失,每次重启前将图片先保存再copy到服务器明显不方便,这时可以配置图片保存位置,将图片保存到项目外的地方,方法如下:打开tomcat - conf下的server.xml文件,在Host节点下添加<Context docBase="D:/imgs" path="/imgs" />docBase为图片保存的位置,path为图片的访问路径。例如:1.该原创 2020-12-24 10:06:44 · 2226 阅读 · 0 评论 -
Java后端正则表达式校验数字、字母及特殊字符
下面以Java代码为例简述用正则表达式校验密码复杂度。/** * 正则表达式校验密码复杂度 * @author shixiangcheng * 2020-12-17 */public class TestPattern { public static final String LETTER_PATTERN="^.*[a-zA-Z]+.*$";//字母 public static final String NUMBER_PATTERN="^.*[0-9]+.*$";//数字 public s原创 2020-12-17 11:08:25 · 19269 阅读 · 0 评论 -
linux杀死指定端口的进程命令
假设要杀死端口:8160的进程netstat -apn|grep 8160kill -9 pid示例原创 2020-10-29 11:42:33 · 1220 阅读 · 0 评论 -
org.apache.commons.beanutils.ConversionException: No value specified for ‘BigDecimal‘
问题描述:当使用org.apache.commons.beanutils.BeanUtils进行对象拷贝时,遇到BigDecimal的属性会报错No value specified for ‘BigDecimal’问题重现:1.新增类:Aimport java.math.BigDecimal;public class A { private String name; private BigDecimal money; public String getName() { return nam原创 2020-10-14 14:53:57 · 3267 阅读 · 0 评论 -
Java Out Of Memory解决之JAVA_OPTS参数说明与配置
JAVA_OPTS="-server -Xms1024m -Xmx2048m -Xss512k -XX:PermSize=300m -XX:MaxPermSize=1024m"-Xms256m :初始化内存-Xmx1024m :能获得的最大内存-Xss1024K :每增加一个线程消耗的内存-XX:PermSize=300m :最小内存的永久保存区域,主要存放class文件。-XX:MaxPermSize=456m :最大内存的永久保存区域。...原创 2020-09-30 17:28:36 · 757 阅读 · 0 评论 -
Eclipse如何安装lombok工具
第一、下载lombok.jar第二、双击下载好的lombak.jar,安装步骤如下1、点击Specify location,选择eclipse安装目录2、点击:Install/Update3、点击Quit Installer,完成安装第三、安装完成之后,请确认eclipse安装路径下是否多了一个lombok.jar包,并且其配置文件eclipse.ini中是否 添加了如下内容:-javaagent:D:\Tools\Eclipse2020\eclipse\lombok.jar第四、重启e原创 2020-09-17 17:18:19 · 834 阅读 · 0 评论 -
JSON串的字段和类中字段不一致时如何转换?
第一、前言Json串是我们现在经常会遇到的一种描述对象的字符串格式。在用Java语言开发的功能中,也经常需要做Json串与Java对象之间的转换。第二、正常转换fastjson就是经常用来做Json串与Java对象之间的转换,就像下面我用fastjson实现的示例。import com.alibaba.fastjson.JSON;/** * JSON与对象转换 * @author shixiangcheng * 2020-08-22 */public class JsonDemo {原创 2020-08-22 18:36:42 · 8981 阅读 · 1 评论 -
JSP+Servlet中使用cos.jar实现文件上传下载
第一、前言本文通过JSP+Servlet的架构,用cos.jar实现文件的上传与下载。不涉及数据库交互。第二、引入相关jar包第三、代码示例1、新建com.servlet.UploadServlet.javaimport java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;impor原创 2020-08-09 11:49:41 · 750 阅读 · 0 评论 -
将JSON报文转为Java对象
1.对于不同系统之间的接口调用,一般采用JSON作为数据传输格式,调用方将对象转为JSON报文,服务端将JSON报文解析转为Java对象,然后进行业务处理。本文旨在总结服务端如何将JSON报文转为Java对象。代码示例a.RequestDTO.javaimport java.io.Serializable;/** * 请求参数通用类 * @author shixiangcheng *...原创 2020-04-29 22:15:10 · 1062 阅读 · 0 评论 -
RSA生成公私钥并加解密
1.RSA简介RSA是目前使用最广泛的公钥密码体制之一,可以实现非对称加密。它是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法的安全性基于RSA问题的困难性,也就是基于大整数因子分解的困难性上。但是RS...原创 2020-04-29 21:12:16 · 1883 阅读 · 0 评论 -
Java使用replaceAll()方法替换字符串中的(“.“)点号
场景:把字符串2020.04.28中的(.)点号全都换成(-)横线。代码示例/** * 测试类 * @author shixiangcheng * 2020-04-28 */public class Test { public static void main(String [] args){ //原始字符串 String sourceStr="2020.04.28"; ...原创 2020-04-28 10:36:45 · 9727 阅读 · 0 评论 -
Java实现简单的邮件发送
1、新建一个Maven工程,并加入依赖。<dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.5</version></dependency>2、编写代码...原创 2020-02-23 15:43:09 · 387 阅读 · 0 评论 -
将异常信息Exception转为String字符串打印输出
1.程序员在开发过程中,经常会对可能发生异常的代码段进行异常捕获,为便于追踪问题,需要将异常信息打印到日志文件或记录到日志表中。举例:/** * 测试异常捕获机制 * @author shixiangcheng * 2019-12-02 */public class Test { public static void main(String [] args) throws Exce...原创 2019-12-02 11:38:28 · 2840 阅读 · 0 评论