自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【文档搜素引擎】文档搜素引擎的项目测试报告

2025-07-16 20:36:40 143

原创 [抽奖系统]抽奖系统的项目测试报告

2025-07-16 20:35:15 117

原创 JDBC编程

JDBC(Java Data Base Connectivity, Java数据库连接)是Java程序和数据库之间的桥梁,包含了⼀套Java定义的⽤于执⾏SQL语句的接⼝,使开发者能够编写数据库的程序。JDBC 的主要作⽤是:与数据库建⽴连接、发送SQL语句和处理数据库执⾏结果。JDBC的应⽤场景JDBC⼯作原理JDBC⼯作原理简洁地概括为:加载驱动、建⽴连接、创建Statement、执SQL、处理结果和关闭资源。

2024-11-30 20:09:54 1502

原创 数据库的⽤户和权限管理

在真实的使⽤过程中,通常每个应⽤对应着⼀个数据库,我们只希望某个⽤户只能操纵和管理当前应⽤对应的那个数据库,⽽不能操纵和管理其他应⽤的数据库,这时就可以添加⼀个⽤户并指定⽤户的权限。• priv_level: * |* . * | db_name.* | db_name.tbl_name | tbl_name,⽐如*.*表⽰所有数据库下的所有表。• 为star@localhost⽤户授权于java03数据库的所有权限。

2024-11-30 16:39:24 2044

原创 数据库中的事务

事务把⼀组SQL语句打包成为⼀个整体,在这组SQL的执⾏过程中,要么全部成功,要么全部失败。这组SQL语句可以是⼀条也可以是多条。来看⼀个转账的例⼦,如图:# ================账户表====================`name` varchar(255) NOT NULL, # 姓名`balance` decimal(10, 2) NOT NULL # 余额。

2024-11-30 15:22:15 967

原创 MySQL数据库中的索引

MySQL的索引是⼀种数据结构,它可以帮助数据库⾼效地查询、更新数据表中的数据。索引通过⼀定的规则排列数据表中的记录,使得对表的查询可以通过对索引的搜索来加快速度。MySQL 索引类似于书籍的⽬录,通过指向数据⾏的位置,可以快速定位和访问表中的数据,⽐如汉语字典的⽬录(索引)⻚,我们可以按笔画、偏旁部⾸、拼⾳等排序的⽬录(索引)快速查找到需要的字。B+树是⼀种经常⽤于数据库和⽂件系统等场合的平衡查找树,MySQL索引采⽤的数据结构,以4阶。

2024-11-29 10:44:17 926

原创 数据库中的视图

视图是⼀个虚拟的表,它是基于⼀个或多个基本表或其他视图的查询结果集。视图本⾝不存储数据,⽽是通过执⾏查询来动态⽣成数据。⽤户可以像操作普通表⼀样使⽤视图进⾏查询、更新和管理。视图本⾝并不占⽤物理存储空间,它仅仅是⼀个查询的逻辑表⽰,物理上它依赖于基础表中的数据。

2024-11-26 18:24:25 740

原创 数据库的联合查询

在数据设计时由于范式的要求,数据被拆分到多个表中,那么要查询⼀个条数据的完整信息,就要从多个表中获取数据,如下图所⽰:要获取学⽣的基本信息和班级信息就要从学⽣表和班级表中获取,这时就需要使⽤联合查询,这⾥的联合指的是多个表的组合。

2024-11-25 23:12:58 1436

原创 数据库中的增删改查操作、聚合函数、内置函数、分组查询

CURD是对数据库中的记录进⾏基本的增删改查操作:• Create (创建)• Retrieve (读取)• Update (更新)• Delete (删除)

2024-11-23 17:45:29 1501

原创 数据库设计

