自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring 数据校验

Spring与beanValidation,图片是随便扣的

2022-10-27 21:21:13 2162

原创 Bean Validation

简要介绍bean Validation的规范

2022-10-27 20:52:22 2339

原创 Poi与EasyExcel进行文件读写、模版生成

本文介绍通过Poi进行excel模板的生成,以及使用EastExcel来进行excel读写与模板生成

2022-02-20 18:07:57 2553

原创 MyBatis的注解

一、MyBatis支持的标签注解1、增删改查标签注解作用@Update更新@Select查询@Insert插入@Delete删除 2、SqlProvider标签注解作用@SelectProvider提供一条查询sql语句@InsertProvider提供一条插入sql语句@UpdateProvider提供一条更新sql语句@DeleteProvider提供一条删除sql语句&nb

2022-01-29 23:23:26 480 1

原创 映射接口的参数与返回值

一、映射接口的参数与映射文件的取值参数可以是简单的数据类型,JavaBean、Map、List、Array。 参数名称解析规则:ParamNameResolver 是一个参数名解析器,用来按顺序列出方法中的虚参,并对实参进行名称标注。ParamNameResolver 类主要的方法有两个:构造方法 ParamNameResolver 和getNamedParams方法。构造方法 ParamNameResolver能够将目标方法的参数名称依次列举出来。在列举的过程中,如果某个参数存在@P

2022-01-29 23:02:51 1201

原创 MyBatis映射文件

一、映射文件的SQL标签再映射文件中存在9大顶层的sql标签:SQL拼接与操作:select、delete、update、insert、sql (include)缓存:cache、cache-ref参数映射:parameterMap (该标签已被废除,关于参数的映射可以使用行内参数映射)解决映射:resultMap 1、OGNL表达式与#{}、${}OGNL表达式的使用它是 apache 提供的一种表达式语言,全称是: Object Graphic Navigation Lan

2022-01-29 22:58:40 2993

原创 MyBatis配置文件

介绍 MyBatis配置灵活,支持多种配置方式:完全代码配置。MyBatis 提供完整的配置类,用户可以调用这些配置类完成所有配置工作。基于xml的配置方式。外部框架配置,比如Spring、SoringBoot。 采用xml配置配置数据信息,通常命名为mybatis-config.xml,该 XML文件的根节点为configuration,根节点内可以包含的一级节点及其含义如下所示:properties:属性信息,相当于 MyBatis的全局变量。se

2022-01-29 22:46:19 4317

原创 三、多线程基础 - 线程的创建

一、Thread的run与start方法class MyThread extends Thread{ @Override public void run() { System.out.println("hello word"); }}MyThread thread = new MyThread();thread.start(); run方法内为线程所要执行的任务,直接调用thread.run(),只是串行的执行,而没有以多线程的方式来执行。

2021-11-07 22:27:44 143

原创 二、多线程基础 - 线程的状态

一、系统调度 1、进程的调度进程调度算法 2、线程的调度Linux的线程调度算法 抢占式的系统调度:为每个线程分配一个时间片,当时间片用完,操作系统剥夺该线程的运行权,并给另外一个线程一个机会来运行,此时考虑线程的优先级。所有的桌面和服务器的操作系统都使用抢占式调度。 协作式的系统调度:一个线程只有在调用yeild方法或被阻塞或等待时才失去控制权,像手机等小型设备。  二、线程的状态1、分类在Java中线程的状态可

2021-11-07 16:51:14 123

原创 一、多线程基础 - 线程简介

一、简介 1、并发简史阶段一:早期的计算机中不包含操作系统,它们从头到尾只能执行一个程序,并且这个程序能够访问计算机的所有资源,在这种环境下程序不仅很难编写和运行,而且对计算机资源也是一种浪费。 阶段二:操作系统以及进程的出现,使得计算机能够同时运行多个程序,每个程序在单独的进程中运行;操作系统为每个独立的进程分配资源,包括内存、文件句柄以及安全证书;同时进程间的相互通信可以通过一些粗粒度的通信机制来交换数据,比如:套接字、信号输出器、共享内存、信号量以及文件。进程是资源分配

2021-11-06 19:19:17 109

原创 JDK8 after时间日期api

参考:https://zq99299.github.io/java-tutorial/datetime/iso/ 介绍 简介为了解决这些问题并在JDK内核中提供更好的支持,针对Java SE 8设计了一个新的没有这些问题的日期和时间API。该项目由Joda-Time(Stephen Colebourne)和Oracle的作者在JSR 310下共同领导,出现在Java SE 8软件包中java.time。 before JDK8 时间日期Api缺点:1️⃣ 可变性:对于时间与日期而言应该是不可

2021-10-07 19:31:51 605

原创 JDK8 before时间日期api

