- 博客(32)
- 收藏
- 关注
原创 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关注的人