读论文:Tropical Cyclone Intensity Estimation Using a Deep Convolutional Neural Network

标题: 利用深度卷积神经网络估算热带气旋强度
作者: Ritesh Pradhan , Ramazan S. Aygun, Senior Member , IEEE, M a n i l M a s k e y , Member , IEEE, Rahul Ramachandran, Senior Member , IEEE, and Daniel J. Cecil


Abstract

热带气旋强度估算并非一件易事,因为在 提取特征、显著预处理、从卫星获得的各种参数集以及人为干预分析 时,需要领域知识。而 结果的不一致性、数据的大量预处理、问题域的复杂性和可泛化性问题 都是强度估计的相关问题。本文利用图形处理单元设计了一个深度卷积神经网络架构,用于 基于强度的飓风分类。该研究的模型仅使用卫星图像就获得了更好的精度和更低的均方根误差,还提出了 学习到的各层特征的可视化及其反卷积 来帮助理解。

Index Terms——深度学习,图像处理,卷积神经网络,热带气旋分类和强度估计;


Introduction

  • 深度学习使用由线性或非线性转换组成的多个处理层的深度架构,同时用 自动特征学习和分层特征提取取代手工制作的特征
  • 卷积神经网络(CNNs)可以用来建具有 平移不变性的空间相关性的模型 ,适合于图像识别——本文提出了一种通过学习特征估计飓风强度的深度CNN架构

A.动机

因为飓风是一种灾难性现象,所以研究飓风的各个阶段对确定其影响有着十分重要的作用。从科学的角度来讲则是出于以下原因:

  1. 更好的初始化预测模型,从而得到更准确的预测;
  2. 更准确的热带气旋历史记录,尤其是一种技术能否应用于较老的卫星图像;
  3. 提供一致的强度估计,因为目前的强度估计是通过**在不同预测区域应用不一致的主观算法(Dvorak技术)**进行的,而这种方式有着巨大的 初始误差

本文使用萨菲尔-辛普森飓风风量表(SSHWS)以及热带风暴和热带低压的强度分类作为热带气旋(TC)强度类别。由于风俗强度是基于最大风速(MWS)的,所以仅利用图像来进行估计不太容易;

  • 萨菲尔-辛普森飓风风量表(SSHWS):一种根据飓风的强度,把飓风分为一至五级的评估表,级数越高代表飓风的最高持续风速越高。但是该方法仅适用于西半球;
  • 传统的Dvorak技术的一些开发模式如下图所示:

一旦在24小时内检测到一种模式,就会进一步分析风暴的长度和带状等特征,以得出特定的t值

不难看出,这种决策模式无法探测那些未曾探索过的气象。而先进的Dvorak技术以客观的方式提供了几乎瞬时的TC强度估计,它消除了过程中固有的大量主观性,并在大多数情况下产生类似于人类的错误;

  • 偏角方差技术(DA VT) 量化了红外卫星图像中热带气旋的轴对称性,并对红外图像亮度进行了一种方向梯度统计分析,它对不同区域的热带气旋使用不同的模型和参数

本文专注于获得更高的精度和更低的均方根(RMS)强度误差;

先前方法的主要问题是不一致、大量预处理、复杂性和可泛化性:

  1. 不一致性:之前的技术为不同的区域提供了不同的均方根强度误差(RMSE)值,这会使得结果不一致;
  2. 显著预处理:Dvorak技术在预估计强度之前需要24小时的模式变化,DA VT要求飓风图像带有标明的飓风中心;
  3. 复杂性:Dvorak技术依赖于不同的地球物理性质,而DA VT依赖于找到气旋眼。但是这些在实际应用中有时较难实现,而且还需要相关知识基础;
  4. 概括性:在Dvorak和DA VT等技术中,对不同地区的飓风使用不同的模型,使得其有着较大的限制;

B.贡献

本文提出了一种深度卷积网络架构来估算热带气旋强度,在提取特征时不依赖领域知识、显著预处理、从卫星收集的数据以及人为干预分析
它会自动从卷积的每一步生成的特征图中提取出需要的关键特征。而且卷积的速度也很快,还适用于所有区域。总之,该方法不仅获得了较好的精度,而且获得了较低的RMS强度误差值