Date 一、简介: 时间与日期API,表示特定的瞬间,精确到毫秒。可变类,线程不安全,可以通过setXXX()对Year、Month、Day、Minute、Sec进行修改。Date 月份从0开始,一月是0,十二月是11。 二、API:初始化:public void test1(){ Date date = new Date(); //当前时间的Date对象 Date date1 = new Date(200000L); //从1970, 00:00:00 GMT开始毫

2021-10-07 19:16:09 215

原创 Stream 流式计算

Stream 简介  一、Stream 概述简介:Stream用于进行计算,是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。Stream并不会存储数据。Stream并不会改变数据源,它会返回一个含有结果集的Stream。Stream是延迟加载的,在需要结果时才执行。  步骤:创建一个流。将初始流转换为其他流的中间操作,可能包含多个步骤。终止操作,执行终止操作后才执行中间操作链,此后这个流就不能再使用了。  二、Stream的创建通过java.util.Colle

2021-08-24 22:37:56 1736

原创 Optional

Optional  一、Optional概述Optional是为了避免空指针异常,在jdk1.8,受谷歌的Guava项目引入了Optional类启发,引进了Optional类。Option类是一个可以为null容器类,如果保存T,则表示这个值存在,如果仅仅保存null,则表示这个值不存在。如果值存在 则isPresent()方法会返回true,调用get()方法会返回该对象。  使用场景:比如Stream流中就存在许多返回值为Optional的方法。    二、创建Optional方

2021-08-24 22:18:44 102

原创 Lambda 表达式

Lambda表达式  一、简介:Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。在很多其他语言中可以直接处理代码块,在java中传递一个代码块并不容易,因为java是一门面向对象的语言,所以必须构造对象,这个对象的类中有一个方法包含所需的代码。lambda表达式时为了让java支持函数式编程的一些语法规则。lambda是一个可传递的代码块,可以在以后执行一次或多次。  二、语法  表

2021-08-24 22:02:16 208

原创 Mybatis基础入门

一、MyBatis简介 一、MyBatis介绍MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。  二、功能流程  二、快速搭建 

2021-02-23 13:46:12 282 1

原创 Java中的异常详解

一、异常介绍 一、介绍即程序执行过程中发生的不正常的现象(开发过程中的语法错误和逻辑错误不属于异常)。 执行过程中的异常可以分为两类:Error和Exception。 Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源 耗尽等严重情况,StackOverflowError和OOM。一般不编写针对性的代码进行处理。 Exception:其它因编程错误或偶然的外在因素导致的一般性问题,可以使 用针对性的代码进行处理例如:

2021-02-04 14:13:51 202 1

原创 (九) 面向对象 - 内部类

一、内部类介绍 一、内部类介绍一个类定义在另一个类的内部,前者称之为内部类,后者称之为外部类。 内部类一般用在定义它的类和语句块内,在外部使用它时需要给出完整的名称,且不可以与外部类的名称相同。 使用场景为当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内 部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使 用内部类。比如:集合中的某些结构  二、内部类特点内部类是一个编译器行为,与虚拟机无关。编译器会将

2021-02-03 18:32:59 147

原创 (八) 面向对象 - 抽象类与接口

一、抽象类 一、介绍 抽象类与抽象方法:有时将一个对象设计的比较抽象,以至于没有具体的实例,这样的类称之为抽象类。对于某个方法的设计不提供具体实现,而是由子类来实现这个方法,这样的方法称之为抽象方法。含义一个或多个抽象方法的类称之为抽象类。  定义:1、定义抽象类 与 抽象方法:public abstract class AbstractClass { .... public abstract void pri

2021-02-03 00:07:41 152

原创 (七)面向对象 - final关键字

一、final关键字介绍 1、介绍:直译为最终的,可以修饰在类上(内部类、外部类,此两者是相对而言的)、方法上(实例方法、静态方法)、变量上(局部变量、成员变量)。 2、修饰对象的特点: 在修饰类时,修饰的类不能够被继承。例如:String, StringBuilderpublic final class String implements java.io.Serializable, Comparable<String>, CharSeque

2021-01-31 11:39:46 185 1

原创 (六) 面向对象 - static关键字

一、static关键字 1、介绍:译为静态,可以作用在方法,成员变量,代码块上,内部类。随着类的加载而加载 ,优先于对象存在。 2、作用: 作用在方法上:访问权限允许时,可不创建对象,直接被类调用。public class User{ ... public static void print(){ System.out.println("打印信息!"); } ...}public class Te

2021-01-30 21:39:11 182 1

原创 (五) 面向对象 - 包装类与BigInteger、BigDecimal

对于基本数据类型,有时我们需要一个基本数据类型所对应的对象,而这个对象所对应的类我们称之为包装类。 由于像float、double浮点数表示,如果小数点后面数字太多,会出现精度缺失,但对于像银行等系统,精度缺失是灾难性的,而BigInteger、BigDecimal可以解决这个问题。  一、Number抽象类 public abstract class Number implements java.io.Serializable { publi

2021-01-30 13:40:41 240

原创 (四) 面向对象 - Object类

Object类为所有类的超类,在java的每个类中都扩展了Object类。在Object中定义了许多重要方法,下面介绍重要的方法:  一、Object方法介绍 一、方法public final native Class<?> getClass() public native int hashCode() public boolean equals(Object obj) protected native Object clone

2021-01-29 16:23:32 208

原创 (三)面向对象 - 多态

一、多态介绍 一、多态简介 1、介绍接口的多种不同的实现方式即为多态。由于子类与父类之间存在"is - a"关系,这种规则的另外一种表述是替换原则(substitution principle)。因此父类对象出现的任何对象的地方都可以使用子类对象替换,简单来说即,父类型的变量可以引用子类型的对象。public class Animal{ ...}public class People{ }public class Polymorphic{

2021-01-28 23:35:00 134 1

原创 (二) 面向对象 - 继承

一、类与类的关系 对于类与类之间的关系可以分为以下几类: 一、依赖 描述:对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返 回值建立的对于其他对象的调用关系。 另外,依赖表示类之间的是 一种“临时、短暂”关系,这种关系是不需要保存的。 示例:public class A{ public D method(B b){ C c = new C();

2021-01-28 20:07:05 264 1

原创 (一) 面向对象 - 封装

一、对象导论 一、Java的优点 1、面向对象:在java中万物皆对象 2、安全性:java会在牺牲一些内存和对下标进行检查,来保证安全。同时java的垃圾回收器会监视用new创建的所有对象,辨别那些不会再使用的对象,不需要再销毁对象。 3、可移植:无论你的机器是32位或64位,其int值都是4位,而不像 C 或 c++在位数不同的机器上int值也不同。 4、动态性:由于反射的存在,java称得上时一门准动态语言,即你可以在运行

2021-01-28 15:03:09 71

原创 (六) JavaSE基础知识 - 数组

一、数组简介 一、特点: 1、 数组本身是引用数据类型,它可以存储任何数据类型,也就是基本数据类型,引用数据类型。2、 创建数组对象会在内存区域内分配一块连续的内存空间,数组名中的引用是这块内存空间的首地址。3、 数组的长度一旦确定,就不能改变。4、 通过下标调用指定位置的元素。  二、内存分配 int[] arr = {1,3,5,23,25,37,123}  二、一维数组没有初始化,则默认值为如下表

2021-01-27 22:38:59 165

原创 (五) JavaSE基础知识 - 变量、作用域、注释

一、变量 一、分类 1、成员变量: 位于类内部,方法外,会自动初始化,存储在堆中。 ​ 类变量:​ 使用static修饰的成员变量,对于类变量而言,同一个类的不同对象共享该变量。​​ 实例变量:​ 非static修饰的成员变量,同一个类的不同对象拥有不同的实例变量。​2、局部变量: 除形参外需要自动初始化,不然会报错,存储在栈中。​ 包括:形参、方法变量、代码块变量  二、示例public class Salary{

2021-01-27 21:26:24 103

原创 (四) JavaSE基础语法 - 流程控制结构

对于流程控制结构大致可以分为三类:1、顺序结构2、分支结构3、循环结构  一、顺序结构即程序自上而下的执行流程 二、分支结构用于一些分支判断,可以分为if - else、switch - case - default。 1、if - else:语法:if(布尔表达式){ 执行代码块1;}else{ 执行代码块;} 注意:可以通过嵌套,实现一些复杂的判断。如果你不写{},那么对应的执行代码块只有一行。

2021-01-27 20:48:50 246 1

原创 (三) JavaSE基础知识 - 数据类型

一、Java中的数据类型分类 一、分类可以分为两类:基本数据类型(8中):byte、short、int、long、char、boolean、float、double。引用数据类型:类、接口、数组等。  二、基本数据类型介绍 一、分类注意:此处的数字表示字节数,一个字节为8位 对于基本数据类型可以分为四大类:**1、整型(4种):**byte(1)、short(2)、int(4)、long(8)**2、浮点型(2种):**floa

2021-01-27 15:46:48 213

原创 (二) JavaSE基础语法 - 标识符

一、标识符的命名规则 一、标识符包含那些?:包名、类名、方法名、变量名、常量名等。 二、命名规则:1、 26个英文字母、0~9数字、_、$符号组成(可以使用汉字命名,但不推荐)。2、 不能够直接使用关键字与保留字,但可以包含关键字与保留字。3、 不能够以数字开头。4、 严格区分大小写,但不限定长度。 示例:正确:$11_11s11inew错误:1i //数字开头new //直接使用了new关键字  三、附录:&n

2021-01-26 17:32:24 178

原创 (一) JavaSE基础语法 - 操作符

一、基本概念1、介绍:表达式由操作数与操作符组成,操作数可以是一个常量、变量或表达式,操作符用于指明操作数的操作方式。比如:1 + 2,1 > 2 && true。  2、优先级:优先级操作符简介结合性1[ ]、.、( )方法调用,属性获取从左向右2!、~、 ++、 –一元运算符从右向左3* 、/ 、%乘、除、取模(余数)从左向右4+ 、 -加减法从左向右5<<、 &

2021-01-22 22:34:11 166 4

空空如也

空空如也

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

TA关注的人

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