自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (6)
  • 收藏
  • 关注

原创 解决IDEA中使用git插件提交代码乱码问题

问题描述在使用idea中git插件commit代码时,中文出现乱码但是在git bash中提交没有中文乱码的问题,所以一开始以为不是git的配置问题(打脸.jpg)解决方案在git的安装路径中执行以下代码:# 提交文件编码格式git config --global i18n.commitencoding utf-8# log编码格式git config --global i18n.logoutputencoding utf-8# 界面编码格式git config --global

2020-11-04 10:45:11 1346

原创 拦截器中使用了自动注入的RedisCacheManager,报空指针异常

原因:拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null解决方案:原来的代码:@Configurationpublic class WebConfig implements WebMvcConfigurer { /*** * 拦截器配置 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 登录拦截器

2020-10-18 16:08:14 815 1

原创 【源码分析】Spring之ApplicationListener

1 ApplicationListener1、作用监听容器中发布的事件,完成事件驱动模型开发;public interface ApplicationListener 监听 ApplicationEvent 及其下面的子事件;2、步骤写一个监听器(ApplicationListener实现类)来监听某个事件(ApplicationEvent及其子类)监听器的两种实现方式:实现ApplicationListener接口标注注解@EventListener;把监听器

2020-10-18 15:42:31 241

原创 【源码分析】Spring之BeanDefinitionRegistryPostProcessor

BeanDefinitionRegistryPostProcessor原理BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor1、比BeanFactoryPostProcessor多一个额外定义的新方法:postProcessBeanDefinitionRegistry();该方法在所有bean定义信息将要被加载,bean实例还未创建的时候执行优先于BeanFactoryPostProcessor(所有be

2020-09-05 20:27:37 174

原创 【源码分析】Spring之BeanFactoryPostProcessor

BeanFactoryPostProcessorBeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的1、BeanFactoryPostProcessor:beanFactory的后置处理器;在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容;标准初始化:所有的bean定义已经保存加载到beanFactory,但是bean的实例还未创建BeanFactoryPostProcessor原理ioc容器创建对象

2020-09-05 20:26:00 145

原创 【源码分析】Spring之容器创建过程

Spring容器创建public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { this(); register(annotatedClasses); refresh();}this()和register(annotatedClasses):执行一些准备工作refresh():容器的创建与刷新(重点!!)Ⅰ、this()调用父类GenericApplicationContex

2020-08-27 21:55:07 127

原创 【源码分析】Spring之声明式事务原理

声明式事务原理Ⅰ、@EnableTransactionManagement1、利用TransactionManagementConfigurationSelector给容器中会导入两个组件AutoProxyRegistrarProxyTransactionManagementConfigurationⅡ、AutoProxyRegistrar1、给容器中注册一个 InfrastructureAdvisorAutoProxyCreator 组件;2、InfrastructureAdv

2020-08-27 21:46:05 142

原创 【源码分析】Spring之AOP原理

Spring之AOP原理首先看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?(以@EnableAspectJAutoProxy为例:在容器中注册了AnnotationAwareAspectJAutoProxyCreator,然后再接着分析该组件的功能)@EnableAspectJAutoProxy:开启基于注解的aop模式所以从@EnableAspectJAutoProxy开始分析Ⅰ、@EnableAspectJAutoProxy@Import(AspectJAuto

2020-08-25 11:43:56 163

原创 Spring Boot之缓存

一、Spring Boot之缓存SpringBoot中,可以使用以下三种缓存方式:JSR-107Spring缓存抽象整合Redis1、JSR-107Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可 以在运行期访问多个CachingProvider。CacheManager定义了

2020-08-25 10:54:44 153

原创 [解决方案]docker挂载文件失败docker: Error response from daemon: OCI runtime create failed

使用环境:centos 7.8 + docker 19.x一、问题描述docker run --name nginx01 -p 80:80 -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx执行命令报错docker: Error response from daemon: OCI runtime create failed……二、解决方案若系统版本较低,则先更新系统yum update#查看系

2020-08-12 17:45:30 2801

原创 [解决方案]docker安装rabbitmq无法访问主页

问题描述在阿里云服务器(linux系统)上使用docker安装rabbitmq后无法访问主页#启动命令docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq01 rabbitmq检查云服务器安全组规则 —> 已开启15672端口检查防火墙 —> 已关闭(或使用firewall命令开放端口)但仍然无法访问解决方案需要开启插件#进入

2020-08-06 12:20:57 471

原创 常用官方文档连接地址

目录1、JSR2、thymeleaf3、Spring Boot4、Redis5、elasticsearch6、Java api7、Java Tools8、JVM9、Java 不同版本相关文档导航连接1、JSRhttps://jcp.org/en/jsr/all常用:JSR 107: JCACHE - Java Temporary Caching APIJSR 338: JavaTM Persistence 2.2(JPA)JSR 369: JavaTM Servlet 4.

2020-08-04 17:08:06 212

原创 SpringBoot2.x spring.datatsource的schema配置

问题配置了schema属性却没有自动创建表 schema: - classpath:sql/department.sql - classpath:sql/employee.sql解决方案添加initialization-mode属性,配置初始化数据源的模式initialization-mode: always参考文档:https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/how

2020-08-03 12:05:47 537

原创 《剑指Offer》34. 二叉树中和为某一值的路径

leetcode:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof/题目描述输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11

2020-07-25 10:05:06 133

原创 SSM框架——常见问题及解决方案(2)

SSM框架——常见问题及解决方案(1)五、问题描述SyntaxError: “JSON.parse: unexpected character at line 1 column 1 of the JSON data”解决方案在调用的方法上加上注解@ResponseBoby注意:在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody...

2020-01-13 11:09:47 896

原创 java对象PO、BO、VO、DTO、POJO、DAO、DO概念及其作用

假设数据库中现在有一张有 个属性的student表(sid,name,sex,class,admi_time(入学时间),grad_time(毕业时间))页面需要显示的数据:sid,name,class简书:浅析DO、VO、DTO、PO的概念与区别 一、PO(Persistent Object)持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系。仅用于表示数据...

2020-01-06 20:47:50 1108

原创 《剑指offer》(JAVA版)——矩形覆盖

一、题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?输入:一个整数n输出:覆盖方法种数牛客NOWCODER二、思路分析思路和斐波那契数列类似。但f(1) = 1, f(2) = 2。三、实现代码public class Solution { public int RectCover(int ...

2019-12-06 22:04:03 156

原创 《剑指offer》(JAVA版)——跳台阶、变态跳台阶

一、跳台阶1、题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。输入:一个整数n输出:跳上n个台阶的跳法种数2、思路分析思路和斐波那契数列的类似。3、实现代码/** * @author 0416 * @date 2019/12/6 **/public class JumpStep { /*...

2019-12-06 21:51:19 150

原创 《剑指offer》(JAVA版)——斐波那契数列

一、题目描述要求输入一个整数n,输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39输入:一个整数n输出:斐波那契数列的第 n 项牛客NOWCODER二、思路分析1、递归。效率低下,不推荐2、循环,利用两个额外的空间存储中间变量。O(n)三、实现代码/** * @author 0416 * @date 2019/11/17 * 两种解法 * 青蛙跳n个台阶...

2019-12-06 17:03:51 168

原创 《剑指offer》(JAVA版)——旋转数组的最小数字

一、题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。输入:一个非递减排序的数组的一个旋转输出:旋转数组的最小元素牛客NOWCODER二、思路分析利用二...

2019-12-06 16:54:13 165

原创 《剑指offer》(JAVA版)——用两个栈(队列)实现队列(栈)

一、题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。牛客NOWCODER二、思路分析Push:直接添加元素到栈1中;Pop:当元素要出栈时,把栈1中的元素全部pop到栈2中,再从栈2弹出栈顶元素。若栈1为空,直接弹出栈2栈顶元素。三、实现代码import java.util.Stack;/** * @AUTHOR:0416 * @D...

2019-12-06 16:18:45 113

原创 《剑指offer》(JAVA版)——重建二叉树

一、题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。输入 :某二叉树的前序遍历和中序遍历的结果数组输出 :二叉树的根结点牛客NOWCODER二、思路分析在二叉树的前序遍历中,第一个数字是树的根...

2019-12-06 11:30:50 112

原创 《剑指offer》(JAVA版)——从尾到头打印链表

一、题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。输入 :一个链表的头结点输出 :按链表从尾到头存储的ArrayList牛客NOWCODER二、思路分析1、使用栈。遍历链表的时候,把每一个遍历的结点放入一个栈中,遍历完成后再从栈顶将结点输出2、使用递归的方法。三、实现代码import java.util.ArrayList;import java.uti...

2019-12-05 23:59:55 98

原创 《剑指offer》(JAVA版)——替换空格

一、题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。输入 :一个字符串str输出 :替换之后的字符串牛客NOWCODER二、思路分析1、使用StringBuilder。创建一个StringBuilder对象stringBuilder,在遍历原字符串的同时,把遍历到的字...

2019-12-05 23:33:26 135

原创 《剑指offer》(JAVA版)——数组中重复的数字

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入 : 一个二维数组array和一个整数target输出 :true / false牛客NOWCODER思路分析首先选取数组右上角的数字temp,如果该数字等于要查找的数字target,...

2019-12-05 23:32:46 123

原创 JAVA WEB之跨域问题以及解决方案(下)

目录一、产生跨域的原因二、错误描述三、HTTP访问控制(CORS)四、解决方案1、@CrossOrigin 注解2、设置头部信息3、配置拦截器4、web.xml配置5、HttpClient转发请求6、spring-context.xml配置五、带token的跨域问题解决方案

2019-11-05 21:27:38 361

原创 JAVA WEB之跨域问题以及解决方案(上)

一、产生跨域的原因我们在项目开发中,经常会使用前后端分离的技术,把前端代码和后端代码分别部署到不同的服务器上,这样在数据交互的时候,由于浏览器的同源策略,就会产生跨域问题。同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,...

2019-11-05 21:21:29 709

原创 Java获取随机数、随机字符串(五种方法)

一、Math.random()二、Random三、ThreadLocalRandom四、System.currentTimeMillis()五、UUID  一、Math.random()Math.random():获取double类型的小数范围 [0.0,1.0)线程安全最常用获取[max,min]之间的随机数公式:(int)(Math.random()*(max -...

2019-11-05 21:19:14 5281

原创 JAVA实现手机短信验证(详解)

首先要找一个提供短信验证服务的平台。上一年我写短信验证的时候,这种平台还是很容易就找到了,而且是注册就免费送余额,但是现在基本上都是要公司才能使用,或者用钱买短信条数,比如:阿里云,5000条起卖,卖几百块钱,这对于我们学生来说未免负担太大了。

2019-11-05 21:18:10 1050 1

原创 各种中文乱码问题(tomcat、idea控制台、mysql、传入参数、postman等)

每次写web项目总会遇到各种令人头秃的中文乱码问题,我总结了几种最常见的中文乱码问题及其解决方法: 一、Tomcat中文乱码二、IDEA控制台乱码三、传入中文参数乱码四、postman传入中文参数乱码五、Mysql中文乱码 一、Tomcat中文乱码找到tomcat的安装目录,打开conf/server.xml找到<Connector port="8080"这一句,在里面...

2019-10-26 23:05:22 1041

原创 GC判断对象是否存活的两种算法

一、引用计数算法1、基本思想给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。2、优缺点优点:实现简单,判定效率高。缺点:很难解决对象之间相互循环引用的问题。(因此主流的java虚拟机中没有选用此方法)二、可达性分析算法通过一系列被称为"GC Roots" 的对象作为起始点,从这些节点...

2019-10-15 10:47:19 371

原创 SSM框架——常见问题及解决方案(1)

在SSM框架中,我遇到过的一些问题及其解决方法,以后如果还遇到问题会继续跟新。 一、问题描述Could not open ServletContext resource [/WEB-INF/Dispatcher-servlet.xml]解决方案注意< param-name>里的值必须是 contextConfigLocation添加< init-param>...

2019-10-15 10:33:37 2890

原创 SSM框架——Mybatis的select标签不同参数详解

一、单个参数public Book findBookById(String bookId);<select id="findBookById" parameterType="String" resultMap="bookDetail"> select * from l_book where book_id = #{bookId}&...

2019-10-15 10:32:51 1235

原创 SSM框架——使用idea搭建maven + web项目

本机环境:idea 2019.2.3mysql 8.0.15jdk 1.8一、新建项目选择适合的jdk版本在这里选择新建maven + web项目GroupID:项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。通常与公司和组织关联ArtifactID:项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。根据自己的需...

2019-10-15 10:30:18 192

原创 SSM框架——配置文件

开发环境:idea使用的技术:ssm + maven + druid(数据库连接池) + mysql 8.0.15 + junit  一、项目目录结构二、web.xml三、pom.xml四、druid.properties(数据库配置)五、applicationContext.xml六、springmvc-config.xml七、mybatis-config.xml八、l...

2019-10-15 10:28:33 245

原创 IDEA使用技巧——利用文件模板快速添加配置文件

前言       每次新建项目的时候都需要重新编写配置文件,上网百度也不是那么容易找到符合自己环境的配置文件;东拼西凑起来的配置也总是很多地方与自己环境不符,改来改去还很容易出错。       我们能够在idea中创建符合条件的文件模板(file temp...

2019-10-15 10:27:00 893

原创 七种垃圾收集器的对比总结

     如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现上一篇博客总结了四种垃圾收集算法,这次就来总结一下七种不同的垃圾收集器。(概述、特点、应用场景、参数设置)注:连线表示两个收集器可以搭配使用; 首先解释一下两个名词:并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态;(如...

2019-10-04 20:32:58 658

原创 垃圾收集的四种算法(标记-清除、复制算法、标记-整理、分代收集)总结

一、算法的基本思想1、标记-清除算法(Mark-Sweep)分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。2、复制算法(Copying)将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。3、标记-整理算法(Mark-Com...

2019-10-04 20:27:51 1193 3

原创 Address already in use:端口被占用的解决方法

在执行程序的过程中,我们经常会遇到“端口已被占用”“port xxxx is already in use”的情况:我们首先要知道是哪个程序占用了端口,才能有目的的关闭该程序,使该端口空闲下来。 解决方案如下:方法一:1、执行Win+R,输入cmd,进入“命令提示符”界面2、输入以下命令:netstat -aon|findstr xxxx(xxxx:表示被占用的端口号)(ne...

2019-10-03 20:53:00 6505

原创 Manjaro Linux更换中文源与常用软件安装

manjaro的安装教程在哔哩哔哩上有很多,不想看视频的可以参考一下这个连接:https://zhuanlan.zhihu.com/p/43442012(linux小菜鸡已被各种各样的问题虐到瑟瑟发抖……) 一、下载安装二、更换中文源三、安装中文输入法四、安装微信及问题解决  一、下载安装我下载的是gnome 18.1.0版本的,下载连接:https://manjaro.or...

2019-09-27 22:32:28 4074

跨域依赖jar.zip

cors-filter-2.6.jar和java-property-utils-1.9.1.jar;跨域过滤器的jar包

2019-11-04

java简易计算器(四则运算、三角函数、实现优先级)

java简易计算器,能够进行四则运算、三角函数运算,已实现优先级。 将中缀表达式转化成后缀表达式(逆波兰表达式) 主要运用了栈、简单的数学知识,java图形界面设计等相关知识

2019-02-27

LAN(局域网)下的JAVA聊天室

该程序涉及的主要知识有:多线程、网络(socket)编程、I/O操作(ps:数据库(JDBC)操作)、Swing控件。实现了群聊、单聊等功能。 建议大家先去我的博客看一下相关的文章,了解清楚再决定是否要下载。

2019-01-11

数据库原理及应用教程第4版习题参考答案

数据库原理及应用教程第4版课后习题参考答案,陈志泊编著,人民邮电出版社

2019-01-03

耿离散数学(第3版)课后习题答案(屈婉玲、素云、张立昂编著)

离散数学(第3版)课后习题答案(屈婉玲、耿素云、张立昂编著), 清华大学出版社,pdf格式,包含题目和答案

2018-09-17

Web前端开发技术(第2版)课后习题答案

Web前端开发技术(第2版) 储久良编著 课后习题与实验答案

2018-06-23

空空如也

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

TA关注的人

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