自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis

MyBatis本是apache的一个开源项目iBatisMyBatis 是一种优秀的持久层框架,它是一个基于 Java 的开源框架,用于简化数据库访问的开发。MyBatis 提供了灵活的映射方式,将对象与 SQL 语句进行映射,并提供了丰富的功能来处理数据库操作。以下是 MyBatis 的特点和主要功能:灵活的映射:MyBatis 使用 XML 或注解来定义对象与 SQL 语句之间的映射关系,可以方便地进行 CRUD 操作。

2023-10-16 20:59:40 138

原创 《JSP》

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。根据JSTL标签所提供的功能,可以将其分为5个类别。核心标签 格式化标签 sql标签 xml标签 jstl函数(后面详细解释)

2023-09-16 11:16:40 161

原创 Servlet

与请求转发不同的是,请求重定向不能共享Request域中的数据,也不能直接访问WEB-INF下的资源,但可以访问工程外的资源。处理请求:在初始化完成后,Servlet 容器会根据每个请求创建一个线程,调用 Servlet 实例的 service() 方法来处理请求。在该方法中,可以根据不同的 HTTP 方法(如 GET、POST 等)执行相应的逻辑来处理请求的参数、生成响应内容等。需要注意的是,每次请求都会创建一个单独的线程来处理,而不是每个请求都创建一个新的 Servlet 实例。

2023-09-15 20:27:12 358

原创 Web之tomcat

bin 专门用来存放 Tomcat 服务器的可执行程序conf 专门用来存放 Tocmat 服务器的配置文件lib 专门用来存放 Tomcat 服务器的 jar 包logs 专门用来存放 Tomcat 服务器运行时输出的日记信息temp 专门用来存放Tomcdat 运行时产生的临时数据webapps 专门用来存放部署的 Web 工程。work 是 Tomcat 工作时的目录,用来存放 Tomcat 运行时 jsp 翻译为 Servlet 的源码, 和Session 钝化的目录。

2023-09-13 20:43:44 108

原创 MySQL索引和查询优化

是指在查询过程中,索引包含了查询所需的所有数据列,无需回表查询索引或数据页。我们需要准备相关数据,我们都知道,在电商平台中,最核心的数据为:用户、商品、订单,因此,我们需要创建了对应三张表,以及批量初始化⼤量数据,其中,表结构简单设计如下。回表查询的优化可以从多个方面入手,如使用聚合索引、覆盖索引、分页机制、合理使用缓存和优化查询语句等方法,从而减少回表查询的次数,提高查询效率。虽然子查询在当前情况下实现了查询需求,但使用子查询可能会导致⼀些性能问题,因此在优化查询时,通常不建议过度依赖子查询。

2023-09-01 19:42:45 326

原创 MVCC多版本并发控制

mvcc

2023-08-29 20:31:27 84

原创 数据库事务

如果事务中的任何一部分操作失败,则所有已执行的操作将被回滚到事务开始前的状态,不会对数据库数据造成变化。4.持久性(Durability):事务一旦提交成功,其所做的修改将永久保存在数据库中,并对之后的数据访问可见。事务的隔离性可以防止并发执行的事务相互干扰,避免数据不一致和冲突问题。也就是在事务1 中一直都是一个状态 ,不会因为事务2 提交而改变查询的结果,但实际结果已经改变,这时再进行修改就会出现幻读也就是下面的实验。倘若没被提交的数据进行回滚 那么这次读取的没有被提交的数据就没用了。

2023-08-29 19:39:07 122

原创 数据库连接池

数据库线程池

2023-08-28 19:43:39 810

原创 <JDBC>

是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方法、方便地访问数据库资源。JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。

2023-08-26 09:53:39 1003

原创 mysql基础下

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

2023-08-25 21:13:17 69

原创 MySQL基础中

SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集合)进行比较。在这个示例中,column1和column2是用于分组的列,aggregate_function()是一个聚合函数,table_name是需要查询的表名,condition是HAVING子句中的筛选条件。流程处理函数可以根据不同的条件,执行不同的处理流程,可以在SQL语句中实现不同的条件选择。

2023-08-23 20:47:17 122

原创 Mysql基础 上

MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL Optimizer优化器进行了改进。假设我有两个集合 X 和 Y,那么 X 和 Y 的笛卡尔积就是 X 和 Y 的所有可能组合,也就是第一个对象来自于 X,第二个对象来自于 Y 的所有可能。需要注意的是,根据具体的数据库管理系统(如Oracle、MySQL等),内连接和外连接的语法可能有所不同。2.数据操作语言 (DML): DML语句用于对数据库中的数据进行操作,如查询、添加、修改、删除等。

2023-08-22 20:28:59 56

原创 JAVASE常见面试题30道

一些面试题

2023-08-22 10:20:54 364

原创 JDK8新特性

1.Lambda 表达式:Lambda 表达式是函数式编程的重要组成部分。它们提供了一种简洁的方式来表示匿名函数,可以作为参数传递给方法或使用函数式接口进行操作。2.Stream API:Stream API 提供了一种流式处理集合数据的方式。它支持函数式编程风格的操作,可以进行过滤、映射、排序、归约等操作,简化了对集合数据的处理。3.方法引用:方法引用提供了一种更简洁的语法来调用已经存在的方法。它可以通过名称引用静态方法、实例方法或构造函数,并且可以与Lambda表达式配合使用。

2023-08-16 19:11:25 49

原创 反射的概述

反射是一种在运行时动态获取和操作类、对象、方法和属性的机制。通过使用反射,你可以在编译时不知道具体类的情况下,获取类的信息、调用方法和访问属性。使用反射时要注意安全性和性能。由于反射是一种动态操作,因此可能会带来一定的性能开销。另外,需要处理异常和访问权限等问题。在 Java 中,反射机制由 java.lang.reflect 包提供支持。为了使地址不改变,我们可以用反射来改变值。这样改变值,地址就改变了。

2023-08-16 18:59:09 36

原创 TCP的三次握手与四次挥手过程解析

关闭连接时,被动断开方在收到对方的FIN结束请求报文时,很可能业务数据没有发送完成,并不能直接立即关闭连接,被动方只能先回复一个ACK响应报文,告诉主动断开方:“你发的FIN报文我收到了,只有等我所有的业务报文都发送完了,我才能真正的结束,在结束之前,我会发你FIN+ACK报文的,你先等着”。⽐如,如果发送端发送的⼀个TCP帧的净荷为12byte,序号为5,则发送端接着发送的下⼀个数据包的时候,序号的值应该设置为5+12=17。TCP报⽂⾸部的后⾯,接着的是数据部分,不过数据部分是可选的。

2023-08-15 20:00:34 97 1

原创 网 络 编 程

但是这显然是有些复杂的,所以在TCP/IP协议中,七层被简化为了四个层次。TCP/IP模型中的各种协议,依其功能不同,被分别归属到这四层之中,常被视为是简化过后的七层OSI模型。总结起来,IP是互联网中用于标识和定位设备的协议,它使用IP地址来唯一标识设备,并通过数据包在网络中进行通信和路由。IP是Internet Protocol(互联网协议)的简称,它是一种网络通信协议,用于在网络中标识和定位设备。无连接性:IP协议是无连接的,每个数据包都独立发送,它们可以通过不同的路径到达目的地。

2023-08-14 18:59:04 66

原创 java之File类

AIO通过回调函数的方式来处理I/O操作完成的通知,从而实现异步非阻塞的I/O操作。BIO(Blocking I/O):BIO是最传统的I/O模型,它基于阻塞式I/O操作。在BIO中,每个I/O操作都会阻塞当前线程,直到该操作完成。缓冲流通过在内存中创建一个缓冲区(Buffer),将数据先存储在缓冲区中,然后批量地进行读取或写入操作,减少了频繁的磁盘或网络访问,从而提高了性能。3.使用流对象的相关方法进行读取或写入操作,例如使用 read() 方法读取字节数据,或使用 write() 方法写入字节数据。

