自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JavaScript基础

简称JS,作为开发Web页面的脚本语言而出名,是一个脚本语言,解释型或即时编译型的编程语言。

2025-11-19 22:29:00 482

原创 HTML---CSS(基础)

CSS能够实现美化页面的效果,能够做到页面的样式和式结构分离。就像是日常生活中的化妆。

2025-11-19 22:28:34 389

原创 HTML基础

HTML是超文本标记语言超文本:通过链接和交互式方式来组织和呈现信息的文本形式,不仅仅有文本,还肯能包含图片,音等等标记语言:由标签构成的语言。

2025-11-09 13:44:15 538

原创 Java--JVM

注意:当一个类加载器收到类加载的请求的时候,会优先委派给父类加载器,只有当父类加载器无法加载的时候,才会尝试自己加载。

2025-11-09 13:39:55 1125

原创 Java-HTTP响应以及HTTPS(下)

很常见的状态码,表示访问成功。

2025-11-07 20:28:07 929

原创 Java--HTTP(上)

HTTP(超文本传输协议)是一种应用非常广泛的应用层协议。HTTP在传输层主要依赖的是TCP协议,但是从HTTP3.0开始,切换到了UDP这是因为HTTP3.0应用层这里自己实现了可靠传输,而TCP特别影响性能。

2025-11-07 19:16:58 1490

原创 Java--网络原理

局域网的覆盖范围通常在几百米到几公里范围内,传输速度较快。广域网的覆盖范围跨越城市、国家甚至大洲,覆盖地理范围广泛,但传送速度较慢,受举例和中继设备影响。广域网是全球范围的网络互联。

2025-10-22 16:17:29 986

原创 Java--网络编程(二)

翻译服务器和回显服务器的区别就是对收到的信息进行处理的方式不同,回显服务器我们直接返回的字符串,翻译服务器我们通过 HashMap 来获取翻译后的结果并返回,我们用 HashMap 来模拟字典,当我们输入单词的时候,返回相对应的意思。为了方便,此处我们直接继承回显服务器(记得改变客户端端口号)

2025-10-13 22:10:18 219

原创 Java--网络编程(一)

Socket是一种通信机制,允许不同机器上的进程通过网络进行数据交换,他是应用层与传输层之间的桥梁,封装了TCP/IP族协议的细节针对传输层协议分为三类:1.流套接字:使用传输层TCP协议(Transmission Control Protocol)特点:有连接,可靠传输,面向字节流2.数据报套接字:使用传输层UDP协议(User Datagram Protocol)特点:无连接,不可靠传输,面向数据报3.原始套接字(不重要):⽤于⾃定义传输层协议,⽤于读写内核没有处理的IP协议数据。

2025-10-11 16:47:44 539

原创 Java--文件操作和IO

File 类是 Java 中用于表示文件和目录路径名的抽象表示形式。它允许应用程序对文件和目录进行各种操作,如创建、删除、重命名以及获取文件属性等.代表当前目录..代表父目录。

2025-10-08 21:26:49 652

原创 Java--多线程基础知识(四)

偏向锁不是真的加锁,⽽只是在锁的对象头中记录⼀个标记(记录该锁所属的线程).如果没有其他线程参与竞争锁,那么就不会真正执⾏加锁操作,从⽽降低程序开销.⼀旦真的涉及到其他的线程竞争,再取 消偏向锁状态,进⼊轻量级锁状态.

2025-10-08 14:58:37 927

原创 Java--多线程知识(四)

创建两个线程 t1,t2。再创建一个阻塞队列,通过阻塞队列连接t1,t2。由于消费者被限制了消费速度,所以当阻塞队列满了之后,生产者的生产速度也受到了影响,会形成当消费者消费之后,阻塞队列有了空间,生产者才可以继续生产。

2025-10-03 13:23:51 338

原创 Java--多线程基础知识(三)

继续上次的线程知识:我们可以看到,t2是在t1运行结束之后才进行的,这就是锁的作用,锁的特点:1.锁是互斥的,当一个线程占用锁之后,其他线程是无法再次进入锁的2.线程是无法被抢占的,前提是线程对同一个实例对象上锁。线程安全问题:1.线程的随即调度2.多个线程修改同一个变量3.修改操作不是原子4.内存可见性5.指令重排序其中volitile关键字可以处理指令重排序。当使用volatile关键字之后,每次写入volatile变量都会立即刷新到主内存。