• 数据库表的每⼀列都是不可分割的原⼦数据项,⽽不能是集合,数组,对象等⾮原⼦数据。• 在关系型数据库的设计中,满⾜第⼀范式是对关系模式的基本要求。不满⾜第⼀范式的数据库就不能被称为关系数据库在满⾜第⼀范式的基础上,不存在⾮关键字段对任意候选键的部分函数依赖。存在于表中定义了复合主键的情况下。候选键:可以唯⼀标识⼀⾏数据的列或列的组合,可以从候选键中选⼀个或多个当做表的主键在满⾜第⼆范式的基础上,不存在⾮关键字段,对任⼀候选键的传递依赖。

2024-11-22 00:26:39 742

原创 数据库约束

数据库约束是指对数据库表中的数据所施加的规则或条件,⽤于确保数据的准确性和可靠性。这些约束可以是基于数据类型、值范围、唯⼀性、⾮空等规则,以确保数据的正确性和相容性。

2024-11-21 17:27:08 1453

原创 数据库中表的操作

在项⽬的实际开发中,随着版本的迭代和需求的变更,经常会对表结构进⾏调整,⽐如向现有表中添。加列,删除列,或者修改某列的列名、数据类型或⻓度,这时就需要对表进⾏修改操作。• TEMPORARY: 表⽰创建的是⼀个临时表。• 删除表成功后,磁盘上对应的数据⽂件也会被删除。客户表:表名为customer,表中包含的列如下。• 商品表:表名为goods,表中包含的列如下。• ⼀次可以删除多个表,表与表之间⽤逗号隔开。

2024-11-18 20:45:17 1371

原创 SQL语言的数据类型

个实体对应⼀张表,表中的每条记录(数据⾏)就是实体的⼀个实例,每条记录⼜包含若⼲字段(或称为。念,对应到数据库中的概念就是实体,类中的属性对应实体中的属性。实体通常以表的形式存在,每。如果要定义实体的属性,就要为属性命名并指定合适的数据类型。与其他编程语⾔类似,SQL中。在⾯向对象软件开发的过程中,通常会先进⾏需求分析从⽽得到类和属性,类是⾯向对象中的概。规定了⽤于描述属性的数据类型。列),每个字段代表实体的⼀个属性。

2024-11-18 17:41:58 1355

原创 数据库中库的操作

以上是MySQL自带的数据库记录是一些关于MYSQL自身的一些配置,性能,系统变量信息不明白具体作用的千万不要改动 ,更不能删除如果说改错了或是删除了,MYSQL就无法启动了如果没有备份的情况下,那么就只能重新安装数据库服务了自己创建的数据库,每个库都要起一个不同的名字(名字不能重复)如果第一行没有写分号,按回车之后就会另起一行,继续去写未完成的SQL,直到遇见分号为止⽰例创建⼀个名为test+班级号的数据库1.先看一下当前有没有要创建的数据库2.根据语法规则创建一个名字为te

2024-11-18 14:20:02 1086

原创 数据库基础

数据库是组织和保存数据的应用程序数据库的底层用了一些合适的数据结构对数据进行组织,以便以后进行增删改查数据库技术主要是⽤来解决数据处理的⾮数值计算问题,数据处理的主要内容是数据的存储、查询、修改、排序和统计等。关系型数据库是指采⽤了关系模型来组织数据的数据库,以⾏和列的形式存储数据。关系模型可以简单理解为⼆维表格模型,⽽⼀个关系型数据库就是由⼆维表及其之间的关系组成的⼀个数据组织每个表中的每⼀条记录称为⼀⾏数据,每⼀个数据⾏由⼀个或多个列组成。

2024-11-18 11:24:39 1047

原创 MySQL的安装

下载的过程中,可能会让你登录Oracle网站,如果没有Oracle的账⼾,注册⼀个即可。1.2.3.这样就可以顺利下载。

2024-11-14 21:10:42 544

原创 反射、枚举以及lambda表达式

java的反射(reflectiom)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意的一个对象,都能够调用它的任意方法和属性,既然能拿到,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。反射的意义反射重要的几个类:Class类、Field类、Method类、Constructor类学会合理利用反射,一定要在安全环境下使用。枚举是在JDK1.5以后引入的。

