自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL数据库|联合查询

查询同学的每门课程成绩,及同学的个人信息1.确定要参与查询的表学生表,课程表,成绩表2.取笛卡尔积MySQL在10ms之内就把这个查询执行完了显示这么慢的原因并不是MYSQL执行有什么问题,也不是SQL语句的编写有什么问题,而是CMD本身的显示问题也可以通过表结构来查看连接条件4.确定查询过滤条件where不需要5.精简查询字段也可以使用过join on的方式来查询。

2026-04-02 18:30:58 314

原创 MySQL数据库|表设计+新增+分组查询

范式描述的是数据关系的模型,一对一关系,一对多关系,多对多关系分类:第一范式:1NF,第二范式:2NF,第三范式:3NF其余范式:BC范式,BCNF。

2026-03-31 10:08:49 381

原创 MySQL|约束

数据库约束是关系型数据库的重要功能主要作用是保证数据的完整性,也可以理解数据的正确性,关联关系是否正确人工检查数据完整性的工作量非常的大,在数据库中定义一些约束,那么数据库写入数据的时候,数据库会帮我们做校验工作。

2026-03-28 12:25:35 344

原创 MySQL数据库|CRUD

1.新增 - 插入insert into 表名2.查询操作select 列名 from 表名3.修改update 表名4.删除delete from 表名。

2026-03-26 21:19:03 376

原创 MySQL数据库|建库&建表&数据类型

数据库服务中有多个数据库,一个数据库中有多个表,一个表中有多个行,一个行有多个列组成create databases 数据库名;create databases if not exists 数据库名;建议在创建数据库的时候指定编码集和排序规则create databases if not exists character set utf8mb4 collate utf8mb4_0900_ai_ci(MYSQL8.0版本固定写法)不能用MySQL的关键字来创建库名,除非用反引号引起来。

2026-03-22 22:32:34 393

原创 Java数据结构|String类(二)+反射枚举Lambda+泛型的进阶

所有双引号引起来的内容都会放在常量池里面。

2026-03-13 09:17:14 349

原创 Java数据结构|Map&Set(完)+String(一)

数组中的每个元素是链表的头节点,则这个数组是链表数组每次push完都要对负载因子与usedSize进行比较扩容后要对每个节点进行遍历经过调试后,发现代码可以正常扩容当出现引用类型的key时,应该如何去处理可以通过定义泛型类型的哈希桶来解决这个问题对于自定类型的类,在没有重写hashCode与equals的情况下,输入相同的数据,直接对类型比较时,是输出不了true的只能自己去重写hashCode与equals方法才能实现输出相同的情况。

2026-03-10 11:29:35 232

原创 Java数据结构|map&set(一)

map与set用在搜索相关的场景。

2026-03-08 13:49:32 624

原创 Java的数据结构|排序(三)

1.三数取中法三数取中法选key找到left,mid和right的中位数,并于start进行交换2. 递归到小的子区间时,可以考虑使用插入排序在快速排序时,相遇就会停止递归,但对于真正的二叉树而言,层数越往后节点越多,排序越往后越快而且越有序,想降低递归的次数,可以最后几层不递归,考虑直接插入排序通过以上两种方法可以有效减少快速递归的次数。

2026-03-06 12:36:57 317

原创 Java数据结构|排序(二)

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

2026-03-04 23:33:50 304

原创 Java数据结构|堆(完)+对象的比较+排序(一)

1. 优先级队列的构造要将默认的小根堆形式转换为大根堆形式,可以通过修改比较器的形式来进行大根堆的排列修改的类要实现Comparator接口,如果是o1-o2是小根堆的排列形式Integer是引用类型,不能直接去减,通过o2.compareTo(o1)实现大根堆此时就实现了大根堆的排列形式PriorityQueue的扩容方式优先级队列的扩容说明:如果容量小于64时,是按照oldCapacity的2倍方式扩容的如果容量大于等于64,是按照oldCapacity的1.5倍方式扩容的。

2026-03-03 20:24:05 486

原创 Java数据结构|堆(一)

kn-1},把它的所有元素按完全二叉树的顺序存储方式存储 在一 个一维数组中,并满足:Ki = K2i+1 且 Ki >= K2i+2) i = 0,1,2…将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。堆的删除以优先删除最高节点的数,通过将第一位与最后一位交换位置,再usedSize--来自动删除(实际上是忽略最后一个位置的数据)时间复杂度分析: 最坏的情况即图示的情况,从根一路比较到叶子,比较的次数为完全二叉树的高度,即时间复杂度为。所以堆的删除用到了向下调整。