综述

一、深度卷积神经网络

  • 感受域:视野的重叠子区域,是通过CNN中多层的小神经元集合获得的。这种重叠机制允许cnn容忍输入图像的转换;
  • 工作原理:一系列卷积层的输出(特征图)被输入到神经网络的完全连接层中进行分类。然后损失层惩罚实际和分类标签之间的偏差;
  • 深度神经网络通常被设计成前馈网络(是指单元之间不形成循环的人工神经网络),并可以用反向传播算法(适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上)进行训练;
  • 误差在网络中反向传播时,通过更新权重和偏差优化网络 ,使损失函数最小化;
  • 使用具有稀疏连通性的共享参数(权值和偏差)减少了要学习的自由参数的数量,从而提高了计算性能,这也 有助于解决过拟合问题
  • 池化层:深度CNN中的一个重要层,通常遵循卷积层,它提高了网络的鲁棒性。最大池在其他文献中也被频繁使用,最大池化通过在一组特性中选择具有最大值的特性来减少特性的数量
  • 深度架构目前被广泛用于 对特征的高级抽象和复杂功能的学习 ,各种深度学习架构在各种计算机视觉任务上产生了最好的结果。深度学习可以成功地展开特征的高级抽象,并选择有用的特征来学习

二、本文的深度CNN层以及建筑

本文的深层CNN的体系结构如下图所示:

而具体的输入形状、过滤器形状、步幅、填充、输出尺寸和参数列于下表中:
在这里插入图片描述

2.1 图层概述

  • 卷积层用三维滤波器对输入进行卷积,并将ReLU(一种人工神经网络中常用的激活函数)应用于非线性:f (x) = max(0, x)
  • l层的卷积输出如下式所示:

xij是位置(i, j)的输出单元,K * K是滤波器的大小,wab是位置(a, b)的加权核的值,yl−1 (i+a)(j+b)是位置(i+a)的接收场,(j+b)来自层l−1,Bl是层l的偏移;

在不同的层上,过滤器的大小等超参数可能不同

  • 输出体积(Wo) i的空间大小是由这些超参数计算出来的,如下公式所示:

Wi是输入体积大小,k是应用了跨步s和填充p的核的大小

  • 池化提供了转换不变量,通过下采样减少了参数的数量,并有助于避免过拟合。而本文的深度CNN中,最大池化层在第一、第二、第三和第五卷积层之后;
  • 本文使用跨通道的本地响应规范化(LRN),这有助于 通过对局部输入区域进行归一化来实现横向抑制 。标准化按照下面的方式进行:

n为局部区域的大小,α和β为基本参数。位于相同位置但来自不同通道的单元以这种方式归一化

  • 上面那个体系结构的图中的最后一层由8个单元组成(代表不同类的数量)。本文使用softmax损失层计算多项logistic损失,按照如下公式来更新使损失函数最小的权重参数,并从K个互斥类中确定一个类

yn是输入xn的实际标签,fk是班级成绩向量的第Kth个元素,fyn是xn对应第ynth列的类别成绩

  • 求解最小代价:用随机梯度下降(SGD)方法来进行迭代求解,对于N个数据集的小批次,优化计算为小批的平均损失为:

其中L(W)是目标的随机逼近,fw (xi)是数据实例xi的损失,r(W)是正则化项,λ是正则化项的权值衰减。SGD通过结合以前的权重和损失的负梯度来更新权重

方程6、学习速率(α)的重量负梯度和动量(μ)是其先前的更新值(Vt)的重量;而在式7中,Wt+1是使用之前的权重(Wt)乘以新的更新值(Vt+1)的新的更新权重。这些超参数在我们的工作中被用作经验法则的基础