2023-08-13 17:37:50 35

原创 Map接口详解

Map接口以及实现类的讲解和内外比较器的讲解

2023-08-09 19:00:52 648

原创 iterator迭代器应用场景分类

总结来说,只要实现了Iterable接口的集合,都可以通过迭代器进行遍历。迭代器提供了一种通用的遍历方式,适用于多种集合类型,并提供了方便的操作方法,如 next()、hasNext()、remove() 等。在使用自定义的迭代器之前,你需要实现迭代器中的hasNext() 和 next() 方法,并提供适当的逻辑来返回下一个元素。也就是:但是上面的迭代器功能并不完整 ,下面我们通过一个例子,来演示自定义迭代器} };// 处理元素的逻辑 }

2023-08-09 10:20:50 98

原创 Collection集合之子接口Set

元素的顺序:List 是有序集合,可以按照元素添加的顺序访问和获取元素。而 Set 是无序集合,不保证元素的顺序,不能通过索引访问元素。元素的唯一性:List 允许存储重复元素,可以通过索引访问和修改相同值的元素。而 Set不允许存储重复元素,每个元素在集合中只能出现一次。接口的实现类:Java 提供了多个 List 和 Set 的实现类。常见的 List 实现类有ArrayListLinkedList等;常见的 Set 实现类有HashSetTreeSet等。

2023-08-08 19:04:24 84

原创 枚举和注解

要获取方法的注解,您可以使用 Java 的反射机制。方法获取该方法上的所有注解。我们遍历这些注解,并筛选出我们感兴趣的。请注意,为了演示目的,我使用了一个自定义注解。您可以根据您自己的需要修改和使用相应的注解。在上面的例子中,我们定义了一个自定义注解。方法获取方法对象,然后使用。注解,然后访问注解的属性。方法中,我们首先使用。使用枚举表示线程状态。

2023-08-07 20:15:24 28

原创 集合Collection接口的子接口List

Collection 接口是 Java 集合框架中的根接口,它是所有集合类的父接口。它定义了一些通用的方法和行为,用于操作和管理集合中的元素。方法用于向集合中添加一个元素,方法用于从集合中删除指定元素,clear()方法用于清空集合中的所有元素。方法用于判断集合是否包含指定元素,isEmpty()方法用于判断集合是否为空。size()方法用于获取集合中元素的个数。iterator()方法返回一个用于遍历集合元素的迭代器。toArray()方法将集合转换为数组。

2023-08-07 20:03:45 177

原创 正则表达式

正则表达式概述

2023-08-03 18:41:31 71

原创 一些常用类

一些常用类的理解与分享

2023-08-02 19:54:05 54

原创 线程池简述

线程池是一种用于管理和复用线程的机制,它可以在需要执行多个任务时,通过维护一定数量的线程来提供并发执行的能力。线程池可以有效控制线程的创建、销毁和复用,从而减少线程创建与销毁的开销,并且能够更好地管理系统资源,提高应用程序的性能和效率。1.提高系统性能:通过复用线程,减少线程创建和销毁的开销,并且可以控制并发线程的数量,避免系统资源耗尽。2.提高响应速度:线程池可以快速地获取可用线程来执行任务,减少任务等待的时间,提高应用程序的响应速度。3.提供线程管理和监控:线程池提供了对线程的管理和监控功能,可以监

2023-08-01 19:19:34 149 1

原创 java多线程之锁简述

java多线程中锁的概述

2023-07-31 17:24:35 100

原创 java之多线程02

