- 博客(32)
- 收藏
- 关注
原创 JavaEE初阶:多线程初阶(1)
在上篇文章我们讲到了进程。进程,它是操作系统资源分配的基本单位,通过多进程编程或分时复用的方式能实现并发执行的效果。所以进程在操作系统来说是一个较为 “重” 的概念,因为不论是在创建进程还是销毁进程,都对于磁盘 I/O的开销比较大。 尤其是对于现代的服务器,如果只用多进程的方式来执行任务,由于服务器一天执行的操作可能有几千万甚至上亿条,这样数量级的任务频繁地创建销毁对于资源的消耗非常大。为了解决这个问题,开发大佬的创建出了——线程。我们可以将线程比喻成 “ 轻量级进程 ”。所以,相对于进程,线程
2026-01-02 18:22:17
984
原创 JavaEE初阶:计算机是如何工作的
从本节开始,数据库阶段的学习算是结束了,我们将进入 JavaEE 初阶的学习。本阶段内容将会涉及到 Java 中较为底层的知识,学完后,不仅能了解到计算机的核心工作机制,还有利于理解我们平时编程时使用的一些行为。更重要的是,JavaEE全部写完后,我们就可以写项目、做网站了,项目对于我们之后的就业能提升很大的帮助,对于我们秋招求职可以说是必不可少的东西。 做网站、网页都会涉及到前端和后端。前端是由 HTML + CSS + JS 构成的,HTML 负责网页的结构搭建以及定义文本、图片等元素;CS
2025-12-26 20:56:20
670
原创 MySQL数据库:事务
事务,它是数据库操作的最小逻辑单元,它会将一组SQL语句打包进行执行操作,在执行的过程中,保证一组操作要么全部成功,要么全部失败。该SQL语句可以是一条,也可以是多条语句。如果微信转账成功了,应当以下的情况都会具备:1. 张三和李四的转账前和转账后的总额应该是相同的,即80 + 120 = 200;2. 张三的账户余额应该减少了20,李四的应该增加了20。不应该出现两方之中有一个人没有增加或减少的情况。3. 转账后的余额应当要保存起来,不能说下次重新打开软件后两边的余额有一边没有发生变化。
2025-12-18 17:07:30
748
原创 MySQL数据库:索引
索引的目的是为了让程序员在经常被使用的查询中能够更加的快速,但是对于一些数据量少的表或数据库中,就不推荐去使用索引。因为索引的创建也会占用数据库资源,并且创建过多、过杂或者是不合理的索引反而会使我们的工作效率变低,所以我们在创建索引时需要去斟酌,这个地方是否真的需要索引。至此,索引的主要内容就已经全部说完了,下来大家还是要跟着我的文章来一步步练,光看很容易就会忘记。那么,本篇文章到此结束!希望能对你有帮助。
2025-12-15 11:45:36
784
原创 MySQL数据库:表的增删改查 [CRUD](进阶)【三】
本节是CRUD进阶的最后一节,主要来讲和。那我们使用这两种查询是为什么?有什么用?具体要怎么做呢?我们来带着这些问题,一起来一个个解决。聚合查询,它能。例如统计订单总金额时,聚合查询它会直接在数据库计算并返回单个汇总值。聚合函数里的操作我们称为,这些聚合函数在使用时也比较简单,只需要即可。
2025-11-16 16:44:41
767
原创 MySQL数据库:表的增删改查 [CRUD](进阶)【二】
1. 三大范式在第二部分,我们来着重讲,在此之前我们学过了表的增删改查的基本操作。但是对于如何去创建一个合理的数据库表,我们还没有提及。对于一张表,在设计关系数据库时,我们可不能随便创建字段,需要遵照一定的规则要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式。关系数据库常见有以下范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)和第五范式(5NF,又称完美范式),越高的范式数据库冗余越小。
2025-11-13 18:55:56
972
原创 MySQL数据库:表的增删改查 [CRUD](进阶)【一】
数据库中的约束是关系型数据库的一个重要功能,它的主要作用是,也可以地来,例如数据本身是否正确,关联关系是否正确等。这样就不需要人工来进行校验。我们一般在建立表的时候在数据类型的后面加上。
2025-11-11 18:40:54
978
原创 MySQL数据库:软件、相关知识和基本操作
数据库,它其实就是一个利于用来管理数据的软件,数据库它还可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。我们学习的是MySQL而不是SQL。SQL是一种查询和操作数据库的标准或语言,而MySQL是一款具体的关系型数据库管理系统(RDBMS),它支持使用SQL语言来管理数据。简单来说,SQL是“普通话”,MySQL是能听懂并使用“普通话”的一款工具,二者是“语言”与“工具”的关系,而非包含关系。
2025-10-16 17:40:08
1114
原创 数据结构:栈和队列
方法功能入队列poll()出队列peek()获取队头元素int size()获取队列元素个数检测队列是否为空所以可以看到,栈和队列的方法大都很相似,还是容易去记的。注意:Queue是个接口,在实例化时必须实例化LinkedList的对象,因为LinkedList实现了Queue接口。如果需要实例化一个队列时,举例如下:例:QueueIntegerquecenewLinkedList<>();
2025-10-08 15:17:44
1509
原创 数据结构:Map 和 Set (二)
1.Map是一个接口,不能直接实例化对象,如果要实例化对象只能实例化其实现类TreeMap或者HashMap。2.Map中存放键值对的Key是唯一的,value是可以重复的。3.在TreeMap中插入键值对时,key不能为空,否则就会抛异常,因为key 必须是可用于比较的,而如果你拿 null 去比较,就会引起空指针异常。但是value可以为空。4.HashMap的key和value都可以为空。因为这里面的 key 不用于比较。5. Map中键值对的Key。
2025-09-29 17:49:51
1344
原创 数据结构:Map 和 Set(一)
单支树如果退化成单支树,二叉搜索树的性能就失去了。必须要是二叉平衡树,才能达到logN,那我们该如何改进,才能避免单支树拖慢时间复杂度呢?答:这里我们就要去运用 Map 和 Set 去解决了。这部分下篇文章我们再去讲。
2025-09-26 10:21:10
1118
原创 数据结构:排序
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。假设我们给定一组数据: 8 934 721 0如果最后排序结果变成是: 0 13 47 8 9;即相同数字的。
2025-09-20 12:43:08
1406
原创 数据结构:优先级队列(堆)
前面介绍过队列,,但有些情况下,,该中场景下,使用队列显然不合适。所以在这种情况下,。这种数据结构就是这个单词的发音大家可以自行从翻译软件查看。1.2 堆的概念及应用,而堆实际就是在的基础上进行了一些调整。如果有一个,把它的所有元素且12…,则或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。1. 小根堆就是根节点一定比左右孩子节点的值小的完全二叉树,左右孩子节点的值没有要求。2.大根堆就是根节点一定比左右孩子节点的值大的完全二叉树,左右孩子节点的值没有要求。
2025-09-12 14:18:48
1309
原创 数据结构中的 二叉树
在 Java 中,树(Tree)是一种,由节点(Node)组成,常见的线性表则是我们之前学过的顺序表、链表、栈、队列等等。每个节点包含。树的常见实现方式包括二叉树、二叉搜索树、平衡树(如 AVL 树、红黑树)等。。数据部分和指向子节点的引用。以二叉树为例,每个节点(左子节点和右子节点)。树的构建通常通过手动创建节点并连接子节点来实现。
2025-09-10 10:37:51
1313
原创 数据结构的线性表之顺序表
所以,我们需要将下标之后的元素分别移到它的前一个下标,使用循环,就可以完成了。在这里,我们还可以运用到前两节学到的判断异常的方法来帮助我们:先定义一个包,然后使这个异常继承运行时异常,再对父类运行时异常进行初始化,再加上可能的自定义异常的方法,就可以了。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。判断好之后,在 try { }内新增元素之前,我们需要把 pos 下标以后的元素向右边(数组的后面)进行挪动,这样才可以给出空间放下这个新增的pos。
2025-08-23 18:31:37
1190
原创 数据结构开篇:初识数据结构
下面来看这个代码,它的时间复杂度是多少?来看下解析:所以,最后的答案就是N的平方。再来看这几道题,答案是多少?下面的这两道题相对就会难一些,用到了一些数学思想:这里要注意;递归的 每次递归执行的次数 是指递归的每次调用(如计算、判断等这些都只被记作一次,但也有特殊情况)。总结一下大O法的特点:
2025-08-20 11:33:17
1075
原创 Java中的异常(方法,概念及作用等)
这里就简单了解一下,不过多展开介绍了:下来就是本节关于异常的一些例题,一起来看一看:答:C;finally 与程序发生错误及捕捉到异常情况 和 catch部分捕捉到异常情况 都无关,所以A、D选项都不不正确;选择C。答:F;我们由图中代码可知,类是TestClass,testMethod是静态方法;我们说过,静态方法或静态成员只能被类去调用,所以在 main 方法中,是可以被调用的,这里的null 只是一个烟雾弹,并不会影响实际的结果。答:A;上文提到,在代码出现异常时,异常之后的代码都。
2025-08-18 19:02:08
918
原创 Java的抽象类与接口(一)
来表示的,这种被 abstract 修饰的方法我们称之为抽象方法,抽象方法中可以不用去实现(可以没有方法体)。为什么呢?见下面的3。3.如果一个普通类继承了这个抽象类,那么此时这个。
2025-08-14 11:38:00
1385
原创 Java中继承和多态(二.多态部分)
多态,按照字面意思,我们可能会想到多个形态、多种状态等;而在Java中事实可以说也是如此,即。在开始学习之前,我们先来了解下我们得熟悉什么才能理解多态。1.得熟悉向上转型 2.得熟悉方法的重写 3 . 理解多态。
2025-08-12 12:19:32
699
原创 Java中继承和多态(一.继承部分)
关于继承这个词,我们一开始可能会想到:儿子继承父亲的财产;古老的手艺由师傅亲手传给徒弟,继承了下来。诸如此类,我们可以带着这些想法来看下图中集成的概念。就以猫和狗来举例,猫和狗都属于动物。那么在Java中,动物这个大类就可被称为;而猫和狗则被称为子类。在代码层面该怎么去写呢?就以猫和动物来举例:System.out.println("正在用餐");class catanimal {public String name = " 小黑";System.out.println("喵喵喵");
2025-08-11 12:27:46
858
原创 Java中类和对象(完):封装和静态成员变量
Java的访问修饰符(如 default 权限)与包相关:被 default 修饰的类、方法、变量,仅能被同一包内的其他类访问,实现了包级别的访问控制。像我们之前在最开始的时候用的方法,当时只说了固定语法,并没有说明其中的含义,方法就是也用了 static 才不会出现报错,静态方法才可以引用静态方法。在多人协作的项目中,通过包结构(如按团队、模块划分)可以明确代码归属,避免开发冲突,规范代码组织方式。m是被int修饰,int不属于类变量,不能用Test引用,C选项错误。如有遗漏或错误,欢迎补充。
2025-08-08 14:09:23
1204
原创 Java中的类和对象
例如上图的 System.out.println (dog.name) 和 System.out.println (dog,age)最下面那行是Dog dog = new Dog ( ) ,dog是。如果你在主程序中想访问成员方法或给成员变量赋值等等这样访问类的过程,,类名下面的、public void eat()上面的称为。以上就是本篇文章的全部内容。2.掌握类中的成员变量和成员方法的使用。1.掌握类的定义方式以及对象的实例化。3.掌握对象的整个初始化过程。这里的最上方的 Dog 是。
2025-08-07 11:26:48
563
原创 Java中的数组与栈和堆之间的关系
关于数组的定义这里就不做叙述,因为与C语言并无不同之处。数组的初始化有三种方式:第一种和第二种它们两个,写哪个表示的含义都相同;第三个则类似C语言中的不完全初始化,只是给定了范围,。关于数组在内存中的存储、上述的语法以及不同的数据类型所代表的默认值,如下图所示:接下来的图描述了关于两个引用指向同一个对象时的内存栈和堆的分配情况,了解了这些才算是真正理解了数组。(JVM:Java虚拟机)接下来我们来认识下null (空引用)。
2025-08-06 11:51:41
503
原创 Java中方法的使用方法、递归以及方法重载
在开始之前,先上一张图来了解一下方法的定义:以下是方法的基本格式与调用过程:与C语言相同,在传参时也会有形参和实参的概念,基本数据类型的形参的值不会影响实参,引用数据类型则( 如数组 )会影响实参。Java是拿不到栈上的局部变量的地址的, 因此Java中没有指针这一概念。递归:递归是一种通过函数调用自身来解决问题的方法。在Java中,递归函数会重复调用自身,直到满足某个终止条件(也称为基线条件),从而避免无限循环。(与C语言定义相同)
2025-08-05 11:24:08
444
原创 Java中逻辑控制的选择(分支)语句和循环语句
逻辑控制语句分为顺序语句、选择语句(分支语句)、循环语句。由于顺序语句就是正常由上至下执行,因此比较简单,本篇文章不做叙述。首先我们先从选择语句开始学习。选择语句分为 if 语句、if - else 语句、if - else if - else 语句以及 switch 语句。if 类型的选择语句括号内一定是布尔表达式。switch 语句后文会提到。有else if 的选择语句,。但是因为是选择语句,因此根据括号内条件。注意:悬垂if else 问题。
2025-08-04 11:16:15
478
原创 Java中的关系运算符、位运算与一些逻辑运算
关系运算符一共有六个,用法与注意事项如下图:它们的计算结果只能是和。接下来是三目运算符,它与选择语句中的语句类似,下图是三目运算符写法及一道面试题:答案:true。
2025-08-03 22:50:22
401
原创 Java中的基本数据类型、用法与注意事项
在Java中,强制类型转换(Type Casting)是指将一种数据类型的值显式转换为另一种数据类型的过程,通常发生在两种类型不兼容但逻辑上可转换的情况下。它们都是8个字节赋给4个字节,这时会出现精度丢失的情况:也就是在内存中只截取出4个字节的二进制码,剩下的丢掉。答: 是double类型,要想把它改成float类型,应该改成这样:float = 3.1f 或 float = 3.1F。:小数在浮点型是不能精确表示每一位的,只能表示小数点后几位,具体得看浮点数的精度。,而int比较特殊,包装类型是。
2025-08-03 11:20:58
536
原创 初识Java
3.args表示数组。在上述程序中,Test称为类名,main称为方法名,也可将其称为标识符,即:在程序中由用户给类名、或者变量所取的名字。在Java中,标识符是用来给类、方法、变量、常量等命名的符号,他们命名只能由。这是Java第一课中的部分代码,在运行时使用了CMD命令行输入参数,就可以得到相应的结果。注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写。但是3中的main,虽然可以编译运行,是合法的,但是。,不符合正确的代码书写规范,因此不建议这样去使用。需要注意的是,标识符的首字母不能是。
2025-08-02 12:13:15
271
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