-
Java使用Lambda表达式遍历Collection集合
所属栏目:[语言] 日期:2022-07-11 热度:143
Java 8 为 Iterable 接口新增了一个 forEach(Consumer action) 默认方法,该方法所需参数的类型是一个函数式接口,而 Iterable 接口是 Collection 接口的父接口,因此 Collection 集合也可直接调用该方法。 当程序调用 Iterable 的 forEach(Consumer actio[详细]
-
Java Iterator 迭代器 遍历Collection集合元素
所属栏目:[语言] 日期:2022-07-11 热度:125
Iterator(迭代器)是一个接口,它的作用就是遍历容器的所有元素,也是 Java 集合框架的成员,但它与 Collection 和 Map 系列的集合不一样,Collection 和 Map 系列集合主要用于盛装其他对象,而 Iterator 则主要用于遍历(即迭代访问)Collection 集合中[详细]
-
Java Set集合 HashSet和TreeSet类
所属栏目:[语言] 日期:2022-07-11 热度:192
Set 集合类似于一个罐子,程序可以依次把多个对象丢进Set 集合,而 Set 集合通常不能记住元素的添加顺序。也就是说 Set 集合中的对象不按特定的方式排序,只是简单地把对象加入集合。Set 集合中不能包含重复的对象,并且最多只允许包含一个 null 元素。 Se[详细]
-
Java的异常跟踪栈
所属栏目:[语言] 日期:2022-07-11 热度:109
异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程。 看下面用于测试 printStackTrace 的例子程序。 class SelfException extends RuntimeExcep[详细]
-
Java Collection接口详解
所属栏目:[语言] 日期:2022-07-11 热度:50
Collection 接口是 List、Set 和 Queue 接口的父接口,通常情况下不被直接使用。Collection 接口定义了一些通用的方法,通过这些方法可以实现对集合的基本操作。定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。 本节将介绍 Collectio[详细]
-
Java.util.logging JDK自带录入日志类
所属栏目:[语言] 日期:2022-07-11 热度:60
每个初学者都很熟悉在有问题的代码中使用 System.out.println 方法在控制台打印消息,来帮助观察程序运行的操作过程。如果你使用 System.out.println 方法,一旦发现问题的根源,就要将这些语句从代码中删去。如果接下来又出现了问题,就需要再插入几个调[详细]
-
Java List集合 ArrayList和LinkedList类的用法及区别
所属栏目:[语言] 日期:2022-07-11 热度:148
List 是一个有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。List 集合默认按元素的添加顺序设置元素的索引,第一个添加到 List 集合中的元素的索引为 0,第二个为 1,依此类[详细]
-
Java抽象 abstract 类
所属栏目:[语言] 日期:2022-07-11 热度:123
Java 语言提供了两种类,分别为具体类和抽象类。前面学习接触的类都是具体类。这一节介绍一下抽象类。 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体[详细]
-
Java接口 Interface 的定义和实现
所属栏目:[语言] 日期:2022-07-11 热度:194
抽象类是从多个类中抽象出来的模板,如果将这种抽象进行的更彻底,则可以提炼出一种更加特殊的抽象类接口(Interface)。接口是 Java 中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的成员没有执行体,是由全局常量和公共的抽象方法所组成[详细]
-
Java内部类是什么
所属栏目:[语言] 日期:2022-07-11 热度:117
在类内部可定义成员变量和方法,且在类内部也可以定义另一个类。如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 就称为内部类(或称为嵌套类),而类 Outer 则称为外部类(或称为宿主类)。 内部类可以很好地实现隐藏,一般的非内部类是不允许有[详细]
-
Java实例内部类
所属栏目:[语言] 日期:2022-07-11 热度:93
实例内部类是指没有用 static 修饰的内部类,有的地方也称为非静态内部类。示例代码如下: public class Outer { class Inner { // 实例内部类 } } 上述示例中的 Inner 类就是实例内部类。实例内部类有如下特点。 1)在外部类的静态方法和外部类以外的其他[详细]
-
Java静态内部类
所属栏目:[语言] 日期:2022-07-11 热度:130
静态内部类是指使用 static 修饰的内部类。示例代码如下: public class Outer { static class Inner { // 静态内部类 } } 上述示例中的 Inner 类就是静态内部类。静态内部类有如下特点。 1)在创建静态内部类的实例时,不需要创建外部类的实例。 public c[详细]
-
Java局部内部类
所属栏目:[语言] 日期:2022-07-11 热度:154
局部内部类是指在一个方法中定义的内部类。示例代码如下: public class Test { public void method() { class Inner { // 局部内部类 } } } 局部内部类有如下特点: 1)局部内部类与局部变量一样,不能使用访问控制修饰符(public、private 和 protected[详细]
-
Java匿名类 Java匿名内部类
所属栏目:[语言] 日期:2022-07-11 热度:83
匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类。其语法形式如下: new 类或接口() { // 类的主体 }; 这种形式的 new 语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。使用匿名类可使代码更加简洁、紧凑,模[详细]
-
Java8新特性 Effectively final
所属栏目:[语言] 日期:2022-07-11 热度:183
Java 中局部内部类和匿名内部类访问的局部变量必须由 final 修饰,以保证内部类和外部类的数据一致性。但从 Java 8 开始,我们可以不加 final 修饰符,由系统默认添加,当然这在 Java 8 以前的版本是不允许的。Java 将这个功能称为 Effectively final 功能[详细]
-
Java Lambda表达式的使用
所属栏目:[语言] 日期:2022-07-11 热度:152
在《Java Lambda表达式》和《Java Lambda表达式的3种简写方式》一节中我们了解了 Java Lambda 的概念并可以在匿名类的场合使用 Lambda 语法进行简单替换。本节主要介绍在 Java 中如何使用 Lambda 表达式。 作为参数使用Lambda表达式 Lambda 表达式一种常见[详细]
-
无用单元采集 垃圾回收机制
所属栏目:[语言] 日期:2022-07-11 热度:111
通过前几节对可利用空间表进行动态存储管理的介绍,运行机制可以概括为:当用户发出申请空间的请求后,系统向用户分配内存;用户运行结束释放存储空间后,系统回收内存。这两部操作都是在用户给出明确的指令后,系统对存储空间进行有效地分配和回收。 但是[详细]
-
内存紧缩 内存碎片化处置
所属栏目:[语言] 日期:2022-07-11 热度:112
前边介绍的有关动态内存管理的方法,无论是边界标识法还是伙伴系统,但是以将空闲的存储空间链接成一个链表,即可利用空间表,对存储空间进行分配和回收。 本节介绍另外一种动态内存管理的方法,使用这种方式在整个内存管理过程中,不管哪个时间段,所有未[详细]
-
何为查找表
所属栏目:[语言] 日期:2022-07-11 热度:175
在日常生活中,几乎每天都要进行一些查找的工作,在电话簿中查阅某个人的电话号码;在电脑的文件夹中查找某个具体的文件等等。本节主要介绍用于查找操作的数据结构查找表。 查找表是由同一类型的数据元素构成的集合。例如电话号码簿和字典都可以看作是一张[详细]
-
顺序查找算法解说 包含C语言实现代码
所属栏目:[语言] 日期:2022-07-11 热度:65
通过前面对静态查找表的介绍,静态查找表即为只做查找操作的查找表。 静态查找表既可以使用顺序表表示,也可以使用链表结构表示。虽然一个是数组、一个链表,但两者在做查找操作时,基本上大同小异。 本节以静态查找表的顺序存储结构为例做详细的介绍。 顺[详细]
-
二分查找 折半寻找 算法详解 C语言实现
所属栏目:[语言] 日期:2022-07-11 热度:163
折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高。但是该算法的使用的前提是静态查找表中的数据必须是有序的。 例如,在{5,21,13,19,37,75,56,64,88 ,80,92}这个查找表使用折半查找算法查找数据之前,需要首先对该表中的[详细]
-
二叉排序树 二叉查找树 及C语言达成
所属栏目:[语言] 日期:2022-07-11 热度:154
前几节介绍的都是有关静态查找表的相关知识,从本节开始介绍另外一种查找表动态查找表。 动态查找表中做查找操作时,若查找成功可以对其进行删除;如果查找失败,即表中无该关键字,可以将该关键字插入到表中。 动态查找表的表示方式有多种,本节介绍一种[详细]
-
伙伴系统管控动态内存
所属栏目:[语言] 日期:2022-07-11 热度:59
前面介绍了系统在分配与回收存储空间时采取的边界标识法。本节再介绍一种管理存储空间的方法伙伴系统。 伙伴系统本身是一种动态管理内存的方法,和边界标识法的区别是:使用伙伴系统管理的存储空间,无论是空闲块还是占用块,大小都是 2 的 n 次幂(n 为正[详细]
-
边界标识法管制动态内存
所属栏目:[语言] 日期:2022-07-11 热度:198
本节介绍一种解决系统中内存碎片过多而无法使用的方法边界标识法。 每个结点中包含 3 个区域,head 域、foot 域 和 space 域: space 域表示为该内存块的大小,它的大小通过 head 域中的 size 值表示。 head 域中包含有 4 部分:llink 和 rlink 分别表示指[详细]
-
AOE网求关键路径详解 包括C语言实现代码
所属栏目:[语言] 日期:2022-07-11 热度:66
在学习拓扑排序一节时讲到拓扑排序只适用于 AOV 网,本节所介绍的求关键路径针对的是和 AOV 网相近的 AOE 网。 什么是AOE网 AOE 网是在 AOV 网的基础上,其中每一个边都具有各自的权值,是一个有向无环网。其中权值表示活动持续的时间。 就是一个 AOE 网,[详细]