执行join方法后:在Java中,可以使用Thread类的join()方法来实现线程合并(也称为线程等待)。线程合并指的是某个线程执行完毕后再继续执行。join()方法用于等待调用它的线程执行完毕。具体地,当一个线程调用另一个线程的join()方法时,它将会等待被调用线程执行完毕后再继续执行。在上面的代码中,myThread1和myThread2是两个并行执行的线程。通过调用它们各自的join()方法,主线程会等待这两个线程执行完毕后再继续执行。

2023-07-27 17:15:35 61 1

原创 java之多线程

1.程序(Program):程序是一组指令的有序集合,用于实现特定任务或完成特定功能。它通常以文件的形式存储在硬盘上,并被操作系统加载到内存中执行。程序本身是静态的,只有在执行时才变为动态状态。2.进程(Process):进程是计算机中正在运行的程序的实例。它是操作系统进行资源分配和调度的基本单位。每个进程都有自己的地址空间、内存、文件句柄等资源。进程之间相互独立,彼此隔离,各自运行在自己的虚拟环境中。3.线程(Thread):线程是进程内的一个执行单元,负责执行程序中的代码。

2023-07-26 20:03:05 61 1

原创 Java基础之异常处理

异常:在java语言中,将程序执行中发生的不正常情况称为"异常"。(开发过程中的语法和逻辑错误不是异常)

2023-07-25 20:32:39 35

原创 JVM面试题

类变量使用static修饰符修饰,定义在方法外的变量,随着java进程产生和销毁在java7之前把静态变量存放于方法区,在java7时存放在堆中。

2023-07-25 19:37:53 484

原创 java基础之面向对象02

在java类中,可用static修饰属性 ,方法,代码块,内部类。类方法,类中使用static修饰的方法测试可以看到被static修饰的nation被修改后即使我们要输出马龙这个对象的nation也是最终修改成的中国。需要注意的是:静态变量是与类本身关联的,因此它的值在整个类中是共享的。这意味着当一个静态变量的值被修改后,它对所有的实例对象和其他使用该静态变量的地方都会生效。这也是静态变量常用于表示全局或共享状态的原因之一。

2023-07-24 19:03:30 67 2

原创 java基础03-面向对象

面向过程(Procedural Programming)和面向对象(Object-Oriented Programming,简称 OOP)是两种不同的编程范式。面向对象是一种以对象为中心的编程思想。它将程序视为对象的集合,每个对象都有自己的状态(属性)和行为(方法)。在面向对象编程中,数据和操作是紧密相关的,并通过封装、继承和多态等机制实现代码的组织和复用。主要特点包括:1.以对象为核心:程序由多个相互交互的对象组成,每个对象都有自己的属性和方法。

2023-07-20 20:11:43 716 1

原创 java基础02

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。简单理解就是内存中一块空间的表示。由于该存储单元中的数据可以发生改变,因此得名为"变量"。

2023-07-18 20:34:14 165 1

原创 初学maven工具

maven工具介绍

2023-07-16 14:26:30 88 1

原创 Git的常见命令和远程库操作

git常见命令和远程库以gitee为例的操作,还有版本冲突的解释与初学常见问题的应对

2023-07-12 20:42:52 2172 2

原创 Git入门指南:本地文件的版本控制演示及远程仓库链接

在软件开发和团队协作中,版本控制系统是不可或缺的工具。Git作为最流行的分布式版本控制系统之一,提供了强大的功能和灵活的使用方式。本文将以我自己的文件路径为例,介绍如何通过Git进行版本控制和管理。**

2023-07-11 20:44:22 439

原创 linux中的jdk,tomcat,mysql安装讲解

linux中jdk的下载配置,tomcat的下载安装,mysql的下载安装

2023-07-10 19:20:08 83 1

原创 linux之权限管理详解

linux中一切皆文件,root用户拥有最高权限,但是对于其他用户来说,一些文件是只能读或者写,下面让我们来了解一下文件的权限。

2023-07-10 18:48:37 69 1

原创 常用命令与用户和组管理

一些linux命令

2023-07-09 16:23:57 75 1

空空如也

空空如也

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

TA关注的人

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