自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【MySQL】(6) 数据库约束

就是自动对数据、表间关联关系的正确性校验,一般在列上加约束。 限制数据值不能为 null,比如学生姓名: 限制数据值唯一,比如 id: 但是 unique 限制的 id 可以有重复的 null: 限制数据唯一且不为空,可以由一个或多个列组成,用于唯一标识数据行,建议每个表都有一个主键,但一个表最多只能有一个主键,最多只能有一个 auto_increment 列,主键类型建议为 bigint。 插入数据: 当插入失败时(比如设

2025-03-16 18:14:49 953

原创 【MySQL】(5) 数据行的增删改查操作

就是对数据库中(一行)的增删改查。

2025-03-16 15:19:01 1024

原创 【MySQL】(4) 表的操作

语法:示例:生成的数据目录下的文件:语法:示例:语法:删表是危险操作,尽量别用。 .sql 脚本: 查询客户端工具: 或: 补充,三种注释: 出现错误: 原因,客户端和服务器的字符集不匹配: 客户端连接服务器时,指定默认字符集与服务器一致: 脚本执行成功: 如果不想每次连接服务器,都设置字符集: 方法1:使用 MySQL 自带的 Unicode 命令行客户端:

2025-03-09 19:08:03 322

原创 【MySQL】(3) 数据类型

同一个东西,在不同领域中有不同的叫法:定义实体的属性,取名+指定数据类型,本文讲数据库中的数据类型。

2025-03-04 18:04:13 919

原创 【MySQL】(2) 库的操作

SQL 关键字,大小写不敏感。

2025-03-01 12:01:09 386

原创 【MySQL】(1) 数据库基础

就是采用关系模型(二维表)组织数据,一个关系型数据库就是由二维表之间的关系组成的数据组织。为什么要使用多个关系模型,并建立它们之间的关系?直接用一张表存储所有数据行不好吗?比如下面有两张表:想改名尖子1班为清北班,那么只需要更改班级表中的第一栏。和为一张表后:想改名尖子1班为清北班,就需要更改所有是尖子1班的学生信息。显然,这种更改效率极低。SQL 就是结构化查询语言的简称,用于存取、查询、更新、数据,管理数据库。DDL:数据定义语言,数据库级别。与开发强相关。

2025-02-27 20:36:09 726

原创 【MySQL】数据库安装

mysql 是开源的,完全免费。mysql 安装之前,防止后续安装出现问题:此电脑 >> 管理 >>运行安装包:设置过滤器,显示所有可以安装的组件:初学者最多安装这4个组件,其它的目前用不到:设置安装路径:next >> excute,开始安装组件 >> next,安装完成。

2025-02-27 19:59:58 869

原创 【数据结构】(12) 反射、枚举、lambda 表达式

一组常量,比如颜色,它们是同一类,我们想把这组常量组织在一起,就用枚举。作用是与没有意义的数字区分开来(如果定义一组常量,就要用数字表示它们)。break;默认继承了 java.lang.Enum。相当于方法,但是比方法更简化。(形参列表)->表达式(形参列表)->{代码块}// 参数类型可以省略(要省全都省),只有一个参数可以省略圆括号。// 返回一个值或者不返回值。

2025-02-23 20:59:53 1310

原创 【数据结构】(11) Map 和 Set

左子树所有结点小于根结点。右子树所有结点大于根结点。所有子树都满足以上条件。通过哈希函数,输入 key 计算 value 的存放位置,通过这种哈希方法构造的结构就叫哈希表(散列表)。因为只需要计算一次哈希函数,所以删除、插入、搜索操作都是O(1)。不同的 key,通过哈希函数,得到相同的映射。哈希冲突是必然发生的,我们需要尽可能降低哈希冲突发生的概率。通过扩容代码得知,调用无参构造方法,第一次 put 添加元素,会分配 16 大小的内存。通过扩容代码得知,正常扩容的情况,每次 2 倍扩容。

2025-02-23 15:35:39 920

原创 【数据结构】(10) 排序算法

冒泡排序在C语言部分学过,堆排序上一章学过,还剩五种常见排序算法。以下默认从小到大排序。:相同元素在排序过后,前后相对位置依旧不变。一个本身稳定的排序,可以改成不稳定的;但一个本身不稳定的排序,无法改为稳定的。

2025-02-18 14:00:05 849

原创 【数据结构】(9) 优先级队列(堆)

堆也是一种数据结构,是一棵完全二叉树,该完全二叉树中的所有子树的根都大于其孩子,即大根堆;如果都小于其孩子,就是小根堆。

2025-02-15 01:03:48 763

原创 【数据结构】(8) 二叉树

树的度为2。子树有左右之分,不能颠倒。

2025-02-12 22:38:06 1279 1

原创 【数据结构】(7) 栈和队列

队列也是一种特殊的顺序表,但只能在固定的一端(队尾,tail/rear)入队,另一端(队头,head/front)出队,具有先进先出的特点。

2025-02-08 23:16:03 1425 1

原创 【数据结构】(6) LinkedList 链表

不同点LinkedListArrayList物理存储上不连续连续随机访问效率O(N)O(1)插入、删除效率O(1)O(N)

2025-02-06 06:16:22 1105

原创 【数据结构】(5) ArrayList 顺序表

ArrayList 就是数组的封装,但是数组只有 [] 操作存取值,和 .length 操作获取数组内存长度;

2025-02-03 23:47:06 815

原创 【数据结构】(4) 线性表 List

List 是Java 中的线性表,但它只是一个接口,说明了线性表应该实现的方法,并不能实例化。List 是泛型的。

2025-02-03 18:39:55 435

原创 【数据结构】(3)包装类和泛型

一般的类和方法只能固定接收、返回一种类型的数据,但有时我们希望接收、返回很多种类型的数据。比如写一个加法器,里面的数据可以是整型、浮点型,如果使用方法重载,方法里的步骤相同,只是数据类型不同,造成代码的冗余。使用泛型可以解决这个问题,相当于将数据类型参数化,可以给同一个类或方法灵活地指定任意类型。泛型的重点在泛型类对象怎么实例化,为后续集合类的使用做铺垫。而怎么定义泛型类、怎么定义泛型方法、擦除机制、泛型上界、通配符等相比较下就不那么重要了。

2025-02-01 21:04:39 1201

原创 【数据结构】(2)时间、空间复杂度

时间复杂度衡量,空间复杂度衡量。这些指标,是某场景中。如今,计算机的存储器已经变得容易获得,所以。

2025-01-27 23:26:18 609

原创 【数据结构】(1)集合类的认识

数据结构就是,即相互之间存在一种或多种关系的数据元素的集合。

2025-01-27 21:07:46 495

原创 【JavaSE】(9) 异常

异常处理,是根据业务来写的。比如电商平台,可能存在商品库存不足、用户余额不足等异常等。此时Java 标准库提供的异常类可能不够我们使用,我们就需要根据业务自定义异常类。自定义异常类继承 Exception 类或者 RuntimeException 类。继承 Exception 类默认为受查异常;继承 RuntimeException 类默认为非受查异常。// 用户名异常类// 密码异常类// 登录if (!// 字符串构造方法,出现异常的原因if (!try {

2025-01-23 16:24:19 901

原创 【JavaSE】(8) String 类

常用的这4种构造方法:直接法,或者传参字符串字面量、字符数组、字节数组。在中,String 类的字符串中:String 类也,所以可以直接打印 String 类,打印效果就是字符串,而非 className@hashCode 的形式:可以看到源码中,重写的 toString 直接返回的 this,因为 this 本身就是字符串类,println 会对 String 类进行处理,打印出字符串:可以获取字符串长度,这区别于通过获取长度。

2025-01-21 23:00:19 1120

原创 【深度学习入门】深度学习知识点总结

有关卷积、池化、激活函数,全是干货,超详细解释,对小白十分友好。

2025-01-21 15:48:52 1294

原创 【JavaSE】(7)图书管理系统

本图书管理系统用到了 Java 的基本语法、继承、抽象类、接口、动态规划等知识,是个不错的小练习。

2025-01-21 01:20:52 671

原创 【JavaSE】(6)抽象类和接口

抽象类就是不能描述一个具体对象的类,比如类 Shape,它的子类可以有 Cycle、Squre等。Shape 的 draw 并不能确定子类对象的描绘,此时 Shape 就需要定义为抽象类。抽象类由abstract修饰。抽象类中,不能准确描述子类对象的方法 draw 叫做抽象方法,同样用 abstract 修饰。这样,抽象类只负责声明抽象方法,而子类负责重写来实现抽象方法,子类就能准确描绘自己的 draw 了。因为抽象类的抽象方法并没有具体实现,所以抽象类不可以用 new 实例化。因为。

2024-11-18 19:45:32 821

原创 【JavaSE】(5)继承和多态

一类可能含有多个子类,如:动物的子类有,猫、狗……。这些子类具有共性,将共性提取出为父类,如:动物的共性是,有名字、年龄……继承则是(派生类)(基类/超类)(共性)。继承。继承就是 is-a 的关系:猫 is a 动物。

2024-11-13 16:52:42 745

原创 【JavaSE】(4)类和对象

构造方法,名字与类名相同没有返回值,作用就是初始化成员变量。创建对象后,编译器会自动调用构造方法,并只调用一次。在没有定义构造方法时,编译器会默认定义一个什么也不做的构造方法。但是定义了构造方法后编译器就不会定义默认的构造方法了。可以重载。静态代码块、静态成员变量(类加载时就分配内存初始化)->实例代码块、示例成员变量(创建对象时)->构造方法。执行顺序(相同):依次。不管 new 了多少个对象,静态代码块只执行一次。多个静态代码块,会合并执行。

2024-11-12 13:08:41 832

原创 【JavaSE】(3)数组

数组就是同一类型、所占内存空间连续的数据的集合。// 整型数组// 动态// 静态// 省略版静态。

2024-11-08 23:11:09 837

原创 【JavaSE】(2) 方法

C语言知识回顾:形参只是实参的拷贝,它们是放在不同的栈帧中。因此,当交换两个数值时,用传递值的方式调用方法,方法执行结束后,形参的栈帧会回收,而实参的值并无变化。想改变实参,必须传递地址。,只能获取堆上存放的引用类型变量的引用地址,因此可以传递数值这种引用类型来改变实参,后续再深入学习。方法名字相同,但参数列表不同(参数个数、参数类型、参数类型的次序),实现不同的功能。同一个作用域的标识符不能相同,为什么可以让方法同名?方法签名组成:方法全路径+参数列表类型+返回值类型。不用再绞尽脑汁想方法名了。

2024-11-05 21:10:58 351

原创 【JavaSE】(1) Java 的初识

IDEA跟VS一样,是一款集成开发环境,编辑、编译、运行、调式等啥都齐全。

2024-11-04 14:56:34 1041

原创 Windows 下安装 jdk8

如果想进行 Java 编程(开发人员),需要安装 JDK;如果仅仅想运行 Java 程序(客户),只需要安装独立的 JRE,节省存储空间。JDK 包里也内置有 JRE。企业一般都是使用,因为它是最早的(Oracle 会长期维护和更新,稳定),且企业更换版本会付出一些成本。

2024-10-12 23:59:55 4155

原创 【C语言】(23)预处理指令详解

预定义符号,会在预处理阶段,被直接替换为它的内容。__FILE__ //进⾏编译的源⽂件__LINE__ //⽂件当前的⾏号__DATE__ //⽂件被编译的⽇期__TIME__ //⽂件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义在 VS 环境中演示,预定义符号__STDC__不可使用:用 gcc 编译器演示,gcc 遵循标准C:#define 定义常量,会在预处理阶段,将代码中的名字直接替换为内容。// name: 名字// stuff: 内容。

2024-10-07 02:47:20 1762 2

原创 【C语言】(22)编译和链接

计算机能识别的是二进制指令,为什么编程时不直接写二进制?在早期,科学家们确实是用二进制指令编程,但这样非常不好理解且低效,编程时需要查册子一句句找二进制指令。后来发明了助记符号,每条二进制对应一个助记符,更便于编程,这就是汇编语言。但汇编语言还不够方便,就发明了B语言。最后又在B语言的基础上发明了C语言。B语言和C语言就属于高级计算机语言,易于程序员理解和编程。编译器、链接器等等,都是人类发明出的工具,将高级计算机语言自动转成机器能够识别的二进制指令,而不需要程序员理解其中复杂的过程。

2024-10-06 13:13:19 990

原创 【C语言】(21)文件操作

文件就是存放在外存上的文件。按功能分类,又分为两类:程序文件和数据文件。

2024-10-05 00:43:37 887 1

原创 【C语言】(20)动态内存管理

内存映射段目前不需要知道是什么东西;代码段是存放程序编译之后,代码和常量的二进制指令。以左边的代码为例子:紫色框出的是全局变量、静态变量,存放在数据段;绿色框出的是局部变量、有关函数调用的信息,存放在栈区;黄色框出来的是动态分配的内存空间,在堆区;红色框出来的是初始化局部变量的常量,存放在代码段。栈区(stack):① 函数的局部变量、形参、返回值、返回到的地址等函数信息,都在栈区创建。函数执行结束,存储这些信息的空间也会被自动释放。② 栈区的内存分配在处理器的指令集中运算,效率高,但可分配的空间有限。

2024-09-23 10:28:01 898

原创 【C语言】(19)自定义类型——结构体

成员类型必须是,C99 标准中也可以是其它类型。成员名后是冒号 + 数字。int _b : 5;位段 A 大小是?如果按照结构体的内存对齐的方法计算,4 * 4 = 16 个字节。看看运行结果:显然不是按结构体的方式计算内存大小,实际上位段的位表示二进制位冒号后面的数字是该成员的大小,比如 _a 占 2 bit。但是位段 A 的所有成员的大小加起来是 2+5+10+30 = 47,用 6 个字节(68 bit)就够了,为什么是8 字节呢?请看下节。

2024-09-20 13:17:01 794

原创 【C语言】(18)自定义类型——联合和枚举

联合体适用于不需要给每个成员开辟空间,且成员不需要同时使用的场景,可以节省空间。以上代码,联合体大小是成员 i (所需空间最大的成员)的大小;联合体、每个成员的地址都是 004FFA90(成员共用一个空间)。定义商品变量时,图书不需要设计、颜色、尺寸信息;杯子不需要书名、作者、页数等信息。使用结构体类型,会浪费很多空间。但 C++ 的类型检查更严谨,不能拿整数给枚举变量赋值。看应用场景选择使用结构体还是联合体,应用见(5)。包含的内容是枚举类型可能的取值,称为。例2:判断当前机器是大端还是小端。

2024-09-20 13:15:04 859

原创 【C语言】(17)数据在内存中的存储

内存中以一个字节为单元,超过一个字节的数据(short、int、long)在内存中存储,必然就有存储顺序的问题。另外,对于大于8位的处理器,例如16位、32位处理器,由于寄存器宽度大于一个字节,也会存在多个字节的存储顺序的问题。在内存中数据是以二进制存储的,这里为了方便书写和观察,用十六进制表示。

2024-09-11 17:56:25 995

原创 【深度学习入门】计算机视觉任务

对于神经网络,可以把中间的隐藏层看作一个黑盒子,这个黑盒子能自动选择如何提取特征,这不同于传统机器学习的人工操作,它的实现原理也是我们学习深度学习的重点。本文章以计算机视觉任务中的图像分类任务为例子,学习这个黑盒子里的各种实现细节。

2024-09-01 18:41:02 1203

原创 【机器学习】逻辑回归

基本上所有的分类问题都可以用逻辑回归解决。它的求解速度快;模型可解释性强,很多参数都有物理含义,便于我们理解,比如大的表示特征重要,小的表示特征不重要。但是像神经网络、支持向量机这种复杂的算法,它计算得到的很多参数都是没有物理意义的,只是求得的结果有用而已,不利于理解。因此,拿到任务后建议先用逻辑回归试一下,不行再考虑一些复杂的算法。

2024-08-24 15:18:48 1358

原创 【机器学习】线性回归

解释了线性回归的概念、拟合平面的数学表达、最大似然估计和梯度下降法计算最合适的权重参数的过程。

2024-08-22 22:41:57 1190

空空如也

空空如也

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

TA关注的人

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