自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龙吟山庄

用技术改变世界,用代码改变命运!

  • 博客(98)
  • 资源 (5)
  • 收藏
  • 关注

原创 Java使用IText根据pdf模板创建pdf文件

【代码】Java使用IText根据pdf模板创建pdf文件。

2024-04-25 15:32:23 158 1

原创 21条实用Linux命令

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。使用 “+” 设置权限,使用 “-” 用于取消。(向一个命令启动的进程发送一个信号)pwd 显示工作路径。

2024-04-25 11:30:20 198

原创 SpringBoot常见的52个注解

用于定义Bean初始化顺序,可以用在@Configuration、@Component、@Service、@Repository等注解以及@Bean方法上。用于定义配置类或Bean仅在特定的Profile激活时才会生效,可以用在@Configuration类或@Bean方法上。用于定义在特定Bean存在或不存在时的条件配置,可以用在@Configuration类或@Bean方法上。用于定义在特定类存在或不存在时的条件配置,可以用在@Configuration类或@Bean方法上。

2024-04-19 14:17:25 550

原创 ZXing生成二维码与条形码

【代码】ZXing生成二维码与条形码。

2024-04-16 13:56:36 194

原创 图片转base64

2、根据图片url将图片转为base64。1、根据图片路径将图片转为base64。

2024-03-22 13:19:39 111

原创 超实用IDEA技巧,让生产力突飞猛进

尽管本质都是去改变 .vmoptions配置文件,但推荐使用Change Memory Settings去调整,选择Edit Custom VM Options 或者在本地磁盘目录更改,通过某些方法破解的idea 很可能造成idea打不开的情况。与eclipse类似,idea也可以自己关闭代码检查 减少资源使用,但不推荐全部关闭,(是大佬当我没说),把我们项目中不会使用到的关闭就好了。idea默认是选择显示单行的,我们把这个去掉,就可以显示多行tab了,在打开tab过多时的场景非常方便!

2024-02-23 13:35:09 326

原创 Java 的 8 种异步实现方式

如果我们希望一旦计算完成就拿到结果展示给用户或者做另外的计算,就必须使用另一个线程不断的查询计算状态。Future件彼此孤立:有时某一个耗时很长的异步任务执行结束之后,你想利用它返回的结果再做进一步的运算,该运算也会是一个异步任务,两者之间的关系需要程序开发人员手动进行绑定赋予,Future并不能将其形成一个任务流(pipeline),每一个Future都是彼此之间都是孤立的,所以才有了后面的CompletableFuture,CompletableFuture就可以将多个Future串联起来形成任务流。

2024-02-19 14:22:40 833

原创 @Transactional 事务注解

在这里我也放个问题吧,希望有高手可以回复指点指点我,因为JVM动态代理是基于接口实现的,那么是不是service层都要按照接口和实现类的开发模式,注解才会生效呢,就是说controller层直接调用没有接口的service层,加了注解也一样不起作用吧,这个懒了,没有测试,其一是因为没有人会这么开发吧,其二是我就认为是不起作用的,哈哈。代码太长了,超过屏幕了,粘贴出来截的图,红框注释需要仔细看,希望不要影响你的阅读体验,至此,本篇关于@Transactioinal注解的使用就到此为止啦,

2024-01-09 17:09:31 352 1

原创 Spring中Bean的生命周期

值得注意的是:实例化和初始化是两个完全不同的过程,前者只是给Bean分配内存空间,而后者则是将程序执行权从系统级别转到用户级别,执行用户添加的业务代码。进行初始化工作(使用注解 @PostConstruct 初始化 或者 使用(xml)init-method 初始化, 前者技术比后者技术先进~);: 给Bean分配内存空间(对应JVM中的“加载”,这里只是分配了内存);: 进行Bean的注入和装配;执行初始化的前置工作;执行初始化的后置工作;

2024-01-09 16:18:17 413

原创 SpringBoot+自定义注解+AOP高级玩法打造通用开关

将redis中开关置为1。

2023-10-17 16:42:08 238

原创 一个 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 212

