自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Guizy

星光不问赶路人 时光不负有心人

  • 博客(444)
  • 资源 (3)
  • 收藏
  • 关注

原创 重学JavaSE 第14章 : 泛型、自定义泛型、泛型通配符

重温 Java 泛型、自定义泛型、泛型通配符

2022-08-01 23:40:52 553

原创 重学JavaSE 第13章 : 集合、List、Set、Map、Iterator迭代器、Collections工具类

重温Java 集合, list, set, map, collection等

2022-08-01 22:18:21 885 1

原创 重学JavaSE 第12章 : 枚举和注解、注解的实战使用

重温Java枚举、注解, 注解的实战使用

2022-08-01 22:15:38 513

原创 重学JavaSE 第11章 : 常用类API、String、日期API、比较器、BigDecimal、System等

重温Java 常用类API、String、日期API、比较器、BigDecimal、System等

2022-08-01 22:10:01 783

原创 重学JavaSE 第10章 : 线程概念、创建线程的方式、线程生命周期、通信、线程池

重温 线程概念、创建线程的方式、线程生命周期、通信、线程池

2022-08-01 11:19:42 670

原创 重学JavaSE 第9章 : 异常、try-catch-finally、throws、throw、自定义异常、try-with-resources

重温Java 异常、try-catch-finally、throws、throw、自定义异常、try-with-resources

2022-08-01 10:34:46 626

原创 重学JavaSE 第8章 : 面向对象(下) static、代码块、final、抽象类、模板方法设计模式、接口、内部类

重温java static、代码块、final、抽象类、模板方法设计模式、接口、内部类

2022-07-31 17:35:04 832

原创 重学JavaSE 第7章 : 面向对象(中) 继承性、多态性、方法的重写、super、子类对象实例化过程、Object类、包装类

重温 Java 继承性、多态性、方法的重写、super、子类对象实例化过程、Object类、包装类

2022-07-31 17:16:44 861

原创 重学JavaSE 第6章 : 面向对象(上) 类和对象、方法的重载、可变参数、方法的值传递机制、封装、构造器、this、import关键词等

重温 类和对象、方法的重载、可变参数、方法的值传递机制、封装、构造器、this、import关键词等

2022-07-31 17:02:43 1228 1

原创 重学JavaSE 第5章 : 数组概念、数组内存分析、数组常见算法、Arrays工具类、数组中常见异常

重温Java 数组概念、数组内存分析、数组常见算法、Arrays工具类、数组中常见异常

2022-07-31 16:44:33 954

原创 重学JavaSE 第4章 : 顺序结构、分支语句、循环结构、break, continue, return区别

重温Java 顺序结构、分支语句、循环结构、break, continue, return区别

2022-07-30 18:11:42 870

原创 重学JavaSE 第3章 : 运算符、逻辑运算符、三元运算符、运算法优先级等

介绍Java的运算符、比较运算符, 三目运算法, 逻辑运算符等

2022-07-30 18:05:48 895

原创 重学JavaSE 第2章 : 关键字与保留字、变量、八大基本数据类型、进制

重温Java 关键字与保留字、变量、八大基本数据类型、进制

2022-07-30 18:03:21 1076

原创 重学JavaSE 第1章 : 软件开发介绍、Java语言概述、Java运行机制、HelloWorld程序

重温Java语言, 介绍Java的由来和特性, 运行机制, 第一个Java程序

2022-07-30 18:01:50 1086

原创 MySQL (十三) : MySQL约束(详细、全)

