版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章字符串和常用类库01开篇引导小林在学习完Java基础语法和面向对象思想后,他想实战一个“用户注册”功能。在这个功能中,接收用户名信息、手机号信息及密码信息,这些信息以什么类型进行存储更为合适呢?对于手机号信息、密码长度,期望对其提供校验,以确保用户输入的是一个正确的手机号格式、密码长度不要太短,如何对信息进行匹配校验呢?在注册表单中,期望程序能够生成一串随机数,作为验证码,Java是否提供了类似功能的API?注册完后,期望账号有效期为固定的一段时间,在Java中如何表示日期类型,以及对日期进行计算呢?本章内容将学习字符串类型及字符串相关操作,正则表达式的语法及使用、及Java一些常用的工具类。01开篇引导知识要点掌握程度相关知识字符串定义和通用操作掌握创建字符串字符串通用操作StringAPIStringBuilder和StringBuffer重点掌握StringBuilder和StringBuffer概述常用方法tringBuilder和StringBuffer区别正则表达式重点掌握正则表达式概述正则表达式语法正则表达式的使用4.静态方法Java常用类库掌握Object类Math类Random类4.日期类01开篇引导技能要点掌握程度应用方向字符串API的使用掌握应用开发移动端开发StringBuilder和StringBuffer区别重点掌握应用开发Web开发服务器开发正则表达式定义重点掌握表单校验文本查找内容替换Java常用类库的使用掌握应用开发Web开发3.桌面开发4.大数据开发5.游戏开发字符串定义和通用操作02在Java编程中,字符串(String)是一种非常常见的数据类型,主要用于存储文本信息。还有一个字面相似的概念叫字节(byte)。字节是存储容量的基本单位,一个字节等于8个二进制单位。字符是数字、字⺟、汉字以及其他语⾔的各种符号,一个字符由一个或多个字节组成,字符串由一个或多个字符组成。无论是处理用户输入输出,还是与外部信息通信,字符串都起着重要作用。本章节将深入探讨Java中的字符串:什么是字符串,如何创建和操作字符串,以及一些通用的字符串操作方法。异常的概念-异常体系结构02Java语言有着强大的异常处理机制,能够将代码控制权从出错点转移到最近的异常处理器。异常机制能够帮助我们找到程序中的问题,Java中异常的基类是java.lang.Throwable,其下有两个异常分支:java.lang.Error和java.lang.Exception,平常代码中抛出的异常通常指java.lang.Exception。异常的概念-异常体系结构02Throwable体系说明:
Error:在正常环境中不希望被程序捕获的异常。Java运行中使用Error类型异常来显示与运行时系统本身相关的错误。堆栈溢出就是这种错误的一个例子。
Exception:用于表示代码程序可能出现的异常情况,它也是用来创建自定义异常类型类的父类表示异常。异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是应该且必须要处理掉的。对于Exception而言,又可细分为运行时异常(RuntimeException)和非运行时异常,也称为未检查异常(UncheckedException)和检查异常(CheckedException)。异常的概念-异常体系结构02运行时异常都是RuntimeException类及其子类异常,这些异常是未检查异常,在程序中,您可以选择捕获和处理,也可以选择不理会。这些异常通常是由程序中的逻辑错误引起的,程序应从逻辑的角度尽可能避免此类异常。非运行时异常是RuntimeException以外的异常,也称为检查异常。它们都属于Exception类及其子类。对于这种异常,Java编译器强制要求我们必需对出现的这些异常进行捕获处理,否则程序无法通过编译(受Java编译器检查)。异常的概念-常用的异常类02Java预定义了很多异常类,位于java.lang包中,用于程序中不同异常的声明或抛出,你应该根据异常类型去合理处理或抛出合适的异常。如图3所示,通过API或编译工具如IntelliJIDEA,对Exception类查看其子类,默认快捷键为Ctrl+H。Java预定义了很多异常类,位于java.lang包中,用于程序中不同异常的声明或抛出,你应该根据异常类型去合理处理或抛出合适的异常,整理了一些常用的异常类及其说明,如下表所示异常类说明Exception异常层次结构的根类RuntimeException运行时异常,多数java.lang异常的根类ArithmeticException算术异常,如以零做除数ArraylndexOutOfBoundException数组大小小于或大于实际的数组大小NullPointerException尝试访问null对象成员,空指针异常ClassNotFoundException不能加载所需的类NumberFormatException数字转化格式异常,比如字符串到float型数字的转换无效异常的概念-常用的异常类02异常类说明IOExceptionI/O异常的根类FileNotFoundException找不到文件EOFException文件结束InterruptedException线程中断IllegalArgumentException方法接收到非法参数ClassCastException类型转换异常SQLException操作数据库异常异常处理-异常处理捕获03对于可能会抛出异常的代码块,可以使用try-with-resource方式进行处理,涉及的关键字为try、catch、finally。语法块分为trycatch及trycatchfinally。(1)try-catch:捕获异常语法结构如下:try{
将可能发生异常的代码放入try代码块中}catch(异常类型){
处理异常的手段,如:记录日志/打印异常信息/继续抛出异常}catch(异常类型){
处理异常的手段,如:记录日志/打印异常信息/继续抛出异常}....异常处理-异常处理捕获03【例9-1】读取文件以获取一个文件输入流,在传入文件路径时,可能参数为空;即使文件路径不为空,也不排除这个文件路径是无效的,所以,代码应该考虑这些问题并捕获这些问题,代码如下:importjava.io.FileInputStream;importjava.io.FileNotFoundException;publicstaticvoidreadFile(StringfilePath){try{FileInputStreamfis=newFileInputStream(filePath);}catch(NullPointerExceptione){System.out.println("文件名不能为空");}catch(FileNotFoundExceptione){System.out.println("文件路径异常");}}在上述代码中,try-catch,这种异常处理方式,要求多个catch中的异常不能相同,并且若catch中的多个异常之间有子父类异常的关系,那么子类异常要求在上面的catch处理,父类异常在下面的catch处理。不然话会出现编译错误。异常处理-异常处理捕获03小贴士:若知道代码可能会抛出异常,但这个异常程序员并不清楚会报哪个具体异常,或者不希望过细地处理异常时,或可能的异常情况较多时,可以统一捕获Exception异常,即只要代码可能有异常,都对其进行捕获。publicstaticvoidreadFile2(StringfilePath){try{FileInputStreamfis=newFileInputStream(filePath);}catch(Exceptione){System.out.println("程序错误");}}在上述代码中,个异常一次捕获,多次处理。这种操作精度更细,能够更好定位异常问题;多个异常一次捕获一次处理。异常处理-异常处理捕获03(2)try-catch-finally:不论异常是否出现或者被捕获,都希望执行某些操作,这些代码应该放在finally代码块中。语法结构如下: try{ //dosomething}catch(ExceptionClasse){ //handle}finally{ //handle }异常处理-异常处理捕获03【例9-2】在9-1案例中在使用完毕对象之后,期望将流进行关闭,并且关闭流这个操作不管代码是否出错,应当必须执行,否则它将一直占用内存资源,此时,就应该把这些必要操作放在finally代码块中,代码如下:publicstaticvoidreadFile3(StringfilePath){FileInputStreamfis=null;try{fis=newFileInputStream(filePath);}catch(Exceptione){System.out.println("程序错误");}finally{try{fis.close();}catch(IOExceptione){e.printStackTrace();}}}在上述代码中,你应该避免在finally子句中抛出异常,如果不能避免,那就在finally中再次使用try-catch。要注意的是,如果try代码块抛出异常,则该异常会被finally中的异常覆盖异常处理-异常抛出03在方法声明处使用throws关键字,表明该方法可能抛出的异常。这样调用该方法的代码就需要处理这些异常.语法结构如下:publicvoidmethodTest()throws异常类型1,异常类型2{//方法体}【例9-3】在9-1案例中使用try-catch进行捕获实现,在9-2中使用throws进行抛出异常实现,代码如下:importjava.io.FileInputStream;importjava.io.FileNotFoundException;publicclassThrowableDemo01{publicstaticvoidreadFile(StringfilePath)throwsNullPointerException,FileNotFoundException{FileInputStreamfis=newFileInputStream(filePath);}}在上述代码中,但是这个异常无法处理或不希望由自身方法直接处理,而是希望这些异常交由方法调用者处理时,需要在方法上使用throws声明。自定义异常-自定义异常的概述04JavaAPI提供了许多异常类,如果这些异常在你的编程场景中刚好适合,你就应该使用它们。除非没有一个标准的异常类能够满足你的需求,你才需要自定义异常类。自定义异常的概述:可以根据需要自定义异常类。自定义异常类通常继承自Exception或其子类。对于自定义异常类来说,最重要的部分就是它的类名,异常类名应做到见名知意。自定义异常-自定义异常的实现04建议为异常类定义两个构造方法,一个无参构造,一个字符串参数构造,用于描述异常信息。【例9-4】当一个方法抛出异常时,建议使用javadoc的@throws标签来文档化。以下是一个自定义的注册异常类,代码如下:publicclassRegisterExceptionextendsException{/***无参构造*/publicRegisterException(){}/***有参构造*@parammessage异常提示信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产妇产后心理疏导操作指引
- 客户投诉处理标准作业操作流程
- 仪器设备操作规程
- 废气排放超标应急处置办法
- 应急演练评估总结整改方案
- 理疗房环境清洁消毒标准流程
- 应急演练效果评估与改进办法
- 养生药膳食材搭配服务规范
- 关键装置重点部位管控细则
- 烟草病毒病传播途径防控方案
- 2026年枣庄市妇幼保健院公开招聘备案制工作人员笔试备考试题及答案解析
- 2026四川自贡市招聘园区产业发展服务专员46人考试模拟试题及答案解析
- 2025年信息技术特岗试题及答案
- 上海虹口区2025-2026学年(五四学制)八年级下学期期中语文试题【含答案】
- 做账实操-零售药店全盘账务处理分录及成本核算流程
- 交管12123驾照学法减分题库500题(含答案)
- 佛山市禅城区城建集团有限公司招聘笔试题库2026
- 军用关键软硬件自主可控产品名录(2025年v1版)
- 智鼎在线iqt测评题库
- 2025年盘活存量资产项目可行性研究报告及总结分析
- 2025中数联物流运营有限公司招聘商务拓展、投标岗、数字化规划、综合组员工等社招岗位备考题库附答案解析
评论
0/150
提交评论