原创 Java 序列化和反序列化为什么要实现 Serializable 接口

如果不显示指定serialVersionUID, JVM在序列化时会根据属性自动生成一个serialVersionUID, 然后与属性一起序列化, 再进行持久化或网络传输. 在反序列化时, JVM会再根据属性自动生成一个新版serialVersionUID, 然后将这个新版serialVersionUID与序列化时生成的旧版serialVersionUID进行比较, 如果相同则反序列化成功, 否则报错..先说结论, 被transient关键字修饰的属性不会被序列化, static属性也不会被序列化.。

2023-10-11 13:58:11 100

原创 多线程并发之线程通信

场景:当你有很大一个List的时候,有时候业务处理时就需要将List拆分处理,比如你调用依赖方接口,Get请求中包含这个超长的List入参,这样请求URL就会出现过长的问题,所以可以使用Lists.partition进行分割。结合Semaphore是为了控制并发量,以防依赖方接口不能支撑住很大并发量,使用Semaphore控制并发量以保证不给依赖方接口打死。多个线程并发执行时,在默认情况下CPU是随机切换线程的,有时我们希望CPU按我们的规律执行线程,此时就需要线程之间协调通信。

2023-07-10 16:32:24 127

原创 Java加密和解密敏感数据

1、对称加密: 对称加密使用同一个密钥来加密和解密数据。

2023-07-07 14:48:36 336

原创 Java之Comparator排序问题

Java之Comparator排序问题

2023-05-15 11:05:23 633

原创 设计模式之责任链

设计模式之责任链

2022-08-24 14:59:58 155

原创 Java8之Stream

第一、Java8 Stream之filter,distinct,skip,limit,map,flatmap详细介绍List<Integer> list= Arrays.asList(1,2,3,4,5,1);//1.filter过滤流中的数据。List<Integer> result=list.stream().filter(i->i%2==0).collect(Collectors.toList());System.out.println("filter过滤流中的数

2022-05-22 18:19:24 1069

原创 Java内置线程池ExecutorService介绍及商品秒杀案例

第一、ExecutorService接口是java内置的线程池接口,通过学习接口中的方法,可以快速的掌握java内置线程池的基本使用常用方法:void shutdown() 启动一次顺序关闭,执行以前提交的任务,但不接受新任务。List shutdownNow() 停止所有正在执行的任务,暂停处理正在等待的任务,并返回等待执行的任务列表。 Future submit(Callable task) 执行带返回值的任务,返回一个Future对象。Future<?> submit(Ru

2022-05-14 19:52:19 809

原创 自定义线程池

第一、什么是线程池线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队里中,然后在创建线程后自动启动这些任务。这里的任务就是实现了Runnable或Callable接口的实例对象。第二、为什么使用线程池使用线程池最大的原因就是可以根据系统的需求和硬件环境灵活的控制线程的数量,且可以对所有线程进行统一的管理和控制,从而提高系统的运行效率,降低系统运行压力;第三、使用线程池有哪些优势a.线程和任务分离,提升线程重用性b.控制线程并发数量,降低服务器压力,统一管理所有线程c.提升系统响应速

2022-05-08 21:02:32 863

原创 Oracle的SQL优化建议

第一、SQL语句尽量用大写的因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行第二、使用表的别名当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误。第三、选择最有效率的表名顺序(只在基于规则的优化器(RBO)中有效)ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表也称为驱表,driving table)将被最先处理,在FROM子

2022-05-04 22:07:33 1269

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

原创 序列化与反序列化

1.序列化与反序列化的概念序列化:将对象写入到IO流中反序列化:从IO流中恢复对象Serializable接口是一个标记接口,不用实现任何方法,标记当前类对象是可以序列化的,是给JVM看的。序列化机制允许将这些实现序列化接口的对象转化为字节序列,这些字节序列可以保证在磁盘上或者网络传输后恢复成原来的对象。序列化就是把对象存储在JVM以外的地方,序列化机制可以让对象脱离程序的运行而独立存在。序列化在业务代码也许用的不多,但是在框架层面用的是很多的。先给出序列化的例子。package com.s

