【思维导图】java 基础-24、异常处理
- 格式:xmin
- 大小:166.85 KB
- 文档页数:1
Java程序设计(基础)概述特点面向对象平台可移植性分布式多线程安全性工作方式开发工具JDKjavacjava javadocIDElntelliJEclipse NetBeans术语JDK JREJVM API源程序结构package管理类解决命名冲突import class 注释行注释//块注释/*…*/文档注释/**…*/@author @param@return @throws基本语法关键字有特殊含义的单词(50)能用的(48)不能用的(2)gotoconst 标识符给类、接囗、方法、变量等起的名字命名规则字母、数字、下划线和$,数字不能开头大小写敏感不能跟关键字和保留字(null、true、false)冲突见名知意驼峰标识类名每个单词首字母大写变量和方法名从第二个单词开始每个单词首字母大写命名常量全大写,多个单词用下划线隔开运算符分类算术运算符赋值运算符关系运算符短路运算符条件运算符(三目运算符)自增/自减运算符正负号运算符移位运算符布尔运算符位运算符new 创建对象instanceof运行时类型识别()强制类型转换改变运算优先级[]下标运算符.取成员运算符优先级搞不清楚优先级直接加()结合性从左向右从右向左赋值运算自加自减条件运算正负号字面量整型字面量:100、100L浮点型字面量:3.5、3.5F、3.123e2字符字面量:'a'、'\t'、'\123'布尔型字面量:true、false引用字面量:null类型字面量:String.class、int.class分隔符数据类型基本类型整叙byteshortintlong小数floatdoublecharboolean 枚举类型enum引用类型String数组自定义的类或接囗面向对象基本概念类对象的蓝图和模板类与类之间的关系IS-A:继承泛化实现HAS-A:关联关联聚合合成USE-A:依赖定义类[访问修饰符] [修饰符] class类名 [extends 父类] [implements 接囗1,接口2,...] {}属性:数据抽象方法:行为抽象构造器创建对象:new构造器()对象一切皆为对象对象都有属性和行为对象都是唯一的对象都属于某个类消息调用对象的方法就是给对象发送了一个消息一个对象能够接受某种消息,就意味着该对象向外界提供了某种服务三大支柱封装隐藏一切可隐藏的实现细节,只暴露最简单的编程接囗继承从已有类创建新类的过程提供继承信息的类叫父类(基类、超类)得到继承信息的类叫子类(派生类)子类可以继承到父类中public、protected的属性和方法Java中的继承是单继承Object类是所有类的父类多态定义解释1:同样的引用调用同样的方法却做了不同的事情解释2:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但对A系统来说是透明的实现方法重写:不同的子类对父类的同一方法给出不同的实现版本对象造型:用父类型的引用引用子类型的对象相关内容访问修饰符类public默认方法、属性、内部类public protected默认private抽象类如果一个类有抽象方法,这个类必须被声明为抽象类抽象类中可以没有抽象方法,抽象类也可以有自己的构造器抽象类不能实例化(不能创建对象)强烈建议:将被继承的类设计成抽象类接囗接囗是约定:实现接囗的类必须重写接口中所有方法,否则就要声明为抽象类接囗代表能力:实现了接囗的类就具备了接囗所描述的能力接囗是一种角色:一个类可以实现多个接囗,一个接囗也可以被多个类实现Java中的接囗单方法接囗:这个唯一的方法通常都是回调方法ActionListener Runnable Comparable标识接囗:没有方法,但是表示了某种能力CloneableSerializable常量接囗:这是接囗最不正确的用法内部类相当于外部类中的一个属性内部类可以访问外部类的私有成员设计原则单一职责原则专业化模块化开闭原则抽象是关键封装可变性依赖倒转原则里氏替换原则接囗隔离原则合成聚合复用原则迪米特法则字符串String创建字符串对象String s="Hello";s引用静态区的字符串字面量String s=new String(Hello")s引用堆上的字符串对象字符串的方法长度:length()取字符:charAt(int)变大/小写:toUpperCase()/toLowerCase()连接:concat(String)比较:equals(String)/compareTo(String)判断开头/结尾:startsWith(String)/endsWith(String)模式匹配:indexOf(String,[int])/lastlndexOf(String,[int]取子串:substring(int,[int])修剪左右两边空白:trim()替换:replace(String,String)/replaceAII(String,String拆分:split(String)String代表的是不变字符串可以被修改的字符串StringBuilder 适用于单线程环境StringBuffer适用于多个线程操作同一个字符串的场景方法在指定位置插入字符串:insert(int,String)删除指定位置的字符:delete(int,int)倒转:reverse()追加:append(String)方法[访问修饰符] [修饰符]返回类型方法名([参数列表])[异常声明]访问修饰符public protected默认private修饰符static abstractfinal修饰变量,变量变成常量修饰类,类不能被继承修饰方法,方法不能被重写synchronizednative方法调用静态方法:类名.方法名(实参列表)非静态方法:对象.方法名(实参列表)递归数组基本用法数组的定义数组的初始化new静态初始化length属性下标运算Arrays工具类sort:排序toString:将数组变成字符串copyOf:数组拷贝equals:比较数组元素是否相同二维数组一个普通数组,每个元素又是一个数组应用表格矩阵2D游戏中的地图棋盘流程控制循环结构分类while循环do…while循环for循环for-each循环相关关键字breakcontinue分支结构if...elseswitch...case...default顺序结构。
Java思维导图笔记1. 什么是思维导图思维导图是一种用于展示思维和概念之间关系的图形工具。
它能够帮助我们整理、组织和表达思维。
在学习和思考过程中,使用思维导图可以更清晰地将复杂的信息归类和记录,提高信息的理解和记忆。
2. Java基本语法2.1 数据类型Java提供了一系列的数据类型,包括基本数据类型(如整数、浮点数、字符、布尔值)和引用数据类型(如类、接口、数组等)。
常见的基本数据类型有: - 整数类型:byte、short、int、long- 浮点数类型:float、double - 字符类型:char - 布尔类型:boolean引用数据类型: - 类(class):是面向对象编程中的基本概念,用来封装数据和方法。
- 接口(interface):是一种抽象的数据类型,用来定义类的行为规范。
- 数组(array):用来存储一组相同类型的元素。
2.2 控制流程语句控制流程语句用于控制程序的执行流程。
Java提供了三种主要的控制流程语句:顺序结构、选择结构和循环结构。
顺序结构是最简单的控制流程,指按照代码的先后顺序执行。
选择结构用于根据条件选择不同的执行路径。
常见的选择语句有:- if语句:用于根据一个条件判断选择是否执行某个代码块。
- switch语句:用于根据一个表达式的值选择执行不同的代码块。
循环结构用于重复执行某个代码块直到满足退出条件。
常见的循环语句有: - while语句:在循环开始之前,先判断条件是否满足,如果满足则执行循环体,然后再次判断条件。
- do-while语句:先执行一次循环体,然后再判断条件是否满足,如果满足则继续执行循环体。
- for语句:在循环开始之前,先执行初始化表达式,然后判断条件是否满足,如果满足则执行循环体,并在每次循环结束后执行更新表达式。
2.3 方法方法是一种可重复使用的代码块,用于执行特定的任务。
在Java 中,每个方法都有名称和参数列表,有时也有返回值。
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。
比如说,你的代码少了一个分号,那么运行出来结果是提示是错误ng.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出ng.ArithmeticException 的异常。
异常发生的原因有很多,通常包含以下几大类:用户输入了非法数据。
要打开的文件不存在。
网络通信时连接中断,或者JVM内存溢出。
这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。
-要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。
例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常:运行时异常是可能被程序员避免的异常。
与检查性异常相反,运行时异常可以在编译时被忽略。
错误:错误不是异常,而是脱离程序员控制的问题。
错误在代码中通常被忽略。
例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
Exception 类的层次所有的异常类是从ng.Exception 类继承的子类。
Exception 类是Throwable 类的子类。
除了Exception类外,Throwable还有一个子类Error 。
Java 程序通常不捕获错误。
错误一般发生在严重故障时,它们在Java程序处理的范畴之外。
Error 用来指示运行时环境发生的错误。
例如,JVM 内存溢出。
一般地,程序不会从错误中恢复。
异常类有两个主要的子类:IOException 类和RuntimeException 类。
在Java 内置类中(接下来会说明),有大部分常用检查性和非检查性异常。
Java 内置异常类Java 语言定义了一些异常类在ng 标准包中。
标准运行时异常类的子类是最常见的异常类。
Java异常处理异常:程序运行时发生的非正常情况发生异常程序意外终止,控制权返回给调用者Java的异常类:Throwable(java异常的根类)―Error 系统级错误一般不能恢复―Exception 程序的实现过程中的异常运行时异常指在程序运行中不一定要扑获的异常比如:NullPointerExceptionArrayIndexOutOfBoundsExceptionArithmeticException非运行时异常:指程序运行中一定要扑获的异常比如:SQLExceptionIOExceptionClassNotFoundExceptionpublic class TestException {public int testException(int a,int b){int arr[]={1,5,3,8};try {System.out.println(arr[6]);return a/b;} catch (ArithmeticException e) {System.out.println("分母不能为零\n"+e.toString());return -1;}catch(ArrayIndexOutOfBoundsException ae){ae.printStackTrace();//打印错误堆栈信息System.out.println("数组下标越界");return -1;}catch(Exception ex){System.out.println("我的任务是扑获前面的catch没有扑获的异常");return -1;}finally{System.out.println("我是无论如何都要执行的代码");}}public static void main(String[] args) {TestException test=new TestException();int result=test.testException(8, 0);if(result>-1){System.out.println("运行正常结果:"+result);}else{System.out.println("出现异常");}System.out.println("程序往下执行");}}使用多重catch子句要注意:在前面的异常级别不能大于后者finally是异常处理语句结构的一部分,表示无论什么情况都要执行的模块finally语句的主要作用是在try或catch转到其他部分前做的一些“善后”工作。
java 思维导图思维导图:Java 入门:•基础:Java 语言的基本结构、语法和语义。
•编译环境:JDK 的安装和配置,以及设置环境变量的方法。
•IDE:使用 Eclipse、Netbeans、IntelliJ IDEA 等集成开发环境来创建、编辑、运行和调试 Java 程序。
•第一个 Java 程序:学习如何编写一个简单的 Hello World Java 程序,并学会如何运行它。
Java 核心:•数据类型:学习 Java 的基本数据类型,包括整型、浮点型、字符串和布尔型。
•变量:学习如何使用变量来储存数据,以及其作用。
•运算符:学习 Java 的基本运算符,包括算数、比较、逻辑和赋值等等。
•控制结构:学习使用条件语句(if/else)、循环(for/while)和分支(switch/case)等控制结构来控制程序的执行流程。
•数组:学习如何声明和使用数组,以及如何使用多维数组。
Java 高级:•函数:学习如何声明和定义函数,以及函数的重载。
•类和对象:学习如何声明和定义类、以及类的继承,以及如何使用面向对象编程。
•接口:学习如何声明和实现接口。
•异常处理:学习如何使用异常处理机制来处理系统中的异常情况。
•Collection Framework:学习 Java 标准类库 Collection Framework 中的集合类,包括 List、Set 和 Map 等。
•JDBC:学习如何使用 JDBC 框架来连接到数据库,并执行数据库操作。
Java 高级(续):•文件 I/O:学习如何使用 Java 读写文件,并管理文件的目录结构。
•枚举:学习如何声明和使用枚举类型。
•泛型:学习如何使用泛型来实现参数化类型。
•反射:学习如何使用反射来访问类的成员变量和方法,以及如何创建动态代理对象。
•多线程:学习如何使用多线程编程来提高程序运行效率。
•JVM:学习 JVM 的体系结构以及 Java 程序在虚拟机上的运行过程。
java的异常处理:总结为五个关键字和一个图trycatchfinallythrowthrows一个图如下。
(异常的继承图)异常(Exception)也叫例外。
在Java编程语言中,异常就是程序在运行过程中由于硬件设备问题、软件设计错误、缺陷等导致的程序错误。
在软件开发过程中,很多情况都将导致异常的产生,例如:(1) 想打开的文件不存在;(2) 网络连接中断;(3) 操作数超出预定范围;(4) 正在装载的类文件丢失;(5) 访问的数据库打不开可见,在程序中产生异常的现象是非常普遍的。
在Java编程语言中,对异常的处理有非常完备的机制。
异常本身作为一个对象,产生异常就是产生一个异常对象。
这个对象可能由应用程序本身产生,也可能由Java 虚拟机产生,这取决于产生异常的类型。
该异常对象中包括了异常事件的类型以及发生异常时应用程序目前的状态和调用过程。
JAVA的异常处理机制:在Java 程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。
这个对象可能是由正在运行的方法生成,也可能由Java虚拟机生成,其中包含一些信息指明异常事件的类型以及当异常发生时程序的运行状态等。
Java语言提供两种处理异常的机制:(1)捕获异常在Java程序运行过程中系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。
找到能够处理这种类型异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获(catch)异常。
这是一种积极的异常处理机制。
如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。
(2)声明抛弃异常当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃(throws)异常。
注意:对于非运行时异常,程序中必须要作处理,或者捕获,或者声明抛弃;而对于运行时异常,程序中则可不处理。
Java异常异常Exception和Error区别1)Exception是程序正常运行中,可以预料的以外情况,可以被捕获进行相应处理;Error是正常情况下,不大可能出现的情况,绝大部分Error会导致程序处于非正常、不可恢复状态,如OutOfMemoryError等无法捕获处理。
2)Exception分为可检查异常(checked)和不检查异常(unchecked),可检查异常在程序中必须显式进行捕获处理,是编译期检查的一部分。
不检查异常是运行时异常,如NullPointerException、ArrayIndexOutOfBoundsException等,属于编码可避免的逻辑错误,不会编译期强求。
3)Exception和Error都继承Throwable。
NoClassDefFoundError和ClassNotFoundException区别NoClassDefFoundError是一个Error类,是指一个class在编译时存在,但在运行时找不到class文件。
ClassNotFoundException是一个Exception类,使用类似Class.forName()等方法时进行的checked exception。
checked exception和unchecked exception区别受检查异常1)checked exception是受检查异常,Java代码在编译过程中,若受检查异常未被catch或throws关键字处理,则无法通过编译。
2)除了RuntimeException及其子类,其他的Exception类和其子类都属于受检查异常。
3)常见的受检查异常:如IO相关异常、SQLException、ClassNotFoundException。
不受检查异常(运行时异常)1)unchecke exception是不受检查异常,Java代码在编译过程中,即使不处理该异常,也能够通过编译。