自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Eternal_Summer

在看得见的地方学习知识,在看不到的地方学习智慧。

  • 博客(64)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 基于Centos7的Java开发环境搭建

基于Centos7的Java服务器搭建前提:Centos常用命令安装1. 安装wgetyum -y install wget2. 安装gccyum -y install gcc1. Centos7下的防火墙操作systemctl status firewalld # 查看防火墙状态systemctl start firewalld # 开启防火墙systemctl stop firewalld # 关闭防火墙systemctl disable firewalld # 开

2021-10-31 12:41:28 1766 2

原创 包装类高频区间的数据缓存【面试】

包装类高频区间的数据缓存【面试】基本数据类型的包装类有其高频区域的数据缓存。其特性:(以Integer为例)1. Integer的高频区域为:-128~1272. 在数据位于数据区间-128~127时,会直接复用已有对象(地址相同),在这区间之外的数字才会在堆上产生。即new一个新的对象。具体看代码:public class PackingClass { public static void main(String[] args) { Integer num1 = 12

2021-07-09 13:34:45 256

原创 Java如何跳出多重嵌套循环

Java如何跳出多重嵌套循环/** * 两种退出双重循环的方式 */public class BreakDoubleLoop { public static void main(String[] args) { //1. 定义一个标号,使用break加标号的方式 myfor:for (int i = 0;i<10;i++){ for (int j = 0;j<100;j++){ System.

2021-07-09 13:19:31 377

原创 栈-逆波兰式求值问题

栈-逆波兰式求值问题逆波兰式(后缀表达式):运算符总放在跟它相关的操作数之后。而我们平常生活中使用的都是:中缀表达式。如:1+3*2中缀表达式逆波兰表达式a+bab+a+(b-c)abc-+a+(b-c)*dabc-d*+a*(b-c)+dabc-*d+解决的问题:​ 给定一个只包含加减乘除四种运算的逆波兰表达式的数组表示方式,求出该逆波兰表达式的结果。解决思路:创建一个栈对象oprands存储操作数从左往右遍历逆波兰表达式,得到每一个字符

2021-07-09 10:44:11 199

原创 栈-解决括号匹配问题

栈-解决括号匹配问题问题:给定一个字符串,里面可能包含“()”和其他字符,编写程序检查小括号是否成对出现、设计思路:创建一个栈来存储左括号。从左到右遍历字符串,拿到每一个字符。如果字符是左括号,将其放入栈中。如果字符是右括号,则从栈中弹出一个元素。如果都不是,继续下一次循环。判断弹出的元素t是否为null,如果不是,证明有对应的左括号,如果不是,则证明没有对应的左括号。循环结束后,判断栈中还有没有剩余的左括号,如果有,则不匹配,如果没有,则匹配。代码实现:import jav

2021-07-09 10:37:22 185

原创 数据结构-队列-Java实现

数据结构-队列-Java实现队列:先进先出实现:链表形式import java.util.Iterator;/** * 队列 */public class Queue<T> implements Iterable<T>{ private Node<T> head;//队头 private int N;//对列内结点个数 private Node<T> last;//队尾 //初始化队列 public

2021-07-09 10:21:42 60

原创 数据结构-栈-Java实现

数据结构-栈-Java实现使用Java实现数据结构栈,并且实现形式使用的是链表import java.util.Iterator;/** * 栈--链表方式实现 */public class Stack<T> implements Iterable<T>{ private int N;//当前栈内结点个数 private Node head;//头结点 //初始化栈 public Stack() { this.N =

2021-07-07 20:29:02 51

原创 单链表-快慢指针

单链表-快慢指针​ 快慢指针指的是定义两个指针,这两个指针的移动速度一快一慢,通常快指针的移动速度为慢指针的2倍。以此来制造出自己想要的差值,这个差值可以帮我们找到链表上相应的结点。1. 中间值问题原理:利用快慢指针,我们可将一个链表看成是一个跑道,假设a的速度是b的两倍,那么当a跑完全程后,b刚好跑完一半,以此来找到中间结点。/** * 快慢指针求链表中间值 * 当链表结点为奇数个:如7个结点,那么中间为(7+1)/2 = 4 * 当链表结点为偶数个:如6个结点,那么中间为(6+2)/2

2021-07-07 20:28:34 574 2

原创 Java实现单链表+链表反转

Java实现单链表+链表反转Java实现单链表import java.util.Iterator;/** * 单链表 */public class LinkList<T> implements Iterable<T> { private Node head;//记录头节点 private int N;//记录链表长度 public LinkList() { //初始化链表:头节点为null,链表长度为0 this

2021-07-06 23:20:41 368 4

原创 Javascript全局变量和局部变量

Javascript全局变量和局部变量先看一段代码:<script> var a =1;function test(){ alert(a); var a = 2; alert(a);}test();alert(a);</script>运行结果:undefined 2 1而一般我们会认为:结果应该是1 2 1再看一段代码:<script> var a =1; function test(){

2021-05-14 09:31:22 418 1

原创 Spring Boot返回JSON数据(三种方式)

Spring Boot返回JSON数据(三种方式)默认实现使用Gson使用fastjson1. 默认实现​ spring-boot-starter-web依赖默认加入了jackson-databind作为json处理器,此时不需要添加额外的JSON处理器就能返回一段JSON了。​ 创建一个Book实体类:package com.itlearn.springboot06json.beans;import com.fasterxml.jackson.annotation.JsonForma

2021-05-03 11:37:02 19656

原创 Spring Boot属性注入乱码解决

Spring Boot属性注入乱码解决1. 乱码问题在做springboot属性注入时,即在application.properties文件中配置如下中文:book.name=三国演义book.author=罗贯中book.price=300待在Book.java中进行属性注入的时候,@Component@ConfigurationProperties(prefix = "book")public class Book { private String name; pri

2021-05-01 19:16:16 1012

原创 MySQL批量更新数据

MySQL批量更新数据(多个更新条件下)比如:我们需要完成如下操作:对学生重新分班,用一条sql语句把所有的女生分在一个班,男生分在一个班.这时候,普通的update很难使用一条语句就完成这个需求,所以我们可以应用点技巧完成数据的批量更新。即:使用case和then操作。update t_student set class_id = case ssex when 0 then '20079402' when 1 then '20079401'end;这里的意思是:对class_id

2021-04-24 22:18:38 327

原创 Spring Security基本认知使用

Spring Security1. 导入jar包<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>5.0.5.RELEASE</version></dependency><dependency&gt

2021-04-22 18:45:27 247

原创 Java中的线程

Java中的线程1. 引入1.1. 进程和线程进程:是正在运行的程序。比如在Windows系统中,一个运行的exe就是一个进程。是系统进行资源分配和调度的独立单位每一个进程都有它自己的内存空间和系统资源线程:是进程中的单个顺序控制流,是一条执行的路径。线程总是属于某个进程,线程没有自己的虚拟地址空间,与进程内的其他线程一起共享分配给该进程的所有资源。是CPU调度和分派的最小单位。一个程序至少有一个进程,一个进程至少有一个线程。1.2. 单线程和多线程单线程:

2021-04-15 22:34:55 1645

原创 定时清理垃圾文件清空存储空间

定时清理垃圾文件/清空存储空间1. 任务描述​ 在本地上传图片存储到七牛云中后,由于存储空间有限,所以需要在一定时间后清理垃圾文件,以及在一定时间后清空Redis存储。​ 要求: 1. 每周末清理垃圾图片 2. 每月底清空Redis存储2. 任务实现2.1. 引入Quartz定时任务组件maven坐标<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --><dependenc

2021-04-10 11:55:05 599

原创 本地上传图片并实现可预览

本地上传图片并实现可预览1. 前台文件上传控件<el-form-item label="上传图片"> <el-upload class="avatar-uploader" action="/setmeal/upload.do" :auto-upload="autoUpload" name="imgFile" :show-file-list="false" :on-success="h

2021-04-10 11:31:58 287

原创 本地上传Excel文件前台格式校验

本地上传Excel文件前台格式校验<el-upload action="/ordersetting/upload.do" name="excelFile" :show-file-list="false" :on-success="handleSuccess" :before-upload="beforeUpload"> <el-button type="primary">上传文件</el-button></el-uploa

2021-04-10 11:03:33 1083 1

原创 Java项目乱码解决

Java项目乱码解决解决idea开发maven工程中出现的乱码问题1. 修改本地maven编码在本地环境变量中添加如下配置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dPN07lPV-1617628317282)(C:\Users\24016\Desktop\store\maven\1617374865233.png)]打开cmd进行配置检测mvn -v2. 修改idea当前正在运行的tomcat编码这是为了防止在项目运行中,出现的

2021-04-05 21:13:10 86

原创 maven工程run后没有生成classes目录

maven结构下没有生成classes目录在maven结构目录下,没有生成classes目录。运行项目报错:java.io.FileNotFoundException: class path resource [applicationContext-web.xml] cannot be opened because it does not exist但是明明在web.xml有了如下配置<servlet> <servlet-name>springmvc</s

2021-03-28 17:55:49 845

原创 Jdk动态代理&拦截器

Jdk动态代理&拦截器1. 环境搭建1.1. 创建接口​ 由于使用Jdk动态代理必须使用接口,所以需要先创建一个接口:JDKReflectpublic interface JDKReflect { public void print(); public void print2(String str);}1.2. 创建接口实现类public class JDKReflectImpl implements JDKReflect { @Override

2021-03-25 16:42:30 324

原创 Java动态代理技术(JDK和CGLIB)

Java动态代理技术(JDK和CGLIB)1. 动态代理技术​ 动态代理的意义在于生成一个占位(又称代理对象),来代理真实对象,从而控制真实对象的访问。代理的作用就是,在真实对象访问之前或者之后加入对应的逻辑,或者根据其他规则控制是否使用真实对象。我们需要在调用者调用对象之前产生一个代理对象,而这个代理对象需要和真实对象之间建立代理关系,所以代理必须分为两个步骤:代理对象和真实对象建立代理关系实现代理对象和代理逻辑方法在这里将介绍两种常用代理技术:JDK动态代理技术:这是JDK自带的功能

2021-03-24 19:23:41 124

原创 反射技术

反射技术1. 反射技术创建对象1.1. 无参构造器创建对象//通过反射生成:AccountServiceImpl对象 public IAccountService getInstence(){ AccountServiceImpl accountService = null; try{ accountService = AccountServiceImpl.class.getDeclaredConstructor().newInstan

2021-03-24 19:23:00 41

原创 反射-class.newInstance() 被弃用

反射-class.newInstance() 被弃用1. class.newInstance()使用1.1. 调用无参构造方法//通过反射生成:AccountServiceImpl对象 public IAccountService getInstance(){ AccountServiceImpl accountService = null; try{ accountService = (AccountServiceImpl)Class

2021-03-24 11:22:00 1262

原创 Redis超时回收

Redis超时回收问题​ 在Redis中,如果key超时了,Redis会回收key的存储空间吗?答案​ 不会。Redis的key超时是不会被其自动回收的,它只会标识哪些键值对超时了。​ 这样做的一个好处在于,如果一个很大的键值对超时,比如一个列表或者哈希结构,存在数以百万个元素,要对其回收需要很长时间。如果采用超时回收,则可能产生停顿。坏处也很明显,这些超时的键值对会浪费比较多的空间。Redis提供的回收方式Redis提供两种回收方式回收这些超时键值对。分别是:定时回收、惰性回收

2021-03-21 18:31:26 191

原创 Spring中使用Redis

Spring中使用Redis1. 配置环境 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency&g

2021-03-21 16:30:32 154

原创 Spring操作Redis数据结构【全】

Redis数据结构【全】1. Redis数据结构——字符串1.1. 简介​ 字符串是Redis最基本的数据结构,它将以一个键和一个值存储于Redis内部,犹如Java的Map结构,让Redis通过键找到值。1.2. 字符串的一些基本命令命令说明备注set key value设置键值对最常用的写入命令get key通过键获取值最常用的读取命令del key通过key,删除键值对删除命令,返回删除数,注意:它是一个通用的命令,换句话说,在其他数据结构

2021-03-20 18:33:53 127

原创 ERR wrong number of arguments for ‘sadd‘ command

ERR wrong number of arguments for ‘sadd’ command1. 问题描述​ 在spring整合Redis中,在Spring向Redis——有序集合SortedSet中插入数据时,出现:ERR wrong number of arguments for ‘sadd’ command2. 分析问题问题出现原因为:​ template.opsForZSet().add(“zset2”,set2);中第二个参数set2为null。参数set2为null。

2021-03-20 14:42:29 2422

原创 SpringMVC实现文件上传

SpringMVC实现文件上传注:这里使用的是CommonsMultipartResolver方式1. 引入jar包<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version></dependency&gt

2021-03-17 20:48:53 37

原创 SpringMVC-Excel视图的使用

SpringMVC-Excel视图的使用1. 功能介绍这里的主要功能是:从数据库中导出所有用户的信息,生成一张Excel表。使用到的视图:AbstractXlsView1.1. AbstractXlsView介绍该类实现了视图接口,是一个抽象类,不能生成实例对象,它自己定义了一个抽象方法——buildExcelDocument要去实现。其他的方法Spring的AbstractXlsView已经实现了。所以对于我们而言只需要实现这个方法就可以使用Excel的视图功能了。1.2. build

2021-03-17 20:34:40 371

原创 SpringMVC使用JSR 303验证器

SpringMVC使用JSR 303验证器1. 配置环境1.1. 导入JSR 303jar包<!-- JSR303校验 --> <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> <dependency> <groupId>org.hibernate</groupId>

2021-03-16 20:47:51 194

原创 Spring+MyBatis组合中使用事务

Spring+MyBatis组合中使用事务1. Spring+MyBatis组合环节搭建1.1. 创建maven项目并导入jar包依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoca

2021-03-15 16:42:35 176

原创 Spring给通知传递参数

Spring给通知传递参数1. spring-aop中为通知传递参数切点@Override public void printAccount(Account account) { try {// int i = 10/0; System.out.println("打印Account..."); }catch (Exception ex){ ex.printStackTrace();

2021-03-14 14:35:23 327

原创 Spring:AOP通知执行顺序

Spring:AOP通知执行顺序1. AOP的通知Before、After、AfterReturning、AfterThrowing、Around2. AOP通知的执行顺序切面代码:package com.itlearn.aspect;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.*;public class AccountAspect { public

2021-03-14 14:16:39 919

原创 MyBatis模糊查询——bind元素使用

MyBatis模糊查询——bind元素使用1. 以往模糊查询方式<select id="findByUsername" parameterType="String" resultType="user"> SELECT * FROM user WHERE username LIKE concat('%',#{username},'%')</select>使用concat进行拼接。1.1. 存在的问题concat只存在于mysql数据库中,而对于别的数据库如O

2021-03-10 20:30:07 3134

原创 MyBatis入坑:There is no getter for property named ‘xxx‘ in ‘class Java.lang.Integer‘

MyBatis入坑:There is no getter for property named ‘xxx’ in ‘class Java.lang.Integer’1. 问题描述在配置MyBatis的Mapper映射器时,使用到:<select id="findUserById" parameterType="Integer" resultType="user"> SELECT * FROM user <where> <if test="

2021-03-10 20:04:53 365 1

原创 MyBatis入坑:IllegalArgumentException java.util.Date and java.lang.String

MyBatis入坑:IllegalArgumentException: java.util.Date and java.lang.String1. 问题描述: <update id="updateUser" parameterType="user"> UPDATE user <set> <if test="username != null and username != ''">

2021-03-10 20:04:21 213

原创 MyBatis主键回填和自定义主键

MyBatis主键回填和自定义主键1. 主键回填JDBC中的Statement对象在执行插入的SQL后,可以通过getGeneratedKeys方法获得数据库生成的主键,这样便能达到获取主键的功能。在insert语句中,有一个开关属性:useGeneratedKeys,用来控制是否打开这个功能,它的默认值是false。当打开了这个开关,还需要配置其属性:keyProperty或keyColumn,告诉系统把生成的主键放到POJO的哪个属性中。如果存在多个主键,就使用逗号隔开。代码清单:让程序返回主

2021-03-09 08:31:24 1307 1

原创 Properties使用程序传递方式传递参数

Properties使用程序传递方式传递参数使用场景:在真实的开发环境中,数据库的用户密码是对开发人员和其他人员保密的。运维人员为了保密,一般都需要把用户和密码经过加密成为密文后,配置到properties文件中。对于开发人员和其他人员而言,就不知道真是的用户密码了。现:使用了Base64Util工具类进行解密,那么我们在创建 SqlSessionFactory前,就需要把用户名和密码解密,然后把解密后的字符串重置到properties属性中。如下:package com.itlearn.tes

2021-03-08 18:53:58 748 1

原创 Mybatis配置文件元素

Mybatis配置文件元素1. 配置元素清单<configuration> <properties/> <!-- 属性 --> <settings/> <!-- 设置 --> <typeAliases/> <!-- 类型起别名 --> <typeHandlers/><!-- 类型处理器 --> <objectFactory> <!-- 对象

2021-03-08 18:53:28 300

DateUtils.java

对日期的转换工具类,包含字符串转换Date,date转换字符串等多个方法。

2021-04-20

MD5Utils.java

对密码进行MD5加密,返回加密后的密文

2021-04-20

QiNiuFileUploadUtils.java

Java开发中从七牛云中完成文件的存储和删除

2021-04-09

POIUtils.java

Java开发中操作Excel文件,完成本地上传与从服务器下载

2021-04-09

JDBCUtils.zip

基于Druid和properties配置文件的jdbc工具类,含有获取DataSource对象和获取Connection对象的方法。以及Properties配置文件

2021-01-23

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

TA关注的人

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