2026-03-02 15:59:36 559

原创 Java数据结构|二叉树(三)---练习

9. 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。10. 根据一棵树的前序遍历与中序遍历构造二叉树。11. 根据一棵树的中序遍历与后序遍历构造二叉树。root共有节点r个,subRoot共有节点s个。4. 判断一颗二叉树是否是平衡二叉树。13. 二叉树前序非递归遍历实现。14. 二叉树中序非递归遍历实现。15. 二叉树后序非递归遍历实现。7. 二叉树的构建及遍历。8. 二叉树的分层遍历。时间复杂度:O(r*s)时间复杂度为O(n*2)2. 另一颗树的子树。时间复杂度为O(n)

2026-02-27 22:24:55 25

原创 二叉树(二)

对于上篇提到的对任何一颗二叉树,如果其叶节点个数为n0,度为2的非叶节点个数为n2,则有n0=n2+1,我们可此证明:根据一棵N个节点的树有N-1条边二叉树的节点:n0:是否可以产生边?产生不了边0;n1:产生n1条边n2:产生2*n2条边由以上两个式子可得:n0+n1+n2=N可得:n2+1=n0。

2026-02-21 20:57:44 270

原创 Java数据结构|栈队列(完)+二叉树(一)

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头 (Head/Front)队列的使用列表的模拟实现单链表实现如果单链表加上一个标记尾节点的引用,入队可以采用尾插法,出队可以采用删除头节点注意:就算有尾节点的标记,也不能从头节点入队,因为删除还是需要找最后一个节点的前一个节点双向链表实现。

2026-02-13 16:15:31 766

原创 Java数据结构|链表(完)+栈队列

removeremoveAll移除remove中的return;即可clear。

2026-02-11 23:06:49 781

原创 Java数据结构|链表(二)

1. 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。实例化的头节点没有意义,因为返回是返回的是新的头节点建议用display2,来从指定位置来开始打印2. 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。分链表法---bs,be,as,ae注意as与ae出现空指针异常地原因3. 链表的回文结构前提---不能申请额外的内存,即创建数组三步1.找到中间节点2.翻转3.判断。

2026-02-10 18:38:52 703

原创 Java数据结构|链表(一)

由于ArrayList其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后 搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。因此:java 集合中又引入了LinkedList,即链表结构。链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。物理上连续的例子:数组链表是由一个一个节点组成,节点也是对象,一个节点包含val和next域,

2026-02-08 19:33:17 308

原创 Java数据结构|顺序表(完)

顺序表的优点,给定下标,调查速度最快O(N);缺点,删除和插入慢O(N)通过自己来引用对象和接口来引用对象(List和ArrayList,其中List是接口)只要实现这个接口的都可以引用,向上转型,局限性,通过这个接口只能调用这个接口当中包含的方法,Arraylist新增的方法无法通过list来调用通过list这个引用,可以调用当前类的所有可以被调用的方法。

2026-02-07 19:20:58 63

原创 Java数据结构 | 泛型(完)+ArrayList与顺序表

E被擦除为Object类,是引用类型,不能直接通过大小来比较implement让这个类具有一些性质,接入comparable接口,使其具有可比性<E extends Comparable<E>>与<E extends Comparable>区别:加E 是指泛型参数 E 必须实现 Comparable 接口,且这个接口的泛型参数必须是 E 本身。更推荐加<E>这种写法extend也是使其具有一些性质,也能在泛型里实现接口的作用,例如comparable接口。

2026-02-04 10:39:36 862

原创 JDK17语法新增特性

yield关键字,从Java13开始引⼊。yield关键字⽤于从case的代码块中返回值。正常的switch语句简化后的switch。

2026-02-02 19:22:51 468

原创 Java数据结构|数据结构基础准备知识

时间和空间复杂度:时间效率被称为时间复杂度,而空间效率被称作 空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间时间复杂度:算法的时间复杂度是一个数学函数。算法中的基本操作的执行次数,为算法的时间复杂度。时间复杂度的计算方法:大O的渐进表示法1、用常数1取代运行时间中的所有加法常数。2、在修改后的运行次数函数中,只保留最高阶项。3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