2025-09-18 22:00:51 802

原创 Java--多线程基础知识(二)

在代码中,我们将 flg 作为标志位,当代码运行的时候我们需要输入任意键为就可以改变 flg,以此来达到停止代码运行的作用;注意:flg 必须作为全局变量,因为 lambda 捕获的局部变量是不能被修改的,这是为了确保代码的安全性和一致性,由于我们要对flg 进行修改,所以我们要将 flg 作为全局变量。

2025-09-15 22:13:35 526

原创 Java-多线程基础知识(一)

我们创建一个方法,让这个方法继承 Thread ,然后对 run 方法进行重写,重写的内容就是我们希望线程做的工作。因为线程的执行是随机的,例如上述代码有 main 线程 和 t 线程,此时执行之后会出现以下结果:注意:线程之间的运行可能会相互影响,而进程是独立的,不受其他进程影响。t.join 可以让 main 线程等待 t 线程结束之后再运行。

2025-09-09 21:05:20 771

原创 Java——异常

throw new NullPointerException("数组为null");⾃定义异常类,然后继承⾃Exception或者RunTimeException⾃定义异常通常会继承⾃Exception或者RuntimeException继承⾃Exception的异常默认是受查异常继承⾃RuntimeException的异常默认是⾮受查异常。

2025-08-07 11:26:30 641

原创 Java——字符串String类

可以用 == 判断是否引用的是同一个对象,如果是则返回 true 反之返回 false。

2025-08-07 09:36:06 434

原创 Java——多态

通俗来说,就是多种形态,具体点就是去完成某个⾏为,当不同的对象去完成时会产⽣出不同的状态。例:吃饭 这种行为在不同的动物身上有不同的状态,例如 猫吃猫粮,狗吃狗粮。狗不会吃猫粮,猫也不会吃狗粮,这就导致了多态的发生。

2025-08-06 12:37:48 380

原创 Java——抽象类和接口

如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类,使用 abstract 关键字修饰。例:我们现在有三个类 图形类,三角形类和圆形类,每个类中都有一个 draw 方法,三角形类和圆形类要画出来很简单,就是三角形和原型,但是 图形类 要怎么画,你是没有办法画出来的,因为你没有足够的信息可以帮助你描绘出来具体的对象。我们可以看到,在一个抽象类当中不止可以有抽象方法,还可以有普通的方法和属性。

2025-08-06 12:37:36 917

原创 MySQL——数据库设计与联合查询

数据库的范式是⼀组规则。在设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数 据库,这些不同的规范要求被称为不同的范式。

2025-08-05 12:38:14 884

原创 Java——继承

我们可以看到,上面代码中存在大量重复的内容,那么为了解决这种问题,我们就应该使用继承。

2025-08-05 12:37:47 1045

原创 MySQL——增删改查操作

CRUD就是对数据库中的内容进行增删改查操作。1.Create (创建) 2.Retrieve(读取)3.Update(更新) 4.Delete(删除)

2025-08-03 11:56:34 363

原创 MySQL——数据库约束

数据库约束是指对数据库表中的数据所施加的规则或条件。目的是确保数据的准确性和可靠性。

2025-08-03 11:56:07 978

原创 MySQL——事务详解

事务就是把一组SQL语句打包在一起,这组语句要么一起执行成功,要么一起执行失败,用来维护数据的完整性和一致性。

2025-08-01 20:18:46 1256

原创 MySQL——视图

视图的本质就是一个虚拟表,基于一个或多个基础表生成,不独立存储数据。可以像操作普通表一样对视图进行管理,视图本身是不占用物理存储空间的。列出所有视图:查看视图定义:视图的修改: 视图的删除:三.视图不可更新的情况:1.创建视图时使⽤聚合函数的视图2.创建视图时使⽤ distinct3.创建视图时使⽤ group bt 以及使⽤ having⼦句4.创建视图时使用 union 已经 union all 语句。5.查询列表中使用子查询。6.在 from ⼦句中引

2025-08-01 20:18:14 356

原创 哈希函数的实现

