摘要: 处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理 在多重catch块后面,可以加一个catch (Exception)来处理可能会被遗漏的异常 对于不确定的代码,也可以加上try-catch,处理潜在的异常 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印 阅读全文
posted @ 2022-05-13 21:27 Epiphany8Z 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。 在程序中使用自定义异常类,大体可分为以下几个步骤: 创建自定义异常类。 在方法中通过throw关键字抛出异常对象。 如果在当前抛出异常的方法中处理异常, 阅读全文
posted @ 2022-05-13 21:11 Epiphany8Z 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 抛出异常 public class Demo02 { public static void main(String[] args) { Demo02 demo02 = new Demo02(); try { demo02.division(1,0); } catch (ArithmeticExcep 阅读全文
posted @ 2022-05-13 20:46 Epiphany8Z 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 在Exception分支中有一个重要的子类RuntimeException(运行时异常) ArraylndexOutOfBoundsException(数组下标越界) NullPointerException(空指针异常) ArithmeticException(算术异常) MissingResou 阅读全文
posted @ 2022-05-13 20:43 Epiphany8Z 阅读(24) 评论(0) 推荐(0) 编辑
摘要: Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。 Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止; 阅读全文
posted @ 2022-05-13 20:41 Epiphany8Z 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。 阅读全文
posted @ 2022-05-13 20:39 Epiphany8Z 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常: 检查性异常:最具代表的检苣性浮吊定用一阳庆一P此导堂在编译时不能被简单地忽略。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。 运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时 阅读全文
posted @ 2022-05-13 20:37 Epiphany8Z 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了。等等。 软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们 阅读全文
posted @ 2022-05-13 20:35 Epiphany8Z 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 1.标准内部类:直接在大类中定义,内部类的方法可以获取外部类的私有属性。 2. 静态内部类:直接在大类中定义,并在class之前加上static关键字 3. 成员内部类:在方法中定义 3. 匿名内部类:new对象,不把示例保存到变量中 public class Outer { private int 阅读全文
posted @ 2022-05-13 03:02 Epiphany8Z 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有! 接口:只有规范! 接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。声明类的关键字是class,声明接口的关键字是interface public interface Demo06 { void add(); void de 阅读全文
posted @ 2022-05-13 02:33 Epiphany8Z 阅读(19) 评论(0) 推荐(0) 编辑
摘要: abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。 抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。 抽象方法,只有方法的声明,没有方法的实现,它是 阅读全文
posted @ 2022-05-13 02:27 Epiphany8Z 阅读(26) 评论(0) 推荐(0) 编辑
摘要: public class Demo03 { // 1. 最先执行,只会执行一次 static { System.out.println("静态代码块"); } // 2. 其次执行,每次new都会执行 { System.out.println("匿名代码块"); } // 3. 最后执行,每次new 阅读全文
posted @ 2022-05-13 02:25 Epiphany8Z 阅读(16) 评论(0) 推荐(0) 编辑
摘要: public class Demo02 { public static void main(String[] args) { //Object>Person>Student //Object>Person>Teacher //Object>String Object object = new Stu 阅读全文
posted @ 2022-05-13 02:16 Epiphany8Z 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多 多态存在的条件 有继承关系 子类重写父类方法 父类引用指向子类对象 注意:多态是方法的多态,属性没有多态性。 instanceof 阅读全文
posted @ 2022-05-13 01:58 Epiphany8Z 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 为什么需要重写: 父类的功能,子类不一定需要,或者不一定满足 重写: 需要有继承关系,子类重写父类的方法 方法名必须相同 参数列表列表必须相同 修饰符:范围可以扩大但不能缩小: public>Protected>Default>private 抛出的异常:范围可以被缩小,但不能扩大;classNot 阅读全文
posted @ 2022-05-13 01:55 Epiphany8Z 阅读(17) 评论(0) 推荐(0) 编辑
摘要: super:1. super调用父类的构造方法,必须在构造方法的第一个 2. super 必须只能出现在子类的方法或者构造方法中 3. super和 this 不能同时调用构造方法 this:1. 代表的对象不同: this:本身调用者这个对象 super:代表父类对象的应用 2. 前提 this: 阅读全文
posted @ 2022-05-13 01:49 Epiphany8Z 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。 extands的意思是“扩展”。子类是父类的扩展。 JAVA中类只有单继承,没有多继承! 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。 继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承 阅读全文
posted @ 2022-05-13 01:43 Epiphany8Z 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 该露的露,该藏的藏 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。 封装(数据的隐藏) 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。 记住这句话就够了:属性私有,get/se 阅读全文
posted @ 2022-05-13 01:38 Epiphany8Z 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 内存分析图 宠物类 public class Pet { String name; int age; void speak(String words){ System.out.println(words); } static void sayHi(){ System.out.println("Hi" 阅读全文
posted @ 2022-05-13 01:25 Epiphany8Z 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 使用new关键字创建对象 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下俩个特点: 必须和类的名字相同 必须没有返回类型,也不能写void 构造器必须要掌握 阅读全文
posted @ 2022-05-13 00:53 Epiphany8Z 阅读(22) 评论(0) 推荐(0) 编辑