2024-11-14 19:57:53 833

原创 字符串常量池

在java程序中,类似于:1,2,3,4,3.14,"hello"等字面类型的常量经常频繁使用,为了使程序的运行速度更快,更节省内存,java为8种基本数据类型和String类都提供了常量池。方式二就是池化技术的一种示例,钱放在银行卡上,随用随取,效率非常高。“池”是编程中的一种常见的,重要的提升效率的方式,如“内存池”,“线程池”“数据库连接池”…上述程序创建方式类似,为什么s1和s2引用的是同一个对象,而s3和s4不是呢?

2024-11-12 13:11:04 816

原创 java中的泛型

一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。------来源《java编程思想》对泛型的介绍泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型,从代码上讲,就是对类型实现了参数化。方法限定符<类型形参列表> 返回值类型 方法名称(形参列表){...};

2024-11-12 13:10:14 749

原创 Map和Set

开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归同一子集合,每一个集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头节点存储在哈希表中。虽然哈希表一直在和冲突作斗争,但在实际使用过程中,哈希表的冲突率是不高的,冲突个数是可控的,也就是每个桶中的链表的长度是一个常数,所以通常意义下认为哈希表的插入/删除/查找时间复杂度是O(1)。哈希表底层数组的容量往往是小于实际要存储的关键字的数量的,这就导致一个问题,冲突的发生是必然的,我们应尽量的降低冲突率。

2024-11-11 14:08:08 820

原创 排序(用java实现)

排序排序的概念及引用排序的概念常见的排序算法常见排序算法的实现插入排序基本思想:直接插入排序希尔排序(缩小增量排序)选择排序基本思想:直接选择排序堆排序交换排序冒泡排序快速排序快速排序的优化快速排序非递归归并排序基本思想归并排序归并排序的非递归海量数据的排序问题排序算法复杂度及稳定性分析其他非基于比较排序选择题排序的概念及引用排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字记录,若经过排

2024-11-05 19:20:20 1318

原创 Java对象的比较

因为对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equal方法,而 == 默认情况下调用的就是equal方法,但是该方法的比较规则是:没有比较引用变量引用对象的内容,而是直接比较引用变量的地址,但有些情况下该种比较就不符合题意。优先级队列底层使用堆,而向堆中插入元素时,为了满足堆的性质,必须要进行元素的比较,而此时Card是没有办法直接进行比较的,因此抛出异常。覆写基类equal的方式虽然可以比较,但缺陷是:equal只能按照相等进行比较,不能按照大于、小于的方式进行比较。

2024-10-31 22:37:12 643

原创 PriorityQueue优先级队列(堆)

java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,这篇文章主要介绍PriorityQueue使用时必须导入PriorityQueue所在的包,即:PriorityQueue中放置的元素必须能够比较大小,不能插入无法比较大小的对象,否则会抛出ClassCastException异常。

2024-10-31 17:09:15 974

原创 java中的二叉树

二叉树树型结构概念相关概念树的表示形式树的应用二叉树概念两种特殊的二叉树二叉树的性质二叉树的存储二叉树的基本操作前置说明二叉树的遍历二叉树的基本操作二叉树相关OJ题树型结构概念树是一种非线性的的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合,将它叫做树是因为看它起来像一棵倒挂的树,也就是根朝上,叶朝下。它具有以下特点:有一个特殊的结点,称为根节点,根节点没有前驱节点除根节点外,其余节点被分成M(M > 0)个互不相交的集合T1、T2、······、Tm,其中每一个

2024-10-28 22:32:07 1132

原创 java中的队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)入队列:进行插入操作的一端称为队尾(Tail/Rear),出队列:进行删除操作的一端称为队头(Head/Front)双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque是"double ended queue"的简称,说明元素可以从队头出队和入队,也可以从队尾出队和入队。在实际工程中,使用Deque接口是比较多的,栈和队列均可以使用该接口。