2021-12-16 15:34:11 530

原创 Java代码优化之超搞笑的小技巧

前言代码优化是一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的:呜呼!泰山不让土壤,故能成其大;河海不择细流,故能就其深;王者不却众庶,故能明其德。一点一滴的优化都是未来系统飞速疾驰的巨大动力。代码优化的目标是:1.减小代码的体积。2.提高代码运行的效率。优化细节1、尽量指定类、方法的final修饰符带有 final 修饰符的类是不可派生的。在 Java 核心 API 中,有许多应用 final 的例子,例如 jav

2021-09-29 11:03:50 174

原创 Java8 LocalDate、Date、LocalDateTime、时间戳的转换

7.String转LocalDate。

2021-06-23 13:08:27 1398

原创 Spring MVC及Spring Boot项目中RestTemplate的运用

第一、RestTemplate简介RestTemplate是Spring提供的用于访问Rest服务的客端, RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率,所以很多客户端比如Android或者第三方服务商都是使用RestTemplate请求restful服务。第二、Spring MVC项目中RestTemplate的使用1、使用RestTemplate之前,需要初始化其实例。创建一个工具类如下,初始化实例后,可以通过注解注入调用类中。import or

2021-03-09 19:21:22 769

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

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

原创 linux杀死指定端口的进程命令

假设要杀死端口:8160的进程netstat -apn|grep 8160kill -9 pid示例

2020-10-29 11:42:33 1165

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

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

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

原创 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 7841 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 657

原创 JQuery实现复选框全选或全不选

第一、前言在做前端开发时,经常会遇到对复选框的全选或全不选,本文主要探讨JQuery实现方式。第二、下载JQuery开发包第二、代码示例<%@ page contentType="text/html;charset=UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitiona

2020-08-09 09:41:49 221

原创 JQuery.validate验证表单后Ajax异步提交

第一、前言本文主要介绍jquery.validate+jquery.form实现表单验证,然后用Ajax方式异步提交。本文重在介绍前端技术,故省略和数据库交互部分。后端仅提供Controller代码来模拟效果。第二、场景用户注册时,录入个人信息后,做表单验证,然后提交。第三、代码示例1、新建web Project,命名:Examination1,引入Spring MVC相关jar包。下面仅提供jar包截图,请读者自行下载,若个人无法自行下载,可在文章下留言向本人索要相关jar包。2....

2020-08-08 21:29:18 969

原创 探究ThreadLocal内存泄漏及弱引用

第一、前言有些程序员在使用ThreadLocal的过程中会发现有内存泄漏的情况,就猜测这个内存泄漏与Entry中使用了弱引用的key有关系。第二、内存泄漏的相关概念1.Memory overflow:内存溢出是没有足够的内存提供申请者使用。2.Memory leak:内存泄漏是指程序中已动态分配的内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃的严重后果。内存泄漏的堆积终将导致内存溢出。第三、弱引用的相关概念Java中的引用有4种类型:强、软、弱、虚。当

2020-08-02 21:23:24 917

原创 ThreadLocalMap线性探测法解决hash冲突