通过 key 来获取 val 比较简单,我们可以通过 key % array.length 来获取数组的下标值,然后遍历这个下标的所有数组,如果 找到了 key,我们就可以返回他的 val,如果没有找到,我们就返回一个-1即可。,如果超标了那麽我们就需要对哈希表重新设计,我们采用的是将 原数组的容量扩大一倍 来重新设计哈希函数,原理也很简单:将原数组遍历一下,将每个元素重新插入到新数组就可以。以上 哈希 都是按 int 类型来插入和获取值的,那么其他的类型其实也是可以的,此时我们就需要用到泛型了。

2025-07-19 14:07:32 278

原创 搜索树的基础功能实现

null && cur.right == null 的三种情况,比如我们要删除节点 cur,cur 节点又有cur ==root 和 cur!要找个新节点来替换掉 cur 节点的值的要求要符合搜索树的性质(根节点的值大于所有左子树节点的值,根节点的值小于所有右子树节点的值),我们有两个方向可以去寻找新的节点的值,第一个是在 cur 节点的左子树寻找左子树的最大值的节点来替代,第二种是在 cur 节点的右子树寻找右子树最小值的节点来替代。这样找到的节点就可以满足我们搜索树的性质了。

2025-07-15 15:37:09 466

原创 java常见排序算法的实现(下篇)

冒泡排序的思想比较简单,我们有两个变量 i 和 j ,其中 i 是指要走的趟数,比如我们有一个数组elem{ 1,3,4,2,5 },数组里面有五个元素,我们想要将数组里面的元素按照从小到大排列,我们会将 i 初始化为 elem.length - 1,j 初始化为 0 ,我们将 elem[ j ] 和 elem[ j+1 ]来比较,如果elem[ j ]

2025-07-15 15:36:54 1103

原创 java常见排序算法的实现(上篇)

我们现在有一组数组 elem { 5 ,18,7,21,9 } ,我们现在想将他按从小到大的顺序排列,在直接插入排序中,我们将用到三个变量 j,i,tem。i 将初始化为下标为 1 的值,tem 将初始化为下标为 i 的值,j 初始化为下标为 i - 1 的值。以上准备工作就完成了,我们将 j 的值与 tem 的值来比较,如果 j 的值大于 tem 的值,我们就令 elem[ j +1 ] = elem[ j ];

2025-07-13 12:18:53 820

原创 java堆的创建与基础代码解析(图文)

创建大根堆,以下是前置基础代码。(array 是需要被调整为大根堆的数组,elem 是用来展现array被调整之后为大根堆的数组)

2025-07-12 18:49:47 908

原创 Java二叉树基础功能代码详解与实现(下篇)

给定两个整数数组preorder和inorder,其中preorder是二叉树的inorder是同一棵树的通过前序遍历我们可以得到整棵树的根节点,在中序遍历中,根节点的左边是左子树,右边是右子树。以例子来说,通过 preorder 我们可以得到根节点为 3 , 通过 inorder 得到 9 为左子树节点,15 20 7 为右子树节点,通过这种方式,我们可以找到左子树的左子树.....类推下去,最后把所构建的子树组合在一起,就可以将我们的二叉树构建完成了。

2025-07-10 18:39:54 802

原创 Java二叉树基础功能代码详解与实现(中篇)

注:每道题都是本人当时想到的解法,不一定是最优解!!!!

2025-06-01 23:41:46 857

原创 Java二叉树基础功能代码详解与实现(上篇)

遍历这东西,其实以上三种遍历方式的代码实现都差不多,我们以前序遍历为例,在思路上,我们以递归为主,先打印根节点,然后打印左树和右树,在打印左树和右树的时候,以新的遇到的节点为根节点,以此类推,问题简化为叶子节点为根节点时候的打印,这时候只需要打印一下叶子节点就OK了。想要获取第K层节点的个数,采用递归的思路,逐渐递归到K层的节点,此时我们需要返回一个 1 来记下当前节点,通过递归的方式来从第K层不断返回值,最后最终的值就是我们要求的第K层的值。通过以上思路,我们可以初步具备递归思路的雏形,一直递归下去,

2025-05-31 15:04:53 932

原创 Java链表的详解和搭建

链表跟顺序表大同小异,但各有各的优缺点。链表中的单个元素,我们称之为节点,每个节点呢都有两个属于节点的属性~一个是值,一个是地址。值很通俗,就是这个节点的值,也是我们在链表里面存储的值。地址呢是指向下一个链表的,毕竟是链表,我们需要将各个节点连接起来,那么这之中的联系起来的东西就是地址,就像是火车车厢和火车连结点之间的关系。顺序表更方便读取不同位置上的值。而链表更方便在表中增加和删除数值。

