- 博客(21)
- 收藏
- 关注
原创 垃圾回收的核心知识点总结
垃圾回收是 Java 内存管理的重要组成部分,通过自动回收不再使用的对象,确保内存的有效利用。理解垃圾回收的过程、回收的内存区域以及不同垃圾回收器的特点,有助于开发者优化 Java 应用的性能和内存使用。
2024-10-07 13:06:48
441
原创 Java 中的 File 类及 InputStream 和 OutputStream 的用法总结
File类用于文件和目录的操作,提供了创建、删除、检查属性等功能。和类用于处理字节流的输入和输出,分别用于读取和写入数据。在进行文件操作时,建议使用语句来自动关闭流,避免资源泄露。通过合理使用File类及其相关的输入输出流,可以高效地进行文件操作,满足各种应用需求。
2024-10-07 12:55:51
460
原创 Java 多线程与锁策略的深入探讨
在 Java 的多线程编程中,锁策略、CAS(Compare and Swap)机制以及的优化过程是非常重要的概念。本文将对这些知识点进行总结和讲解,并加入一些代码示例以帮助理解。
2024-10-04 13:39:29
870
原创 优先级队列(堆)
Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线 程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue。关于PriorityQueue的使用要注意:1. 使用时必须导入PriorityQueue所在的包,即:2. PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出 ClassCastException异常。
2024-06-26 13:42:50
722
1
原创 <数据结构>八大排序算法
1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定。
2024-06-13 18:20:02
1920
原创 二叉树的遍历和存储
设二叉树的根节点所在 层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层 上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。由于现在大家对二叉树结 构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等 二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,
2024-05-14 16:22:23
718
1
原创 二叉树的基本概念
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。// 下一个兄弟引用。// 第一个孩子引用。int value;// 树中存储的数据。我们这里就简单的了解其中最常用的。文件系统管理(目录和文件)
2024-05-11 17:15:56
453
1
原创 ArrayList与顺序表
在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:【说明】1. ArrayList是以泛型方式实现的,使用时必须要先实例化2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3. ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4. ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。
2024-04-25 15:07:03
1426
5
原创 OR36 链表的回文结构
分奇数和偶数个节点,使用快慢指针,先找到中间节点,然后将后半节点逆序,如果是奇数节点只需判断头节点和慢指针是否相同,如果是偶数节点加一个if条件判断,头指针的下一个是不是慢指针。对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。给定一个链表的头指针。
2024-04-23 11:30:33
187
原创 JAVASE
JavaSE包含了许多重要的组件和功能,如Java基础类库、Java虚拟机、Java语言规范、Java开发工具等。JavaSE的跨平台性是指开发的Java程序可以在不同的操作系统上运行,只需要安装对应的Java虚拟机即可。健壮性和高性能则保证了JavaSE应用程序的稳定性和效率。总的来说,JavaSE是Java编程语言的基础和核心部分,提供了丰富的功能和工具,可以帮助开发人员快速构建各种类型的应用程序。通过学习和掌握JavaSE,开发人员可以更好地理解Java语言的特性和机制,提高自己的编程能力和水平。
2024-04-21 19:23:58
547
1
原创 认识异常!
在Java中,将程序执行过程中发生的不正常行为称为异常。1.算数异常// 执行结果 Exception in thread "main" java.lang.ArithmeticException: / by zero2. 数组越界异常// 执行结果 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1003. 空指针异常。
2024-04-21 19:17:15
821
1
原创 学习笔记,JAVA继承和多态(2)
继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。向下转型用的比较少,而且不安全,万一转换失败,运行时就会抛异常。将一个子类对象经过向上转型之后当成父类方法使用,再无法调用子类的方法,但有时候可能需要调用子类特有的 方法,此时:将父类引用再还原为子类对象即可,即向下转换。通过子类对象访问父类与子类中不同名方法时,优先在子类中找,找到则访问,否则在父类中找,找到 则访问,否则编译报错。
2024-04-21 18:58:44
1674
1
原创 学习笔记,JAVA类和对象(1)
//字段 -> 成员变量 : 定义在方法外边 类 的 里面//实例成员变量: 在对象Person里面//实例化没有初始化 默认值为对应的0值.-> (1.引用类型默认为null 2.简单类型默认为0)//我们也可以对实例成员变量进行赋值//char -> "\u0000"(空类型) boolean -> false//静态成员变量 不属于对象 属于类 ---有static 修饰//字段//构造代码块 || 实例代码块。
2023-11-13 15:08:45
161
7
原创 深入理解Java中的数据类型与变
本文深入探讨了Java中的数据类型与变量,包括字面常量的分类、数据类型的分类、变量的概念与使用、类型转换与类型提升以及字符串类型的转换。通过举例和详细解释,希望读者能够更好地理解和应用这些概念,为后续的Java编程打下坚实的基础。以上就是本文对Java中的数据类型与变量的深入解析,希望对读者有所帮助。
2023-11-02 18:31:26
102
8
原创 C语言中结构体大小的计算方法及对齐数的影响
总结一下,C语言中结构体大小的计算方法其实并不复杂,只需要考虑成员变量的大小和对齐数即可。例如,如果对齐数是4,那么结构体的成员变量通常会按照4的倍数进行对齐。最后,将各个成员变量的大小加起来,再加上最后一个成员变量的大小,就是结构体的总大小。嵌套结构体的大小计算方式与普通结构体类似,只是在计算过程中需要将嵌套结构体的大小也考虑进去。对齐数的选择会影响结构体的大小,以及结构体在内存中的布局。最后,将各个成员变量的大小加起来,再加上最后一个成员变量的大小,就是结构体的总大小。然后,我们需要考虑对齐数。
2023-10-25 20:33:13
140
8
原创 C语言memmove函数模拟实现
memmove函数和 memcpy函数在功能上非常相似,它们都用于在内存中移动一段数据。memmove函数可以处理内存重叠的情况,而memcpy函数不能处理内存重叠。首先,我们需要了解memmove函数的原型和功能:头 文 件:#include memmove函数的参数包括目标内存地址dest、源内存地址src以及要复制的字节数sz。函数的返回值为指向目标内存地址的指针。
2023-10-25 17:03:55
404
8
原创 用C语言实现简易版扫雷游戏
通过理解和掌握这个示例,我们可以进一步扩展和改进这个游戏,添加更多的功能和特性。扫雷游戏是一种经典的单人益智游戏,它需要玩家根据周围的数字来判断哪些方块是地雷,哪些是安全的。根据玩家的输入,揭开对应的方块,并根据周围的地雷数量显示相应的数字。使用两个二维数组来表示游戏界面,一个用来展示给玩家,另一个用来存储地雷位置信息。使用循环来控制游戏的进行,直到玩家揭开所有非地雷方块或触发地雷。使用随机数生成器来随机布置地雷,确保地雷的数量和位置都是随机的。上面一半是展示给玩家的棋盘,下面一半是储存地雷的棋盘。
2023-10-09 18:53:06
103
9
原创 C语言数据的存储
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8bit。
2023-09-19 18:25:39
74
10
原创 238. 除自身以外数组的乘积(C语言)
先算出整个数组的乘积和0的个数,如果有一个0则除了0处下标其它全部为0,如果有两个或以上个0则全部为0,如果没有0,则用乘积除当前下标的数。
2023-08-18 17:16:57
83
7
原创 使用C语言二维数组完成井字棋(三子棋)
当srand()的参数值固定的时候,rand()获得的数也是固定的,这样srand函数就需要用到time(NULL)参数,因为计算机的时间一直在变,所以rand()获得的数,也就一直在变,相当于是随机数了。如果有三个连在一起的就返回其中一个的符号,如果没有就继续判断棋盘有没有满,如果都没有就继续游戏。打印一个游戏菜单,输入1是开始玩游戏,0是退出游戏。用产生的随机值去%棋盘的行数这样就可以把值固定在行数之间(0-2),这样就不会越界,只需判断是否被占用。棋盘的每个格子由线条隔开,每个格子最开始都是空的。
2023-08-17 16:27:57
161
2
原创 冒泡排序(Bubble Sort)C语言
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果前面的数比后面的数大就把他们交换过来。
2023-07-27 23:18:00
257
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人