第13章_约束1. 约束(constraint)概述1.1 为什么需要约束数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:实体完整性(Entity Integrity):例如,同一个表中,不能存在两条完全相同无法区分的记录域完整性(Doma

2022-04-18 23:11:01 2225 1

原创 MySQL (十二) : MySQL数据类型精讲(非常详细)

第12章_MySQL数据类型精讲1. MySQL中的数据类型类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型BIT日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP文本字符串类型CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT枚举类型E

2022-04-18 23:00:00 789

原创 MySQL (十一) : 数据处理之增删改

第11章_数据处理之增删改1. 插入数据1.1 实际问题解决方式:使用 INSERT 语句向表中插入数据。1.2 方式1:VALUES的方式添加使用这种语法一次只能向表中插入一条数据。情况1:为表的所有字段按默认顺序插入数据INSERT INTO 表名VALUES (value1,value2,....);值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。举例:INSERT INTO departmentsVALUES (70, 'Pub',

2022-04-17 21:15:00 447

原创 MySQL (十) : 创建和管理表

第10章_创建和管理表讲师:尚硅谷-宋红康(江湖人称:康师傅)官网:http://www.atguigu.com1. 基础知识1.1 一条数据存储的过程存储数据是处理数据的第一步。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢? 在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。[外链图片转存失败,源站可能有防盗链机制,

2022-04-17 11:50:01 538

原创 BeanPostProcessor后置处理器

后置处理 Bean : BeanPostProcessor的使用在bean对象初始化之前和之后 (bean从容器中返回给我们之前): 来做某些事情BeanPostProcessor 作用:对 Spring 工厂所创建的对象,进行再加工。(AOP 的底层实现)后置处理 Bean 原理分析程序员实现 BeanPostProcessor 接口中规定的两个方法:// bean初始化之前调用public Object postProcessBeforeInitialization(Object

2022-04-15 17:12:52 822

原创 MySQL (九) : 子查询

第09章_子查询子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集合)进行比较。1. 需求分析与问题解决1.1 实际问题现有解决方式:#方式一:SELECT salaryFROM employeesWHERE last_name = 'Abel

2022-04-09 19:25:46 1074

原创 MySQL (八) : 聚合函数

第08章_聚合函数我们上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类,叫做 聚合(或聚集、分组) 函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。1. 聚合函数介绍什么是聚合函数聚合函数作用于一组数据,并对一组数据返回一个值。聚合函数类型AVG()SUM()MAX()MIN()COUNT()聚合函数语法聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用。1.1 AVG和S

2022-04-08 23:45:00 541

原创 MySQL (六) : 多表查询

第06章_多表查询多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。比如:员工表和部门表,这两个表依靠“部门编号”进行关联。1. 一个案例引发的多表连接1.1 案例说明从多个表中获取数据:#案例:查询员工的姓名及其部门名称SELECT last_name, department_name FROM employees, depart

2022-04-08 22:45:00 1314

原创 MySQL (五) : 排序与分页

第05章_排序与分页1. 排序数据1.1 排序规则使用 ORDER BY 子句排序ASC(ascend): 升序DESC(descend):降序ORDER BY 子句在SELECT语句的结尾。1.2 单列排序SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date; # 默认ASC 升序SELECT last_name, job_id, de

2022-04-07 00:45:00 331

原创 MySQL (七) :单行函数

第07章_单行函数1. 函数的理解1.1 什么是函数函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地提高用户对数据库的管理效率。从函数定义的角度出发,我们可以将函数分成内置函数和自定义函数。在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编

2022-04-06 19:51:44 473

原创 MySQL (四) : 运算符

总目录: MySQL学习第04章_运算符1. 算术运算符算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加 (+)、减(-)、乘(*)、除(/)和取模(%)运算。1.加法与减法运算符mysql> SELECT 100, 100 + 0, 100 - 0, 100 + 50, 100 + 50 -30, 100 + 35.5, 100 - 35.5 FROM dual;+-----+---------+---------+----------.

2022-04-06 01:06:12 356

原创 MySQL (三) : 基本的SELECT语句

总目录: MySQL学习第03章_基本的SELECT语句1. SQL概述1.1 SQL背景知识1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年里,无数的技术、产业在这片江湖里沉浮,有的方兴未艾,有的已经几幕兴衰。但在这片浩荡的波动里,有一门技术从未消失,甚至“老当益壮”,那就是 SQL。45 年前,也就是 1974 年,IBM 研究员发布了一篇揭开数据库技术的论文《SEQUEL:一门结构化的英语查询语言》,直到今天这门结构化的查询语言并没有.

2022-04-06 00:08:40 815

原创 MySQL (一) : 数据库概述

第01章_数据库概述1. 为什么要使用数据库持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。2. 数据库与数据库管理系统2.1 数据库的相关概念DB:数据库(Database)即存储数据的“仓库”,其本质是一个

2022-04-05 23:26:02 1127

原创 日志系统(6) : SpringBoot日志实现、Logback切换为Log4j2

SpringBoot日志实现SpringBoot是现今市场上最火爆用来简化spring开发的框架,springboot日志也是开发中常用的日志系统。SpringBoot 默认就是使用SLF4J作为日志门面,Logback作为日志实现来记录日志。入门案例// application.properties文件logging.level.com.guizy=tracelogging.pattern.console=%d{yyyy-MM-dd} [%level] -%m%nlogging.fi

2022-03-31 23:33:05 1653

原创 日志框架(5) : Log4j2简介、相关使用

Log4j2简介Apache Log4j2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。被誉为是目前最优秀的Java日志框架。Log4j2特征性能提升Log4j2包含基于LMAX Disruptor库的下一代异步记录器。在多线程场景中,异步记录器的吞吐量比Log4j 1.x和Logback高18倍,延迟低。自动重新加载配置与Logback一样,Log4j2可以在修改时自动重新加载其配

2022-03-31 22:34:43 920

原创 日志框架(4) : LogBack介绍、相关使用

Logback简介Logback是由log4j创始人设计的又一个开源日志组件。Logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个改良版本。此外logback-classic完整实现SLF4J API。使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容

2022-03-30 23:52:46 2023

原创 重学JavaSE 第20章 : 正则表达式介绍、String类相关使用、正则表达式速查表

重温 Java正则表达式介绍、String类相关使用、正则表达式速查表

2022-03-29 01:06:45 1730

原创 日志框架(3) : 日志门面、JCL介绍、SLF4J介绍

JCL简介 (日志门面)全称为Jakarta Commons Logging,是Apache提供的一个通用日志API。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的jul, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用common-logging,通常都是配合着log4j以及其他日志框架来使用。使用它的好处就是,代码依赖是

2022-03-27 22:00:41 753

原创 日志框架(2) : Log4j介绍及使用

第三章 Log4j3.1Log4j简介 (Log for Java)Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。官方网站: http://logging.

2022-03-24 21:32:52 3197

原创 日志框架(1) : 日志介绍、JUL框架

1.第一章 日志简介1.1日志概述只要程序员投身在实际的学习和生产环境中,就会对日志的重要性有着充分的认知,尤其是对于Web以及更高级的应用。在很多情况下,日志可能是我们了解应用如何执行的唯一方式。但是现实是很多程序员对于日志的记录的认知比较肤浅,认为日志的记录输出是一件很简单而且会自动发生的事情,所以会经常忽略和日志相关的问题。Java语言的强大之处就是因为它强大而且成熟的生态体系。其中包括日志框架,就有很多成熟的开源资源可以直接使用。1.2日志文件日志文件是用于记录系统操作事件的文件集

2022-03-23 00:44:07 1002

原创 Java并发编程(十) : JUC 之 AQS原理、ReentrantLock原理

J.U.C8.2.1 AQS 原理概述:全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架特点:用 state 属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁getState - 获取 state 状态setState - 设置 state 状态compareAndSetState - cas 机制设置 state 状态独占模式是只有一个线程能够访问资源,而共享模式可以允许多个线程访问资源

2021-08-03 10:13:08 1881 1

原创 MyBatis拓展知识 :批量执行SQL语句、自定义TypeHandler来处理枚举类型

一、批量执行SQL语句 (BatchExecutor)之前学习使用mybatis的foreach标签来, 批量查询sql, 这样的操作实际对MySQL数据库存在瓶颈问题,且效率很低非批量的方式: 发一条sql, 预编译一次, 设置参数; 效率低发送SQL10000次, 预编译10000次, 设置参数1000次, 数据库执行10000次批量的方式: 将sql语句先预编译好, 给该sql设置参数即可只发送SQL一次, 预编译一次, 设置参数1000次, 数据库执行一次二、自定义Typ

2021-04-22 18:34:04 1352

原创 MyBatis插件开发 : 插件原理、插件开发流程

增强代码MyBatis在四大对象的创建过程中,都会有插件进行介入。插件可以利用动态代理机制一层层的包装目标对象,而实现在目标对象执行目标方法之前进行拦截的效果。MyBatis 允许在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHa...

2021-04-22 16:53:32 1401

原创 MyBatis运行原理(三) : 多参数封装Map的流程、查询实现原理 (源码分析)

二、获取SqlSession的流程1、进入到openSession()方法, 因为sqlSessionFactory在运行时的对象为DefaultSqlSessionFactory, 所以通过动态绑定机制调用的openSession为DefaultSqlSessionFactory的 @Override public SqlSession openSession(boolean autoCommit) { // configuration.getDefaultExecutorType()

2021-04-22 11:47:15 1120 1

原创 MyBatis运行原理(二) : 获取SqlSession的流程、getMapper获取接口代理对象流程 (源码分析)

二、获取SqlSession的流程1、进入到openSession()方法, 因为sqlSessionFactory在运行时的对象为DefaultSqlSessionFactory, 所以通过动态绑定机制调用的openSession为DefaultSqlSessionFactory的 @Override public SqlSession openSession(boolean autoCommit) { // configuration.getDefaultExecutorType()

2021-04-22 11:44:56 1317 1

原创 MyBatis运行原理(一) : 核心组件、SqlSessionFactory的构建过程(源码分析)

MyBatis多个参数封装Map的过程1、首先在该处打上断点因为mapper是代理对象, 进入代理类MapperProxy中的invoke方法 @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { // 判断是否是Object中的方法, method对象就是上面的getUser方法 if (Object.class.eq

2021-04-22 11:40:54 698

mysql markdon 笔记

mysql markdon , 详细

2022-04-20

Java笔记(超详细).zip

Java基础笔记,共30天,很详细.(附带开发工具Intellij IDEA的使用文档),包含Java基础语法、面向对象、常用API、多线程、IO流、网络、JDBC

2020-02-23

空空如也

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

TA关注的人

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