自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 mysql中的between边界问题

mysql中between的边界

2022-08-11 11:16:57 4510

原创 maven报错Blocked mirror for repositories

IDEA maven 问题解决

2022-07-04 11:56:59 2063

原创 java: JPS incremental annotation processing is disabled. Compilation results on partial recompilatio

IDEA 编译问题解决

2022-06-07 15:31:05 30002 2

原创 六大设计原则(总结)

设计原则只是原则,是一个编程的大方向,在实际编程中,并不会时时刻刻一点也不违背,会因时因地灵活对待。只是遵守这些原则,会方便后续程序的开发与维护。1. 单一职责原则单一职责原则(Single Responsibility Principle,SRP),定义是:应该有且仅有一个原因引起类的变更。注意:单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。2.里氏替换原则里氏替换原则(Liskov

2021-08-11 17:46:01 1356

原创 JavaIO——带缓冲的输入输出流

FilterInputStream与FilterOutputStream分别是InputStream与OutputStream的子类,Filter输入输出流本身只是简单覆写了基类的方法,没什么值得说的,但是它的子类Buffered流是有自己的特点的。BufferedInputStreamBufferedInputStream能够为输入流提供缓冲区,提高IO速度。这样你可以一次读取一大块的数据,而不用从网络或是磁盘中一次一个字节的读取。特别是在读取大量的磁盘数据时,缓冲可以很大程度的提高IO速度。将输入

2021-05-08 19:37:47 372

原创 JavaIO——标准输入输出流

System.in, System.out, System.err是常见的数据来源与数据流目的地,使用最多的应该是使用其中的System.out将输出打印到控制台上。JVM在启动时会初始化这三个流,所以你不需要初始化它们,尽管你可以在运行时替换掉它们。System.inSystem.in是一个连接控制台程序和键盘输入的InputStream流,可以读取用户从键盘输入的数据。有以下三种常用方法读取控制台的输入,分别是System.in.read()、BufferedReader包装System.in、

2021-05-07 20:09:35 204 1

原创 JavaIO——字节与字符数组

在Java中,经常使用字节或是字符数组临时存储数据,这些数组又经常是数据的来源或是目的地。我们可以直接通过索引值来使用数组中的数据,也可以通过流来使用这些数组。ByteArrayInputStream与ByteArrayOutputStreamByteArrayInputStream与ByteArrayOutputStream封装字节数组,然后就可以通过流来使用数组中的数据了。ByteArrayInputStream简单示例如下:byte[] bytes = new byte[16];bytes[

2021-04-28 21:18:44 319

原创 JavaIO——管道

JavaIO中的管道为运行在同一个JVM下的两个线程提供了通信的能力,所有管道也可以作为数据源以及目标媒介。你不能使用管道让不同JVM中的线程进行通信,在JavaIO中,必须是同一个进程下的不同线程。PipedInputStream与PipedOutputStreamPipedInputStream是管道输入流,负责接收数据,单位是字节;PipedOutputStream是管道输出流,负责输出数据,单位也是字节。简单示例:// 管道字节输出流PipedOutputStream outputStr

2021-04-28 19:48:35 282

原创 JavaIO——文件读写

在读写文件时,Java可以分别以字节和字符为单位对文件进行操作。在java读写文件的方法中,分别可以字节读写,字符读写,按照行读,Files工具类中有readAllLines方法。本文代码为了简介考虑,没有书写相关的异常处理,具体的异常处理代码查看此文:文件异常处理字节读写// 字节读InputStream inputStream = new FileInputStream("D:\\test\\test01.txt");StringBuilder stringBuilder = new Str

2021-04-27 21:58:31 348

原创 JavaIO——流

在javaIO中,流是一个核心概念。可以将流理解为一个连续的数据串。你可以从流中读数据,也可以向流中写数据。但是对于同一个流,只能来读数据或者写数据,不能既用来读,又用来写。从而可以将流按照读或者写,分为输入流与输出流两种。输入与输出都是相对于内存(程序)来说的,磁盘或网络等向内存中传输数据用到的就是输入流,内存向磁盘或是网络传输数据就是用输出流。流既可以以字节为单位进行读写,也可以以字符为单位。从而流按照读写的单位不同,分为字节流与字符流。JavaIO中,字节流通常以“stream”命名,例如Inp

2021-04-26 22:06:06 104

原创 JavaIO——File类简介

File类不止可以用作文件对象,还可以用作文件夹对象。list()方法获取当前文件夹下的全部文件名及子文件夹名,不继续获取子文件夹下的文件。list(FilenameFilter filter)方法,通过重写接口FilenameFilter下的accept()方法,可以筛选符合要求的文件或文件夹。代码示例:public class FileClass { public static void main(String[] args) { System.out.println("

2021-04-23 14:20:34 89

原创 计算机基础——Unicode与UTF-8

Unicode与UTF-8的区别简短来说:Unicode是字符集,UTF-8是编码规则。广义的Unicode包括了字符集与UTF-8、UTF-16等多种编码规则,此处狭义的将Unicode指代为Unicode字符集。字符集可以理解为,在Unicode中,一个字符对应着一个惟一的编号,计算机使用此编号来表示这个字符。但是计算机并不是直接使用这个编号的二进制数,主要是为了节省存储空间和宽带流量。例子test测试这些字符在Unicode字符集中的编号分别为:字符unicode编号(16进制)

2021-04-22 21:14:54 289

原创 计算机基础——补码原理

补码的原理用一句话来说:减去一个数,等于加上这个数的补数。补码计算机中,只能使用二进制的0与1进行数据的存储与运算。8位二进制的数表示的数值范围为:0000000011111111,即0255,但是会有个问题,负数如何表示呢?这时候就需要符号位出场了。计算机中规定,第一位是符号位,其中0代表正,1代表负,剩下的位才表示数值。对于8位二进制数,第一位表示数字的正负,剩下的7位表示实际的数值大小。原码:符号位与实际数值的结合表示。正数的符号位为0,数值部分就是数字的绝对值大小;负数的符号位为1,数值部分

2021-04-19 01:18:22 8107 7

原创 Java基础(15)——注解

常用注解Java注解从Java1.5开始引入,注解就是代码中的特殊标记,告诉类要如何运作。注解的典型应用是:通过反射技术获得类中的注解,来决定如何运行类。注解可以标记在类、属性、方法、变量等,并且一个地方可以同时标记多个注解。先从一个简单的注解开始说起。class SuperClass { public void test() {}}class SubClass extends SuperClass{ @Override public void test() {}}

2021-04-13 14:13:30 445

原创 Java基础(13)——反射

反射,简单来说就是在运行时获取类及类的信息。我们手动编写的.java文件,经过java编译器编译后,生成对应的同名.class文件,其中同名的.class文件里面保存有java文件中的所有信息,包括有类名、方法、字段等,只不过是以字节码的形式保存。当程序中第一次使用该类时,JVM会通过全限定名查找.class文件,加载到内存中,然后根据此文件创建对应的Class对象,注意,不是这个类的实例对象。Class类在Java中用来表示运行时类型信息的对应类就是Class类,Class类是一个是实实在在的类,

2021-04-06 14:05:46 87

原创 Java基础(14)——AutoCloseable作用

AutoCloseable用于自动执行资源关闭操作,jdk7添加,位于java.lang包中。实现了AutoCloseable接口的类的实例对象,可以由try语句自动执行资源释放的过程。AutoCloseable接口中只有close()方法,实现了这个接口的类重写close方法,自行决定释放哪些资源,当try语句结束时,会自动调用close方法。Closeable接口继承了AutoCloseable,具有同样的功能。public interface AutoCloseable { void cl

2021-03-31 21:31:43 1678

原创 Java基础(12)——泛型

泛型,可以理解为参数化类型。对于参数,我们比较熟悉的是形参和实参。方法定义时,用的是形参,在调用方法时,实际传的数值或对象叫实参。参数化类型,可以理解为,在定义类或者方法时,将用到的类型参数化(类型形参),不传具体的类型,只是在使用时,才将具体的类型传进来(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。比较常见的用法是容器类,例如list,set,map。作用当不使用泛型,可能会在运行时产生转换异常。// 当不限定List中存储的

2021-03-23 21:12:04 203

原创 Java基础(10)——Java中的基本类型及其包装类

基本数据类型Java中有8种基本数据类型,分别是boolean,byte,char,short,int,long,float,double。类型长度默认值包装类boolean–falseBooleanbyte8位,1字节0Bytechar16位,2字节‘\u0000’(0)Charactershort16位,2字节0Shortint32位,4字节0Integerlong64位,8字节0LLongfloat3

2021-03-11 21:45:39 84 2

原创 Java基础(09)——==与equals的区别

equals()与==在Object中完全一致,下面是Object中equals()中的源码。public boolean equals(Object obj) { return (this == obj);}可以看到,equals方法直接返回自身==传入对象的结果。“==”,两边是基本类型的话,比较的是数值,引用类型的话比较的是两个对象的内存地址,即它俩是否是同一个对象。Java中,所有的类都直接或者间接继承Object类,若是不重写equals方法,那么会与Object保持一致。但

2021-03-11 19:35:51 73

原创 Java基础(08)——static关键字的五个作用

static主要有以下五个作用:静态变量静态方法静态代码块静态内部类静态导包下面一一介绍。静态变量static修饰变量,使其成为静态变量。我们通常将static修饰的变量成为类变量,这主要是相对于属于对象的普通变量来说的,静态变量可以直接通过类名.变量使用。当然静态变量也是可以通过对象获取的,但是阿里巴巴Java开发手册建议直接通过类名访问,减少解析与内存成本。public class StaticClass { public static String staticStr;

2021-03-10 21:43:41 193

原创 正则表达式——反向引用

反向引用,也翻译做前向引用,因为都是对前面已经获取的捕获组的引用。想要学好反向引用,需要有捕获组的基本知识,不熟悉的请看我的此篇博文。正则表达式——捕获组一个简单的例子不考虑闰年等的情况下,对年月日进行简单匹配,可以用\d{4}-\d{2}-\d{2}。结果如下图所示。对于类似"2012-12-09"的字符串能够成功匹配。如果字符串中的日期分隔符不只有"-",还可能有":"的话,就需要改变一下表达式。将正则表达式改为\d{4}[-:]\d{2}[-:]\d{2},便可以匹配两种分隔符了。但这种表

2021-03-09 22:12:06 1670

原创 正则表达式——贪婪模式、非贪婪模式与占有模式

正则练习测试地址:https://regex101.com/举个例子使用正则表达式<.*>去匹配字符串"aaavaabb",成功匹配到的不是"",也不是"",而是"aava"。. 表示匹配除换行符之外的任何字符,*表示它前面的字符或子表达式匹配0次或多次。之所以<.*>不去匹配"",而去匹配"aava",这是因为*默认在匹配成功的前提下,会尽可能多的去匹配字符。这就叫做"贪婪模式"。在Java中,正则的匹配模式有三种:分别是贪婪模式,非贪婪模式,占有模式。贪婪模式上面的

2021-03-09 20:49:28 728

原创 正则表达式——正则入门

正则表达式——正则入门正则测试地址:https://regex101.com/先从一个例子开始正则表达式。书写一个匹配手机号的正则表达式,为了方便讨论,假定手机号是1开头,第二位只能是3、5、8中的其中一个,总共11位的数字,形如13xxxxxxxxx。匹配手机号的正则表达式为:^1[358]\d{9}$,下面介绍此正则表达式中的各个符号的含义。符号含义简介^:表示字符串的开头,后面紧接着1,表示匹配的字符串要以"1"开头。1:就是匹配“1”本身,^不匹配字符,所以1就是匹配字符串的第一个字符

2021-03-04 22:20:26 1614 1

原创 Java基础(07)——内部类

Java基础(08)——内部类内部类,顾名思义:将一个类定义在另一个类里。下列就是一个内部类的简单定义。public class Outer { private String outStr = "outer string"; public class Inner { private String inStr = "inner string"; }}编译后的.class文件如图所示,外部类与内部类会成为两个文件,其中内部类的名称为Outer$Inner.c

2021-03-04 15:31:46 312 1

原创 Java基础(06)——final关键字的作用

#final分别可以修饰类、方法、变量、方法参数。被final修饰的类不能被继承被final修饰的方法不能被重写被final修饰的变量不能被修改被final修饰的方法参数在方法内不能被修改类和方法被final修饰没啥好说的;被final修饰的基本类型的值不能被修改,被final修饰的引用类型的引用不能被修改,但是引用本身指向的内容是可以修改的;被final修饰的方法参数,在方法内,基本类型的值不能被修改,引用类型的引用不能被修改,引用本身指向的内容可以被修改。final修饰变量尝试修改fi

2021-03-01 14:15:19 175

原创 Java基础(05)——类加载顺序

单个类加载顺序InitOrderClass:public class InitOrderClass { static { System.out.println("初始化静态代码块"); } static int staticNum = initStaticNum(); { System.out.println("初始化非静态代码块"); } public int num = initNum(); public s

2021-02-25 20:48:27 158

原创 正则表达式——环视(Lookaround)(几分钟学会环视)

环视(Lookaround)正则大神主页:https://blog.csdn.net/lxcnn?t=1正则表达式入门教程:https://deerchao.cn/tutorials/regex/regex.htm#top上述两个博客的文章都是以C#为基础写作的,在普通捕获组与命名捕获组的混用上,与Java有所不同正则运行测试网址:https://regex101.com/最开始学环视,是通过看《正则表达式必知必会》这本小册子,学完后感觉很模糊,好像会了,又好像不清楚,直到在网上看到下面这张图

2021-02-24 20:20:37 3990

原创 正则表达式——捕获分组(capture group)(Java代码)

正则大神主页:https://blog.csdn.net/lxcnn?t=1正则表达式入门教程:https://deerchao.cn/tutorials/regex/regex.htm#top上述两个博客的文章都是以C#为基础写作的,在普通捕获组与命名捕获组的混用上,与Java有所不同正则运行测试网址:https://regex101.com/正则中,每个用于匹配字符的()都是一个子表达式,可以被捕获分组捕获到,从而在正则表达式内或表达式外进行引用。环视使用了(),但是它是用来匹配位置信息的,

2021-02-24 17:28:30 3921

原创 Java基础(04)——重写(Override)与重载(Overload)

重写(Override)与重载(Overload)重写(Override)重写:子类对父类中允许子类访问的方法的实现过程进行重新编写,返回值和形参都不能改变。即外壳不变,核心重写。重写的好处在于,子类可以根据自己的需要,重新定义此方法在自己内部的实现逻辑。重写规则参数列表与被重写的方法的参数列表必须完全相同子类中,想要重写的方法与父类中方法的参数列表不是完全相同,那就相当于在子类中重载了一个新的方法,与重写无关,子类中会有两个同名方法,只是参数不同。返回类型与被重写方法的返回类型可以

2021-01-24 21:02:34 198

原创 Java基础(03)——面向对象

面向对象(Object Oriented)面向对象主要有四个特性:抽象,封装,继承,多态。抽象**抽象可以理解为将现实事物简化、概括,方便人们理解,进而转化为代码的过程。**比如地图就是对现实地理情况的抽象。软件开发解决的是现实问题,但是需要对信息进行提炼抽象,抓住问题的本质与重要的属性,从而能够更好更快地解决问题。抽象包括两个方面:过程抽象与数据抽象。过程抽象,是指将一个系统按照功能分为若干个子系统,进行"自顶向下""逐步求精"的程序设计。数据抽象,以数据为中心,把数据类型和施加在对该类型对

2021-01-24 17:55:09 55

原创 IDEA2020.3 Scala插件无效问题

此文记录了我解决此问题的过程,中间会有问题的反复和版本错误问题,建议通读一遍后再动手。安装Scala插件项目代码中有一部分是使用Scala语言写的,直接编译无法识别,IDEA需要安装scala插件。在插件市场搜索安装后,依然没有发挥作用,报错:scala: skipping Scala files without a Scala SDK in module(s)。同事的IDEA直接安装此插件即可起效,怀疑是IDEA2020.3的问题,具体原因未知。引入ScalaSDK我本地的问题在于没有将Scal

2020-12-11 11:02:09 2698

原创 IDEA 2020.3 lombok失效问题

本地安装的是IDEA2020.3 社区版,使用lombok插件失效,编译报错,“You aren‘t using a compiler supported by lombok, so lombok will not work and has been disabled.”在网上搜索,最终找到解决方案。记录如下,方案地址:解决方案地址方案中的方法一有效,在以下位置加上该配置"-Djps.track.ap.dependencies=false"方案中方法二刚开始遇见此编译问题,我有怀疑是lombo

2020-12-10 10:45:44 33041 17

原创 Java基础(02)——为什么要同时重写equals()与hashCode()

大家都知道重写equals()方法后,需要重写hashCode(),至于为什么却不一定清楚。经过学习,发现原因可以用简短的几句话解释。只重写equals()方法,而不重写hashCode(),会违反hashCode的通用约定,造成与预期不一致的情况发生,所以基于散列的集合都会出现这个问题。比如两个对象用equals比较,结果相等,但是同样作为key插入HashMap,却可以插入两次,与预期不一致。解析Object的方法首先看一下Object的equals()方法public boolean

2020-12-04 00:39:33 119

原创 Java基础(01)——int与Integer比较

作为Java初学者,int与Integer的比较之前一直有地方不清楚,花了点时间研究一下,现在基本明白了,记录如下,以备查阅。示例 int A1 = 127; int A2 = 127; System.out.println("int与int比较127:A1==A2 "+ (A1==A2)); int A3 = 128; int A4 = 128; System.out.println("int与int比较128:A

2020-12-03 00:13:02 192

原创 WPF TextBox控件焦点问题

需求:点击按钮,会弹出的用户名和密码输入框,焦点自动聚焦于用户名输入框,用户直接可以输入。做法:网上搜索,使用CodeBehind,在构造函数中写textBox.Focus();(textBox为用户名输入框的名字),无效。创建测试工程,内含两个TextBox,使用上述方法测试自动设置焦点,有效。分析原因:因为需求是二级对话框的Textbox,在点击一级窗口的按钮时,焦点发生了拜年话,textBox.Focus()写在构造函数中,时机不对。修改:CodeBehind,构造函数中,this.Lo

2020-11-11 09:39:23 1536

原创 IDEA快捷键(WIN10,持续更新)

IDEA快捷键查看源码:ctrl+鼠标左键重写父类方法:ctrl+o快速写for循环:20.for或fori返回上次查看代码位置:alt+左右方向键快速查看代码中的类及方法:alt+上下键快速写主函数:psvm

2020-06-12 23:58:45 513

原创 UML学习笔记

UML基础知识  uml,全称为Unified Modeling Language,即统一建模语言,主要作用为软件设计与需求分析。UML分类  分为两类,分别是结构型图(Structure Diagram)与行为型图(Behavior Diagram);顾名思义,结构型图描述的是某种结构,这种结构在某段时间内应该是稳定的,“静态”的;而结构型图描述的是某种行为,是“动态”的。类图与时序图 Person类图 查看菜单时序图类图(Class Diagram)属于结构型图,时序图(Sequenc

2020-06-12 00:34:34 199

原创 MarkDown用法小结

一级标题在文字前加“#+空格”,自动成为一级标题二级标题在文字前加“##+空格”,自动成为二级标题三级标题在文字前加“###+空格”,自动成为三级标题其他级别标题以此类推。字体HelloWorld!(黑体)设置为黑体,文字前后都添加 两个星号;HelloWorld!(斜体)设置为斜体,文字前后都添加 一个星号;HelloWorld!设置为黑体斜体,文字前后都添加 三个星号;HelloWorld!设置缩小文字,文字前后都添加 一个~;HelloWorld!设置标红,文字前后

2020-05-18 23:53:00 122

空空如也

空空如也

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

TA关注的人

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