2024-10-16 00:10:54 1170

原创 java中的栈(Stack)

从上图可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的。如果采用尾插法入栈,入栈时间复杂度为O(N),如果有last那么是O(1),但是出栈操作一定是O(n)栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。如果采用头插法入栈,入栈的时间复杂度是O(1),同时出栈复杂度是O(1)结论:如果采用单链表来实现栈,那么可以采用头插法的形式入栈和出栈。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。

2024-10-13 17:44:38 1138

原创 java的LinkedList

LinkedList的官方文档LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的结点中,然后通过引用将结点连接起来了,因此在任意位置插入或删除元素时,不需要搬移元素,效率比较高。LinkedList实现了List接口LinkedList的底层使用了双向链表LinkedList没有实现RandomAccess接口,因此LinkedList不支持随机访问LinkedList的任意位置插入和删除元素时效率比较高,时间复杂度为O(1)

2024-10-09 20:22:44 1479

原创 java实现的无头单向非循环链表

接下来实现任意位置插入的方法,第一个数据节点为0号下标,任意位置插入涉及尾插,头插,还有中间插入,中间插入需要修改前后指向,所以需要找到插入位置的前一个,就可以实现互相绑定,而且绑定有一个规律:所有的绑定,优先绑定后面。还有我们要考虑到任意位置,是所有位置吗,我们还需要对index进行检查,不能小于0,也不能大于size();链式结构在逻辑上是连续的,但是在物理上不一定连续,现实中的结点一般是从堆上申请出来的,从堆上申请的空间,是按照一定的策略来分配的,两次申请的空间可能连续,也可能不连续。

2024-10-01 08:35:37 1108 1

原创 Java中List、ArrayList与顺序表

在集合框架中,List是一个接口,继承自Collection。Collection 也是一个接口,该接口中规范了后序容器中常用的一些方法,具体如下所示:List的官方文档在数据结构的角度看,List就是一个线性表,即n个具有相同类型元素的有限序列,在该序列上可以进行增删查改以及变量等操作。方法解释booleanadd(E e)尾插 evoidadd将 e 插入到 index 位置booleanaddAll尾插 c 中的元素Eremove删除 index 位置元素boolean。

2024-09-21 16:54:36 1140

原创 JDK17新增语法特性

从springboot3.0开始,已经不支持JDK8,转变为JDK17参考资料:官方博客。

2024-09-20 15:32:13 1107

原创 认识泛型和包装类

一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。------来源《java编程思想》对泛型的介绍泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型,从代码上讲,就是对类型实现了参数化。方法限定符<类型形参列表> 返回值类型 方法名称(形参列表){...};

2024-09-13 21:40:13 807

