-
Makefile伪标准
所属栏目:[语言] 日期:2022-07-12 热度:101
这一个章节我们主要讲的是 Makefile 中的伪目标。所谓的伪目标可以这样来理解,它并不会创建目标文件,只是想去执行这个目标下面的命令。伪目标的存在可以帮助我们找到命令并执行。 使用伪目标有两点原因: 避免我们的 Makefile 中定义的只执行的命令的目标[详细]
-
Java集合详解
所属栏目:[语言] 日期:2022-07-11 热度:120
在编程时,可以使用数组来保存多个对象,但数组长度不可变化,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的。如果需要保存数量变化的数据,数组就有点无能为力了。而且数组无法保存具有映射关系的数据,如成绩表为语文79,数学80,这种数据[详细]
-
Java List集合 ArrayList和LinkedList类的用法及区别
所属栏目:[语言] 日期:2022-07-11 热度:82
List 是一个有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。List 集合默认按元素的添加顺序设置元素的索引,第一个添加到 List 集合中的元素的索引为 0,第二个为 1,依此类推[详细]
-
Java Map集合详解
所属栏目:[语言] 日期:2022-07-11 热度:155
Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键(key)对象和一个值(value)对象。用于保存具有映射关系的数据。 Map 集合里保存着两组值,一组值用于保存 Map 里的 key,另外一组值用于保存 Map 里的 value,key 和 value 都可[详细]
-
Java遍历Map集合的四种方式
所属栏目:[语言] 日期:2022-07-11 热度:121
Map 集合的遍历与 List 和 Set 集合不同。Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历。Map 以及实现 Map 的接口类(如 HashMap、TreeMap、LinkedHashMap、Hashtable 等)都可以用以下几种方式遍历。 1)在 for 循环[详细]
-
Java Collections类操作集合详解
所属栏目:[语言] 日期:2022-07-11 热度:83
Collections 类是 Java 提供的一个操作 Set、List 和 Map 等集合的工具类。Collections 类提供了许多操作集合的静态方法,借助这些静态方法可以实现集合元素的排序、查找替换和复制等操作。下面介绍 Collections 类中操作集合的常用方法。 排序(正向和逆向[详细]
-
Java使用Lambda表达式遍历Collection集合
所属栏目:[语言] 日期:2022-07-11 热度:174
Java 8 为 Iterable 接口新增了一个 forEach(Consumer action) 默认方法,该方法所需参数的类型是一个函数式接口,而 Iterable 接口是 Collection 接口的父接口,因此 Collection 集合也可直接调用该方法。 当程序调用 Iterable 的 forEach(Consumer action)[详细]
-
Java Iterator 迭代器 遍历Collection集合元素
所属栏目:[语言] 日期:2022-07-11 热度:169
Iterator(迭代器)是一个接口,它的作用就是遍历容器的所有元素,也是 Java 集合框架的成员,但它与 Collection 和 Map 系列的集合不一样,Collection 和 Map 系列集合主要用于盛装其他对象,而 Iterator 则主要用于遍历(即迭代访问)Collection 集合中的[详细]
-
Java Set集合 HashSet和TreeSet类
所属栏目:[语言] 日期:2022-07-11 热度:189
Set 集合类似于一个罐子,程序可以依次把多个对象丢进Set 集合,而 Set 集合通常不能记住元素的添加顺序。也就是说 Set 集合中的对象不按特定的方式排序,只是简单地把对象加入集合。Set 集合中不能包含重复的对象,并且最多只允许包含一个 null 元素。 Set[详细]
-
Java的异常跟踪栈
所属栏目:[语言] 日期:2022-07-11 热度:200
异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程。 看下面用于测试 printStackTrace 的例子程序。 class SelfException extends RuntimeExcepti[详细]
-
Java Collection接口详解
所属栏目:[语言] 日期:2022-07-11 热度:112
Collection 接口是 List、Set 和 Queue 接口的父接口,通常情况下不被直接使用。Collection 接口定义了一些通用的方法,通过这些方法可以实现对集合的基本操作。定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。 本节将介绍 Collection[详细]
-
AOE网求关键路径详解 包括C语言实现代码
所属栏目:[语言] 日期:2022-07-10 热度:119
在学习拓扑排序一节时讲到拓扑排序只适用于 AOV 网,本节所介绍的求关键路径针对的是和 AOV 网相近的 AOE 网。 什么是AOE网 AOE 网是在 AOV 网的基础上,其中每一个边都具有各自的权值,是一个有向无环网。其中权值表示活动持续的时间。 就是一个 AOE 网,例[详细]
-
数据构架之动态内存管理机制
所属栏目:[语言] 日期:2022-07-10 热度:166
通过前面的学习,介绍很多具体的数据结构的存储以及遍历的方式,过程中只是很表面地介绍了数据的存储,而没有涉及到更底层的有关的存储空间的分配与回收,从本节开始将做更深入地介绍。 在使用早期的计算机上编写程序时,有关数据存储在什么位置等这样的问题[详细]
-
边界标识法管制动态内存
所属栏目:[语言] 日期:2022-07-10 热度:182
本节介绍一种解决系统中内存碎片过多而无法使用的方法边界标识法。 每个结点中包含 3 个区域,head 域、foot 域 和 space 域: space 域表示为该内存块的大小,它的大小通过 head 域中的 size 值表示。 head 域中包含有 4 部分:llink 和 rlink 分别表示指向[详细]
-
伙伴系统管控动态内存
所属栏目:[语言] 日期:2022-07-10 热度:128
前面介绍了系统在分配与回收存储空间时采取的边界标识法。本节再介绍一种管理存储空间的方法伙伴系统。 伙伴系统本身是一种动态管理内存的方法,和边界标识法的区别是:使用伙伴系统管理的存储空间,无论是空闲块还是占用块,大小都是 2 的 n 次幂(n 为正整[详细]
-
无用单元采集 垃圾回收机制
所属栏目:[语言] 日期:2022-07-10 热度:114
通过前几节对可利用空间表进行动态存储管理的介绍,运行机制可以概括为:当用户发出申请空间的请求后,系统向用户分配内存;用户运行结束释放存储空间后,系统回收内存。这两部操作都是在用户给出明确的指令后,系统对存储空间进行有效地分配和回收。 但是在[详细]
-
内存紧缩 内存碎片化处置
所属栏目:[语言] 日期:2022-07-10 热度:82
前边介绍的有关动态内存管理的方法,无论是边界标识法还是伙伴系统,但是以将空闲的存储空间链接成一个链表,即可利用空间表,对存储空间进行分配和回收。 本节介绍另外一种动态内存管理的方法,使用这种方式在整个内存管理过程中,不管哪个时间段,所有未被[详细]
-
何为查找表
所属栏目:[语言] 日期:2022-07-10 热度:164
在日常生活中,几乎每天都要进行一些查找的工作,在电话簿中查阅某个人的电话号码;在电脑的文件夹中查找某个具体的文件等等。本节主要介绍用于查找操作的数据结构查找表。 查找表是由同一类型的数据元素构成的集合。例如电话号码簿和字典都可以看作是一张查[详细]
-
顺序查找算法解说 包含C语言实现代码
所属栏目:[语言] 日期:2022-07-10 热度:106
通过前面对静态查找表的介绍,静态查找表即为只做查找操作的查找表。 静态查找表既可以使用顺序表表示,也可以使用链表结构表示。虽然一个是数组、一个链表,但两者在做查找操作时,基本上大同小异。 本节以静态查找表的顺序存储结构为例做详细的介绍。 顺序[详细]
-
二分查找 折半寻找 算法详解 C语言实现
所属栏目:[语言] 日期:2022-07-10 热度:128
折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高。但是该算法的使用的前提是静态查找表中的数据必须是有序的。 例如,在{5,21,13,19,37,75,56,64,88 ,80,92}这个查找表使用折半查找算法查找数据之前,需要首先对该表中的数[详细]
-
二叉排序树 二叉查找树 及C语言达成
所属栏目:[语言] 日期:2022-07-10 热度:180
前几节介绍的都是有关静态查找表的相关知识,从本节开始介绍另外一种查找表动态查找表。 动态查找表中做查找操作时,若查找成功可以对其进行删除;如果查找失败,即表中无该关键字,可以将该关键字插入到表中。 动态查找表的表示方式有多种,本节介绍一种使[详细]
-
Java创建一个学生类
所属栏目:[语言] 日期:2022-07-10 热度:57
创建一个表示学生的实体类 Student,其中有学生姓名、性别和年龄信息。要求使用属性来表示学生信息,最终编写测试代码。 首先定义一个名为 Student 的类,代码如下: public class Student { // 学生类 } 在类中通过属性定义学生、性别和年龄,代码如下: pu[详细]
-
Java成员方法的声明和调用
所属栏目:[语言] 日期:2022-07-10 热度:154
声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是用方法来实现的,属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法参数和方法返回值类型。 成员方法一旦被定义[详细]
-
Java this关键字详解 3种用法
所属栏目:[语言] 日期:2022-07-10 热度:86
this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。 下面我们根据示例分别讲解 this 关键字的作用。 this.属性名 大部分时候,普通方法访问其他方法、成员变量时无须[详细]
-
Java创建对象详解 显式创建和隐含创建
所属栏目:[语言] 日期:2022-07-10 热度:63
对象是对类的实例化。对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为。Java 对象的生命周期包括创建、使用和清除,本文详细介绍对象的创建,在 Java 语言中创建对象分显式创建与隐含创建两种情况。 显式创建对象 对象的显式创建方式[详细]