第一、前言ThreadLocal使用的是自定义的ThreadLocalMap,接下来我们来探究一下ThreadLocalMap的hash冲突解决方式。第二、ThreadLocal的set()方法public void set(T value) { Thread t = Thread.currentThread(); ThreadLocal.ThreadLocalMap map = getMap(t); if (map != null) map.set(this,

2020-08-01 17:20:33 5474

原创 ThreadLocal无锁化线程封闭及与Synchronized的区别

第一、前言建议将本文和ThreadLocal应用场景-事务案例一起阅读。第二、ThreadLocal简介从Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。总结:1.线程并发:在多线程并发的场景下2.传递数据:我们可以通过ThreadLocal在同一线程,不同组件中

2020-07-25 10:48:08 185

原创 ThreadLocal的核心方法源码

第一、前言基于ThreadLocal的内部结构,我们继续探究一下ThreadLocal的核心方法源码,更深入的了解其操作原理。除了构造之外, ThreadLocal对外暴露的方法有以下4个:第二、get方法1、源码和对应的中文注释 /** * 返回当前线程中保存ThreadLocal的值 * 如果当前线程没有此ThreadLocal变量,则它会通过调用{@link #initialValue} 方法进行初始化值 * @return 返回当前线程对应此Thread

2020-07-19 21:16:33 142

原创 ThreadLocal内部结构探究实现线程数据隔离的原理

第一、前言本篇文章主要通过分析ThreadLocal的内部结构,探究它能够实现线程数据隔离的原理。第二、JDK早期设计每个ThreadLocal都创建一个Map,然后用线程作为Map的Key,要存储的局部变量作为Map的value,这样就能达到各个线程的局部变量隔离的效果。第三、JDK8的设计每个Thread维护一个ThreadLocalMap,这个Map的key是ThreadLocal实例本身,value才是真正要存储的值Object。具体的过程是这样的:1、每个Thread线程内部都有一

2020-07-19 20:54:51 573 1

itextpdf-5.5.10.jar

itext相关jar

2024-04-25

基于 Spring MVC 的教辅平台的设计与实现

教学辅助平台主要实现了学生可以在线提交作业,教师可以在线进行作业批改, 并实时将批改结果反馈给学生,此外,学生可以在线进行提问,教师在线对问题进行 回复。系统主要由以下几个功能模块组成: (1)考核管理:管理员或教师可以添加考核主题,学生线下完成,之后将完成 结果通过文件上传到系统,教师可以通过系统下载学生提交的答案进行批改,批改后 可以在系统里录入批改结果,并添加评语,反馈给学生。 (2)学生管理:管理员或教师可以查询、添加、修改、删除学生信息。 (3)教师管理:管理员可以查询、添加、修改、删除教师信息。 (4)在线问答:学生可以在线提问,将自己的疑问录入系统,教师可以查看学 生的问题,并在线回复,学生可以实时看到问题的回复结果。 (5)作业提交:学生可以查看教师创建的考核主题,并将自己的作业或考核答 案以文件方式上传到对应的考核主题下。 (6)考核成绩:学生可以查看批改结果。 (7)修改密码:管理员、教师、学生均可以登陆系统修改自己的密码。

2024-03-11

基于 Java 的在线学习网站的设计与实现

在线学习平台主要用于实现在线答题学习,基本功能包括:自动组卷、试卷发布、试 卷批阅、试卷成绩统计等。本系统结构如下: (1)学生端: 登录模块:登录功能; 网络考试模块:可参加考试,并查看考试结果,查看错题; (2)超级管理员端: 登录模块:实现管理员登录功能; 用户管理模块:实现用户信息的增加、修改、查看功能; 角色权限管理模块:实现角色的增加、修改、查看功能; 试卷管理模块:实现试卷信息的增加、修改、查看功能; 试题管理模块:实现试题信息的增加、修改、查看功能; (3)试题管理员端(老师): 试卷管理模块:实现试卷信息的增加、修改、查看功能; 试题管理模块:实现试题信息的增加、修改、查看功能;

2024-03-11

dubbo-admin-2.5.3.war

Dubbo的Admin管理界面war包

2021-01-13

JSP+Servlet+cos文件上传下载Jar包.rar

包含4个jar:cos.jar,jsp-api.jar,servlet-api.jar;smartupload.jar。可实现Java Web中的文件上传与下载。

2020-08-09

jquery.validate+jquery.form.rar

jquery.validate+jquery.form开发包,可以实现交互友好的form表单验证功能,及异步提交机制。

2020-08-08

RSAHelper.java

RSA非对称加密工具类,封装了通用的函数。可以获取公钥和私钥,以及加密,解密方法。用于接口调用时的安全控制。

2020-04-29

Oracle之分析函数.pdf

分析函数是 Oracle 专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计。本文总结了若干分析函数的使用方式,供大家学习参考,有问题可以随时私信沟通。十分乐意和大家学习交流。谢谢!

2019-08-27

空空如也

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

TA关注的人

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