2.2 优化

  • (1)超参数:本文倾向于对较大的输入使用较大的卷积滤波器尺寸,对较高的层逐渐减小滤波器尺寸。然而,过滤器的数量取决于网络的容量和任务的复杂性;此外,还需要选择合适大小的池化滤波器。但是上述任务并不简单,但又极为重要;
  • (2)正则化:本文使用了在90%左右的验证精度下得到的模型进行早期停止。然后研究人员用这个模型测试我们的测试数据集。在我们的模型中,我们使用了p = 0.5的一般dropout;

三、实验

(1)数据集

有两个组成部分:i)红外(IR)飓风图像和ii)飓风数据。通过以下方式形成数据集:i)从不同的资源收集具有不同采样率的信息;ii)将数据融合到单个数据集;iii)为图像插入飓风数据;iv)通过转换增加额外的图像;

  • 数据集中的气旋和图像:使用了1999年至2014年期间68个大西洋气旋和30个太平洋气旋的气旋图像,如上表所示。在训练我们的深度CNN时,为了避免TC类别分布不平衡的副作用,我们尝试使用至少达到H3类别的风暴来平衡分布。

为了验证,本文在上图中提供了两个小时间隔时的样本图像差异及其结构相似指数测度(SSIM)和均方根误差(RMSE)值

然后我们应用5个图像转换(水平和垂直翻转,以及90°、180°和270°的旋转,如上图所示),将图像的数量增加到48,828张。我们在这些变换后的图像中使用了与原始图像相同的飓风数据

  • 预处理:首先,我们从这些图像中裁剪出不必要的文本。然后,通过去除矩形图像中较长的区域,形成最大正方形图像

(2)训练与测试

将48,828张图像的数据集分成互不相容的训练集、测试集和验证集,如表IV所示:

每个转换后的图像都保持在与其原始图像相同的集合中。然而,由于这些集合之间的分割比例(百分比),可能会有一些转换后的图像与原始图像分离。然而,这应该不会对训练和整体准确性有任何重大影响

该研究在训练数据集中生成图像的平均图像。从均值图像中减去所有训练图像。这使得我们的模型对于图像对比度的变化更加稳健;
图5显示了每个训练迭代的验证精度、验证损失和训练损失的关系图

随着时期数量的增加,模型学习效果更好。这可以通过在每个历元之后精度的逐渐增加和损失的减少来观察


(3)可视化

图6显示了使用深度可视化工具箱在第一个卷积层的可视化效果:

输入图像以及从第一次卷积、归一化和池化的特征映射依次显示。每个过滤器产生一个不同的映射

第7个特征图通过缩放得到。从第一次卷积得到的激活图像易于解释。其他更高层次的可视化显示在图7中。在这些特征图中很难分析激活的原因

从conv2生成的第113和第39个特征映射如图8所示:

特征图39以飓风结构的上曲率激活,而特征图113则以输入飓风图像的整体弯曲形状激活。这表明每个特征映射从相同的输入学习不同的结构和特征

使用深度可视化工具箱生成的激活映射合成图像如图9所示:

每个图像对应fc8层中的一个代表类别的单元,可观察到 H1、H2 和 H3 类别的圆周运动,NC、TD和TS的随机结构,而合成的 H4 和 H5 图像具有平滑的纹理,突出的飓风眼几乎位于中心


(4)性能分析

给出了实验结果,并以此来与以往的强度估计技术的性能进行了比较:

  1. 模型:一旦有了某种程度上可接受的体系结构,就可以根据验证数据集对其超参数进行调整:
  • 考虑表V中的模型M1和M3,尽管缺少M1的第五个池化层(P5),但M3的精度略高于M1的精度;
  • 与M1相比,M2增加了第四个池化层(P4)。在M2中,第一和第二卷积层中使用的内核数量略少。尽管在M2中使用了P4,但其精度甚至低于M1的精度。池化层P4并没有提高M4的性能;
  • 比较模型M3和M4, M4的卷积层多一层,而M4的初始核数比M3多,其余略有不同。在第二个池化层(P2)之后,M4在第六卷积层(P6)之后只有池化层。这产生了表5中模型中最低的精度。M4中学习到的参数数量明显高于M3;