2025-04-26 10:00:41 784

原创 Java 顺序表的讲解和搭建

首先为大家展示将要创建的顺序表的功能,为了方便使用,我们将功能定义在了接口里面:接下来我们会将接口里面的功能具体实现并给出详细的讲解:首先我们先为顺序表提供必要的属性:值 和 位置 以及 数组等等和实现接入接口:1.add(val)方法首先让我们来实现第一个功能 : 在顺序表里面增加值,默认在最后面增加。这时候有几个我们需要考虑的事情,那就是顺序表的状态是空的还是满的亦或者是有空余的。需要分不同情况来讨论了:1)如果顺序表为空的,我们可以直接把 val 方法pos = 0 的位置。2)如果顺

2025-04-22 21:48:15 831

原创 Java Clonable 接口和深拷贝详解

如下代码:我们创建了一个Student类来接入了 Clonable 接口在创建过程中我们可以发现,当我们的 Student 类 接入Clonable接口的时候,即使没有对里面的方法进行重写,依然没有报错,这是因为Clonable里面是空的。但我们依然需要重写以下方法,否则是无法正常使用的。在创建完以上代码之后,我们就可以开始创建测试类了。观察以上代码,在创建测试类的时候,clone 是报错的,这是由于声明异常造成的。我们需要将以上main 所在的行修改为以上代码,就可以解决这个报错了。

2025-04-04 15:29:49 427

原创 Java接口详解

但是接口中的方法,我们也是可以有具体的实现的。可以被static 和 default 所修饰。

2025-04-04 13:48:14 1140

原创 Java内部类和Object类详解

内部类就是将一个类定义在另一个类内部,前者称为内部类,后者称为外部类。未被static修饰的成员内部类。被static修饰的内部成员类称为静态内部类定义在外部类的⽅法中或者{}中的类。由于内部类使用的非常少,本篇的叙述较少。没有类名的局部内部类,通常用于接口或者抽象类的快速实现。匿名内部类通常⽤ 于创建只需使⽤⼀次的类。

2025-04-03 21:35:59 991

原创 Java :数组篇

T [ ] 数组名 = new T [N ];T : 表示数组中存放数据的类型。T [ ] : 表示数组的类型。N :表示数组的长度。

2025-03-08 17:11:27 1243

原创 C语言分支和循环语句

C语句可分为以下五类:1.表达式语句 2.函数调用语句3.控制语句4.复合语句 5.空语句本章后面介绍的是控制语句C语言中有九种控制语句,可分为以下三类:1.条件判断语句也叫分支语句 :if 语句、switch 语句;2.循环执行语句 : do while 语句 、while 语句、for 语句;3.转向语句 :break 语句、goto 语句、continue 语句、return 语句;

2025-02-16 13:48:20 1257

ja【Java编程教育】JavaSE阶段性考核试卷解析:涵盖选择题与编程题的详细解答及知识点巩固

内容概要:本文档为《JavaSE阶段性考核试卷》,主要包含两大部分:选择题和编程题。选择题部分涵盖了Java语言的基础概念,包括静态成员、构造方法、字符串处理、方法重载与重写、final关键字、异常处理机制、继承与接口实现等重要知识点。每道题目均附有详细解析,解释了正确选项的理由及错误选项的误区。编程题部分则提供了四个实际编程任务,分别是大小写转换、斐波那契数列计算、删除公共字符和二进制字符串相加,不仅给出了详细的解析思路,还展示了完整的代码实现。 适合人群:正在学习Java编程语言的学生或初学者,尤其是处于JavaSE学习阶段,希望通过练习加深对基础知识的理解和掌握的人群。 使用场景及目标:①作为课程作业或自学练习材料,帮助学生巩固课堂所学知识;②作为准备Java相关考试(如认证考试或校园招聘笔试)的复习资料;③通过编程实践提高解决实际问题的能力,培养良好的编程习惯和规范。 其他说明:本文档侧重于考察JavaSE的核心概念和技术细节,题目难度适中,既包括理论知识的记忆性测试,也有一定比例的应用性和理解性题目。对于编程题,鼓励读者自己动手编写代码,以加深理解和记忆。此外,文档中的解析部分有助于引导读者思考,培养分析问题和解决问题的能力。

2025-05-01

空空如也

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

TA关注的人

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