原创 时间和空间复杂度

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度,空间复杂度不是程序占用了多少bytes的空间,因为这个也没多大意义,所以空间复杂度算的是变量的个数。时间复杂度的定义:在计算机科学上,算法的时间复杂度是一个数学函数,它定量描述了该算法的运行时间。一个算法所花费的时间与其中语句的执行次数成正比,算法中基本操作的执行次数,为算法的时间复杂度。递归调用了N- 1次,开辟了N- 1个栈帧,每个栈帧使用了常数个空间,空间复杂度为O(N)使用大O的渐进表示法以后,func1的时间复杂度为:O(N。

2024-09-13 16:54:16 729

原创 认识异常类

java中虽然已经内置了丰富的异常类,但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构。需求:用户登录if(!if(!System.out.println("登录成功");usr1.setName("张三");usr1.loginInfo("张三","123456");//运行结果://登录成功此时我们在处理用户名密码错误的时候就可能需要抛出两种异常,我们就可以基于已有的异常类进行拓展(继承),创建和我们业务相关的异常类。

2024-09-12 21:29:39 506

原创 String类

在C语言中已经涉及到了字符串,但是在C语言中要表示字符串只能使用字符数组或者字符指针,而在Java中String是字符串类型,在C语言当中是没有字符串类型的,String类型是一种引用数据类型,内部并不存储字符串本身。上述例子我们可以看出String和StringBuilder的最大区别是String的内容无法修改,而StringBulider的内容可以修改,频繁修改字符串的情况可以考虑使用StringBuilder。trim()会去掉字符串开头和结尾的空白字符(空格,制表符,换行符)

2024-09-10 20:55:12 1157

原创 java抽象类和接口

中的代码例子中的 Animal 类中并没有实际意义的方法,在之后的子类都进行了重写,而且该类并不能直接表示某种动物,例如狗叫是汪汪汪,猫叫是喵喵喵,并不能表示直接具体的动物,所以该类可以设计为抽象类。在面向对象的概念中,所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描述对象的,如果一个类中没有足够的信息来描绘一个具体的对象,这样的类就是抽象类。我们进一步思考,我们可以发现和以前的普通整数不一样,整数是可以直接比较的,大小关系明确,而两个学生对象的大小关系怎么确定,需要我们额外指定。

2024-09-05 11:25:57 479

原创 java继承和多态

在子类构造方法中,并没有写任何关于基类构造的代码,但是在构造子类对象时,先执行基类的构造方法,然后执行子类的构造方法,因为:子类对象中成员是有两部分组成的,基类继承下来的以及子类新增加的部分。java中使用类对现实世界中的实体来进行描述,类经过实例化之后的产物是对象,对象则可以用来表示现实中的实体,但是现实世界比较复杂,事物之间可能存在关联,可能会导致程序代码重复冗余,比如:狗和猫都是动物,存在相同的属性和行为,所以设计程序时就需要考虑如何使代码复用,所以出现了继承。即外壳不变,核心重写!

2024-08-18 23:41:13 671

原创 java类和对象

java是一门纯面向对象的语言,在面向对象的世界里,一切皆为对象,面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事。面向对象程序设计关注的是对象,而对象是现实中的一个实体,比如学生,但是计算机并不认识学生这个对象,所以需要程序员来告诉计算机什么是学生,所以我们需要对学生进行简单的描述。定义一个类相当于在计算机中定义了一种新的类型,与int,double类似,只不过int和double是java语言自带的内置类型,而类是用户自定义了一个新的类型,有了这些类就可以使用这些类来定义实例(或者对象)

2024-07-27 19:58:30 825

原创 java数组的定义与使用

数组:是相同类型元素的一个集合,在内存中是一段连续空间数组中存放的元素其类型相同数组的空间是连在一起的每个空间有自己的编号,起始位置的编号为0,即数组的下标。

2024-07-15 23:22:42 1337

原创 java中方法的使用

方法就是一个代码片段,类似于C语言的函数。是能够模块化的组织代码(当代码规模比较复杂的时候)做到代码被重复使用,一份代码可以在多个位置使用让代码更好理解更简单直接调用现有方法使用,不用重复写一份代码//方法定义修饰符 返回值类型 方法名称([参数类型 形参...]){方法体代码;[return 返回值];例子1:实现一个函数,用于检测年份是否为闰年System.out.println("是闰年");}else{System.out.println("不是闰年");

2024-07-10 07:42:44 840

原创 java逻辑控制

当循环输入多个数据的时候,使用ctrl+z来结束输入(Windows上使用ctrl+z,Linux/Mac上使用ctrl+d)如果布尔表达式1结果为true时,则执行语句1,否则若布尔表达式2结果为true,执行语句2,否则执行else中的语句3。while的语句体是一个空语句,实际的{}部分与循环无关,此时num <= 10 恒成立,导致代码死循环。如果布尔表达式结果为true时,则执行语句1,否则执行else中的语句2。先执行循环语句,再判定循环条件,循环条件成立则继续执行,否则循环结束。

2024-07-08 13:46:53 1086 1

空空如也

空空如也

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

TA关注的人

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