剩下的模型是在56,095次迭代结束时拍摄的最终快照(相当于65个周期),为最佳模型获得了大约90%的验证精度;

  1. 混淆矩阵:该研究在表六中给出hurdat2和recon数据集飓风分类的混淆矩阵

任何类别的正确分类图像的数量为对角线上的数字。从上表中我们可以看到,飓风更容易被错误地分类为较近的一类(强度差低),而不是较远的一类(强度差高)。观察到一些接近失误(即被单个类错误分类)

  1. 分类性能:精度P、召回率R(检测概率)和F1得分用于评估模型的性能,评测结果见下表:

表VII给出的精确度、召回率和f1得分在0.8左右。这表明模型是稳健的,不偏向于回忆或精确度。对于纯侦察数据集,这些度量值在0.73左右

还通过提供 top-1 和 top-2 精度来分析我们模型的性能。 表 VIII 显示了相应类别是分类为顶级还是二级:

Exact-hit是飓风的正确分类,置信度最高。 2nd-hit 是具有第二高置信度的正确分类。 Top-1 度量是精确命中的数量,而 top-2 是精确命中和第二次命中的总和


(5)RMS强度误差

表IX提供了以节为单位的均方根强度误差(RMSE)值:

对于类别TD到H4,估计的速度是由两个最高类别相对于其概率的加权平均值确定的。否则,将使用概率最高的类别的平均速度


总结

该研究的结果表明,在大西洋和太平洋地区,与之前的技术相比,有了显著的改进。不仅总体RMSE值提高了,而且每个类别的RMSE值也更好了。表IX显示了我们的方法在RMSE (kt)方面与最近的DAVT技术在大西洋和太平洋区域的每个类别的比较:

本文提出了一种利用深度卷积神经网络估算热带气旋强度的可靠且鲁棒的方法。估计新飓风样本的强度类别可以在几秒钟内完成,只需很少的人力。而且该模型在RMSE值和可泛化性方面都有显著改善;
在本文的方法中,有各种各样的小任务可以提高精度和降低RMSE强度值:

  1. 彩色网格和海岸线可以从训练和测试集中删除,它也可以使用没有网格和海岸线的图像;
  2. 从我们的数据集中删除黑色补丁图像可能会提高我们发现的整体准确性,亮度和对比度可以用来增加数据集;
  3. 由于深度卷积神经网络是由多个超参数控制的,增加卷积层和全连接层的数量,通过调整正则化和学习率等参数进行进一步优化,可能会提高精度

未来展望

一、误分类

所有类别的正确分类飓风图像显示在图10中:

如 (h),H5飓风图像被正确分类为H5,置信度为58.26%

图11则提供了具有第二高置信度的正确标签(第二次命中)的图像:

如,图11 (e)中的H2飓风被分类为H2,置信度第二高(41.37%)

此外,图12显示了每个类别的错误分类:

这些图片不属于前1或前2的点击。该研究的模型无法为这些图像提供良好的分类。根据这些样本图像得出的结论可能具有误导性

此外,本研究并未使用任何关于类别的时间信息,而且用它们还能提高准确度。
基于错误分类的深度CNN调整是非常具有挑战性的,因为很难解释它的模型。

二、限制

  • (1)数据集的质量:图像包含彩色的纬度、拉长网格和海岸线。图像中的这些网格和海岸线就像噪音一样,可能会使训练复杂化,而且网格的颜色也是不一致的;
  • (2)数据集的大小:该研究需要一个非常大的训练数据集来避免过拟合和更好地推广模型。尽管通过插值和各种变换得到了25683张图像来训练但是这个数字对于深度学习过程来说仍然不高。同时每个类别的图像数量也有实质性的差异,而数据集中的这些偏差可能会影响分类的准确性;
  • (3)超参数:模型的性能取决于网络的体系结构。由于硬件资源的限制,该研究使用了5个卷积层和3个全连接层,并对学习速率、滤镜大小、步幅、填充等进行了各种小的调整。未来的工作应该使用不同数量的层和参数进行测试;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值