2026-02-01 10:52:40 716

原创 认识Java中的异常

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我 们实际情况的异常结构.以用户登录为例此时我们想自定义用户账户和密码异常,可以定义一个异常类继承​​​​​​​RuntimeException,并且重写两个构造方法继承RuntimeException和Exception的不同继承RuntimeException,异常为编译时异常或者受查异常。继承Exception,异常为运行时异常或者非受查异常。解决方法如下。

2026-01-30 19:58:18 817

原创 字符串构造,String对象的比较,字符串查找(序列化),转化(序列化与反序列化),替换,拆分,截取,修改和不可变性,其他操作方法,StringBuilder和StringBuffer

数值转字符串:String.valueOf(实例化一个新对象的话,要加入Tostring方法,否则会直接输出对象的地址)(通过类来调用方法,则这个方法是静态方法,例如此处的valueOf)注意:尽量避免直接对String类型对象进行修改,因为String类是不能修改的,所有的修改都会创建新对象,效率 非常低下。直接比较s1,s2,s3,其实比较的是三个对象的地址,而通过equals是比较的三个对象的内容。在对一个String类对象处理时,本身不改变的原因不是final,可以通过一个数组的例子来证明。

2026-01-28 19:31:28 970

原创 接口的使用实例,toString和Constructor,equals和compareTo的返回值类型,Arrays.sort(模拟实现)和Arrays.copyOf,用方法交换数字, clone方法

首先从小到大排序,再图中我们发现比较的部分报错,这是因为Objects是引用类型的数据(comparable也同样),不能直接比较,正确方式应为调用compareTo进行比较,所以我们一开始应该使用comparable类(此处我使用Objects类是认为Objects是所有类的父类,但Objects类并没有compareTo方法)通过以上两个例子,我们不难发现comparable存在缺陷,comparable的比较方式固定,不是很灵活,不解耦,所以常常用于默认的比较。这种情况下a,b的值并没有发生交换。

2026-01-21 15:58:06 443

原创 匿名对象,接口,接口与抽象类的区别,接口的运用(包括向上和向下转型的运用),接口的特性,接口的多继承问题,接口间的继承,Object类,理解和模拟实现equals和hashcode方法,内部类

匿名对象在往往是一次调用,不同于正常去实例化一个对象,匿名对象的调用只有一次,下次再调用是又创建了一个新的对象。画黑框是匿名对象的实现方式,通过new+类()的形式。红框是正常去实现实例化一个对象,红框的每次调用都是同一个对象去调用,黑框的每次调用是再创建一个新的对象。

2026-01-11 23:19:00 880

原创 this的进一步认识,继承的要求,重写的注意事项和其注释字@override,向上转型和向下转型,动态绑定和静态绑定,构造方法的动态绑定,多态的优缺点,关键字equal和instanceof,抽象类

对于子类继承父类的情况下,在子类方法部分中,调用父类定义的成员变量时,运用this在子类的成员方法中,调用的this为父类此时定义的成员变量(就算test类给对应的成员变量赋值,所给出的值仍为父类或子类中实例代码块所给的值)。如图,当有this的子类,若成员变量未定义,所输出的值为null。(即使在test类中给name赋值)当去掉this后test类中的值就能赋给name,又或者不去掉this用实例代码块对父类的name直接赋值。

2026-01-08 15:17:47 674

原创 Java继承及其关键字,重载和重写,关键字final,代码块的优先顺序,子类和父类的构造方法,访问限制符protected,组合,多态和向上转型

子类和父类同时存在带有参数的构造方法时,需要先对父类填充参数,正如“现有父,后有子”。当对子类进行访问时采取就近原则,意思是当子类存在要访问的对象时,就在子类进行访问,子类没有再去父类里寻找。

2026-01-05 16:38:29 383

原创 Java代码块,内部类的现象和继承

这是Java内部类的实现,在idea中可以通过右键指定区域找到generate,然后再点击Tostring,接着选择可访问的成员变量(注意:静态成员变量不可选择),便完成了。这是关于实例代码块与静态代码块的创建(代码块的创建要在类的里面,方法的外面)第一张是子类,第二张图是父类,第三张是测试代码,结果如下。

2026-01-01 21:30:28 130

原创 【无标题】

小白的自我介绍

2025-11-17 17:49:36 96

空空如也

空空如也

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

TA关注的人

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