自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 问答 (1)
  • 收藏
  • 关注

原创 java今日零散知识点

开始支持,没测试,要从低版本改到高版本,要改的东西太多了,放弃了。properties 文件会覆盖 yml 文件中相同的配置项。mybatis-plus低版本不支持,具体哪个版本,网上说是。在 Spring Boot 应用中,当同时存在。后加载的配置会覆盖先加载的相同配置项。Spring Boot 会先加载。mybatis 不支持。

2025-03-25 13:40:14 209

原创 每日一个小知识:什么是fast-fail

看源码得知,expectedModCount是Itr内部类的成员变量,初始值=modCount,而modCount是集合定义的成员变量。当调用ArrayList的add或者remove方法后,modCount会加1,下面是源码的核心逻辑,add和remove时会重新计算集合的容量,判断是否需要扩容,在计算容量的时候会调用如下方法。首次remove之前虽然做了modCount的校验,但是此时两个值是相等的,第一次remove之后,执行了上面的代码,来确保两个值是相等的,这样下次再调用next方法也不会报错。

2025-02-20 16:35:11 737

原创 Spire.doc 合并word,复制word

之前使用的poi来实现这个功能,然后发现在复制chart时,边框样式无法修改,于是就使用了spire.doc。

2024-12-06 16:16:49 539

原创 【SpringBoot项目拆分】

背景:两个项目都使用相同了的底层方法,每次变更都需要修改两个项目,所以就考虑是否可以抽出来一个单独的项目来维护这些底层方法。在网上找了很多发现都是新建module的,这种方法适合一个项目内部优化结构,不适合两个项目共用,最后突然想到了之前曾经做过一个项目,多个项目都依赖于公共方法模块,然后找了之前的代码,发现核心实现方式是SpringBoot启动类的注解@MapperScan和@ComponentScan。下面说下整体的实现流程,最后再介绍上面两个注解。

2024-12-06 14:57:08 864

原创 复制word文档,合并word文档(基于poi)

现在有一个需求,需要将多个word文档合并为一个文档,并使用poi-el渲染模板生成一个新的文档。在网上找了很多,没找到合适的,最后摸索出一个可行方案,基于XWPFDocument.getBodyElements方法的。其实一开始考虑过这个方法,但当时对底层源码不熟悉,觉得无法分辨每个element的类型,比如chart对象其实是包含在XWPFParagraph对象中的,所以当时排除了这个方法。后来在网上找到了基于OPCPackage的,但是这种方法无法保证顺序,所以也排除了。

2024-03-18 10:18:45 955

原创 poi-tl之图表操作(基于模板)

poi-tl基于模板的图表导出

2023-12-25 17:17:59 5510 6

原创 指令重排序

之前面试的时候面试官问了这么一个问题:catch return finally还会执行吗。当时想的就是:啊!还可以这么写,从来没想过这种问题,但是想到finally一开始学的时候就说是一定是会执行的。基于这个,还是心虚的回答了:会执行,应该是先执行finally,再return。当时不知道是什么原理,后来想起来,决定整理个这个问题,做个记录。首先我们来用一段代码模拟下这个场景代码执行后结果如下:结果确实如我们想的那样,finally确实执行了,return也成功返回了,这是什么原因呢?

2023-12-19 16:34:59 984

原创 mvn install本地jar到仓库

mvn install本地jar包

2023-12-15 14:48:11 1383

原创 maven 3.8.1 import 报错:This failure was cached in the local repository and resolution is not reattemp

maven踩坑系列 手动指定setting不生效

2023-12-13 16:49:21 1886

原创 浅谈集合

一、前言我们知道,在java中有数组的概念,数组可以用来存放一组数据。但是,数组是固定长度的,这样在使用的时候就会有很多的不方便,比如说资源的浪费。这个时候,我们就希望有一种可以动态改变大小的数组,那就是集合的作用了。集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,大大提高了软件的开发效率。Java 所有的集合类都位于 java.util 包下,提供了一个表示和操作对象集合的统一构架,包含大量集合

2021-01-31 20:17:47 193

转载 浅谈HashMap源码

参考链接HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题。本篇文章主要将会对 HashMap 中常用方法、重要属性及相关方法进行分析。二、原理HashMap 底层是基于散列算法实现,散列算法分为散列再探测和拉链

2021-01-30 20:55:38 330

转载 浅谈ArrayList扩容机制

ArrayList是List接口的实现类,它是支持根据需要而动态增长的数组。java中标准数组是定长的,在数组被创建之后,它们不能被加长或缩短。这就意味着在创建数组时需要知道数组的所需长度,但有时我们需要动态程序中获取数组长度。ArrayList就是为此而生的。因此,了解它的扩容机制对使用它尤为重要。首先了解ArrayList的几个成员变量//默认的初始容量private static final int DEFAULT_CAPACITY = 10;//定义一个空的数组实例以供其他需要用到空数组

2021-01-28 12:07:21 1394 1

原创 String equals源码

public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[

2021-01-28 10:44:24 172

转载 Java面试通关要点汇总集

简历篇请自我介绍请介绍项目基础篇基本功面向对象的特征final, finally, finalize 的区别int 和 Integer 有什么区别重载和重写的区别抽象类和接口有什么区别说说反射的用途及实现说说自定义注解的场景及实现HTTP 请求的 GET 与 POST 方式的区别session 与 cookie 区别session 分布式处理JDBC 流程MVC 设计思想equals 与 == 的区别集合List 和 Set 区别List 和 Map 区别

2021-01-27 09:51:13 187

转载 java多线程实现Runnable接口重写run方法时不能抛出异常

原因:在java中有一条规定是这样的:子类不能抛出比父类更多的异常(包括范围更大的异常),因为在Runnable父类中没有抛出异常,所以在实现Runnable时不能抛出异常,只能try。对于新手来说,万物皆可try。...

2021-01-26 15:59:52 1245

原创 为什么在读取或写入文件时将字节数组初始化为1024?

在 java输入或输出流中,总是有一个1024的字节数组大小.如下所示:URL url = new URL(src);URLConnection connection = url.openConnection();InputStream is = connection.getInputStream();OutputStream os = new FileOutputStream("D:\\images"+"\\"+getName(src)+getExtension(src)); byte[] b

2021-01-26 15:58:20 1893

原创 Java DatagramPacket 中的坑

https://blog.youkuaiyun.com/xiaohaier8593/article/details/90338770

2021-01-26 15:56:26 540

转载 网络编程

一、网络编程概述1.1 概述Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。1.2 网络基础把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息

2021-01-26 15:54:58 326

转载 v-bind,v-on的使用

v-bind:绑定属性值,内容相当于js,缩写:v-on:绑定方法,缩写@v-bind我添加了一个input标签,如下<input type="button" value="按钮" title="title"></input>这样显示的title是固定的,我想使用Vue的data里面的值,就需要加v-bind指令<input type="button" value="按钮" v-bind:title="title + '---' +'相当于js'">&l.

2021-01-15 16:40:55 410

原创 vue父子组件传值

1. 前言官网上组件定义:组件是可复用的 Vue 实例,且带有一个名字。 我们可以将其理解为项目中的一个vue页面,我们需要多次在别的页面引用此页面,为了方便,将此页面封装为组件。父组件使用 props 把数据传给子组件。vm.$emit( event, arg ) //触发当前实例上的事件子组件使用$emit触发父组件的自定义事件。vm.$on( event, fn );//监听event事件后运行 fn;2. 举例说明准备工作(1)Son.vue: 首先定义一个子组件,子组件为一个输

2021-01-15 14:48:36 130

转载 element-ui 指定页面元素loading

一般element-ui都是给表格加loading效果,也可以给整个页面(body)加loading效果。当然也可以页面上的任何DOM加loading效果。<el-button type="primary" @click="onSearch">查询</el-button>onSearch() { const loading = this.$loading({ lock: true, text: 'Loading', spinner:

2021-01-14 16:06:39 1365

转载 Day.js: 一个轻量的处理时间和日期的 JavaScript 库

github地址安装NPM:npm install dayjs --saveimport dayjs from 'dayjs'// 或者 CommonJS// var dayjs = require('dayjs');dayjs().format();CDN:<!-- 最新的压缩后的 JavaScript 文件 --><script src="https://unpkg.com/dayjs"></script><script> d

2021-01-13 15:54:49 599

转载 BOM对象

BOM全称browser object modelJavaScript是由浏览器中内置的javascript脚本解释器程序来执行javascript脚本语言的。为了便于对浏览器的操作,javascript封装了对浏览器的各个对象使得开发者可以方便的操作浏览器。1.windowWindow 对象是所有BOM对象的顶层对象,代表一个浏览器窗口或一个框架。Window 对象会在 <body> 或 <frameset> 每次出现时被自动创建。常用方法:open() 打开一个新的

2021-01-11 23:35:19 122

转载 浅析JS中的class

在 ES6 规范中,引入了 class 的概念。使得 JS 开发者终于告别了,直接使用原型对象模仿面向对象中的类和类继承时代。通过类Class来创建对象,使得开发者不必写重复的代码,以达到代码复用的目的。它基于的逻辑是,两个或多个对象的结构功能类似,可以抽象出一个模板,依照模板复制出多个相似的对象。就像自行车制造商一遍一遍地复用相同的蓝图来制造大量的自行车。但是JS 中并没有一个真正的 class 原始类型,它的原理依旧是原型继承。 class 仅仅只是对原型对象运用语法糖。class类概念与语法E

2021-01-11 15:17:45 420

转载 原型、原型链、构造函数

__proto__: 是借助已有的对象创建新的对象,将子类的原型指向父类,就相当于加入了父类这条原型链。prototype:返回对象类型原型的引用。一、函数对象(Function)和普通对象(Object)函数对象:由function定义或Function实例化的对象,包括Function和Objectfunction Person1 (name) { this.name = name;}var Person2 = function(name) { this.name = nam

2021-01-09 23:11:25 131

原创 理解js中的this对象

this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象。一、指向问题1、单独调用:全局对象例1:var a = this;console.log(a); //window2、函数内部:全局对象例2:function test() { var user = '小明'; console.log(this.user); console.log(this);}test(); //调用方式

2021-01-09 11:03:32 182

原创 git常见错误(待完善)

1. fatal: The upstream branch of your current branch does not match the name of your current branch问题场景之前在master分支进行操作,后来新建了一个分支,git push时报错问题原因远程分支和本地分支对应不上,远程分支为feature/refactoring,在本地checkout时觉得名字太长,本地分支命名为factory,git push时不知道本地分支和远程分支不匹配。解决方法方法一:

2021-01-06 15:31:11 399 1

转载 注解和反射

一、注解1 、注解的定义不是程序本身,可以对程序做出解释可以被其他程序读取以@开头,可以附在加载package,class等上面,相当于给他们添加了额外的辅助信息,可以通过反射访问这些元数据2、内置注解@Override@Deprecated@SuppressWarning3、元注解元注解的作用就是负责解释其他注解,java定义了4个标准的meta-annotation类型,他们提供对其他annotation类型做说明。@Target:注解的使用范围(方法、类等)

2021-01-02 16:43:06 81

转载 深入理解Java类加载

一、概述虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的类加载的过程类的个生命周期如下图:二、类加载方式这里的类加载不是指类加载阶段,而是指整个类加载过程,即类加载阶段到初始化完成。隐式加载创建类对象使用类的静态域创建子类对象使用子类的静态域在JVM启动时,BootStrapLoader会加载一

2020-12-23 16:43:43 189

原创 git常用操作

1. 提交代码git add . 将本地所有修改了的文件添加到暂存区git commit -m ''提交信息,将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中git pull origin拉取远程最新代码,完成之后打开代码查看有没有冲突,并解决,如果有冲突解决完成以后再次执行1跟2的操作git push origin master将代码推至远程2. git 放弃本地修改,强制拉取更新开发时,对于本地的项目中修改不做保存操作(或代码改崩),可以用到Git pull的强制覆

2020-12-22 16:29:15 207

原创 富文本编辑器(vue-quill-editor)自定义工具栏按钮

安装npm install vue-quill-editor --save使用1、引用(1)局部引用,在使用页面引入import 'quill/dist/quill.core.css'import 'quill/dist/quill.snow.css'import 'quill/dist/quill.bubble.css'import { quillEditor } from 'vue-quill-editor'export default { components: {

2020-12-15 20:35:08 8557 2

转载 多线程

线程生命周期1. 线程的生命周期新建(NEW):新创建了一个线程对象。可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。阻塞(BLOCKED):阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了cpu timeslice,

2020-12-09 23:56:36 228

原创 vue自定义echart 全屏工具

需求描述如图:在动态加载图表的情况下,自定义一个全屏按钮,点击按钮全屏显示图表。实现效果实现思路:遮罩:定义两个div:a和A,a为当前图表,A为全屏后的图表,全屏后A在a的上层显示,退出全屏后A隐藏实现过程原始div <div style="height: 360px" id="test1"></div>定义一个变量,判断当前是否为全屏isFull: false, //false为非全屏,true为全屏新创建一个div,加载全屏后的图表,v-b

2020-11-29 02:12:08 1599 2

原创 vue项目启动失败,npm install失败

问题描述从github上拉了一个vue项目,到本地运行失败,出现各种问题。解决过程一、删除node_modules如果没有,请忽略这一步。二、npm install1 报错:can’t find python executable “python”,you can set the PYTHON env variable。(1)安装npm需要的系统工具,执行如下命令,然后就会下载安装python,切记,一定要在管理员模式下安装,否则会报错:Please restart thie script

2020-11-15 17:57:09 4228 2

原创 JDK和JRE的区别

1. JDK全称:Java Development Kit,是Java开发工具包它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行,也就是JRE)。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。2. JRE全称:Java Runtime Enviroment,是Java的运行环

2020-11-12 23:09:47 251

原创 vue页面引入另一个页面

需求描述定时任务管理页面,在页面里点击查看日志按钮,弹框显示该任务执行的日志有单独的日志页面,该页面可以查看所有任务执行的日志记录为了避免写重复代码,在定时任务页面的查看日志弹窗里引入日志页面实现思路日志页面要想被引入,首先要导出,所以要在export default里面添加name属性,引入的时候通过导出的name查找组件export default { name: 'lamlog'}在任务页面引入日志页面import lamlog from '@v

2020-11-12 10:42:20 10822

原创 element 级联选择器懒加载回显

element 级联选择器懒加载

2020-11-04 09:30:59 5350 3

原创 变长参数

这两天忽然看到了java可变参数 ,就简单学习了下1.什么是可变参数可变参数是一种参数集合,在集合中参数的数量的不确定的,可能为一个或者多个,也可能没有参数;在这个参数集合中的每个参数类型是不确定的,我们将这个参数集合称之为可变的长参数。在java1.5之前的设计技巧是把形参定义为一个collection类型或者子类型,或者数组类型,这种方法的缺点就是需要对空参数进行判断和筛选,比如实...

2019-12-05 16:11:15 363

原创 SpringBoot学习笔记(四)——配置lombok

Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。Lombok能通过注解的方式,在编译时自...

2019-12-05 10:53:26 387

原创 Mybatis Plus学习(一)代码生成器配置

1. pom.xml<?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:schemaLocati...

2019-12-04 08:58:13 412

空空如也

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

TA关注的人

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