Object类(所有类的顶级父类)

今天说的两个方法:
equals:
        用于比较两个对象是否相同,它其实是使用两个对象的内存地址进行比较,底层默认使用的是==比较运算符来判断的。
        在以后开发中,要比较两个对象是否相同,经常会根据对象中的属性值进行比较。也就是经常需要重写Object类中的equals方法,根据对象的属性值进行比较
        注意:在重写Object类中的equals方法时,一定要注意参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前一定要进行类型判断
toString:
        返回该对象的字符串表现形式。其实该字符串内容就是对象的类型+@+内存地址值。
        在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
        注意:在我们直接使用输出语句输出对象名的时候,其实通过该对象调用了其toString()方法.
异常:(分为运行时异常和编译时异常)
异常的概念:
        异常本身是一个类,产生异常就是创建异常对象并抛出(throw)了一个异常对象。Java处理异常的方式是中断处理。
 顶级父类:Throwable
子类:Exception、Error(不可修改错误。不用我们处理)
Exception子类:
RuntImeException(运行时异常)
运行时异常(RuntimeException):运行时可能会报错,可以不处理。
编译时异常(Exception):编译时无法编译通过。
自定义异常:
自定义运行时异常:需要继承RuntimeException。写构造方法即可
自定义编译时异常:需要继承Exception。写构造方法即可
自定义异常:需要手动抛出异常
自定义异常格式:
Class 异常名 extends Exception{ //或继承RuntimeException
        public 异常名(){
        }
}
 
处理异常:try{}catch(异常对象){}
捕获处理,将异常获取,使用try/catch做分支处理
格式:
try{
        需要检测的异常;
}catch(异常对象) {
        异常处理代码:
        可以调用异常的方法通常我们只使用一个方法: printStackTrace打印异常信息
}
另外两种处理方式:
        1.声明抛出处理,出现异常后不处理,声明抛出给调用者处理。
        格式:
                方法声明上加throws 异常类名
        2.抛出异常 使用throw关键字。写在方法内部。
        格式:
                throw new 异常类名(参数);
        3.抛出指定异常的具体操作步骤:
                1,创建一个异常对象。封装一些提示信息(信息可以自己编写)。
                2,需要将这个异常对象告知给调用者。怎么告知呢?怎么将这个异常对象传递到调用者处呢?通过关键字throw就可以完成。throw 异常对象;
        throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。
注意:异常处理,指处理的一种可能性,即有了异常处理的代码,不一定会产生异常。
如果没有产生异常,则代码正常执行,如果产生了异常,则中断当前执行代码,执行异常处理代码。
 
捕获异常:try{}catch(异常对象){}finally{}
        格式:
try {
        //需要被检测的语句。
}catch(异常类变量) { //参数。
        //异常的处理语句。
}finally {
        //一定会被执行的语句。
}
 
异常的注意事项:
        多异常处理
                捕获处理:
                    1多个异常分别处理
                    2多个异常一次捕获多次处理
                    3多个异常一次捕获一次处理
        声明抛出异常:
                声明上使用,一次声明多个异常
                运行时异常被抛出之前可以不处理。即不捕获也不声明抛出
                如果父类抛出了多个异常,子类覆盖父类方法时,只能抛出相同的异常或者是他的子集
                父类方法没有抛出异常,子类覆盖父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
 
                当多异常处理时,捕获处理,前边的类不能是后边类的父类
                在try/catch后可以追加finally代码块,其中的代码一定会被执行,通常用于资源回收。
                一个try 多个catch组合 : 对代码进行异常检测,并对检测的异常传递给catch处理。对每种异常信息进行不同的捕获处理。
注意:
        这种异常处理方式,要求多个catch中的异常不能相同,并且若catch中的多个异常之间有子父类异常的关系,那么子类异常要求在上面的catch处理,父类异常在下面的catch处理。
        try finally 组合: 对代码进行异常检测,检测到异常后因为没有catch,所以一样会被默认jvm抛出。异常是没有捕获处理的。但是功能所开启资源需要进行关闭,所有finally。只为关闭资源。

Object类和异常的更多相关文章

  1. 0511Object类和异常

    Object类和异常 [要点] toString方法:将类中要打印的信息转换为自定义格式的打印内容 [返回的是当前对象对应的完整包名.类名@当前对象在内存空间首地址(十六进制)] equals方法 p ...

  2. 各种异常 及异常类和Object类

    Day05 异常 Object类 equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较.Object类中的equals方法内部使用的就是==比较运算符. 2. 描述人这个 ...

  3. 各种异常 及异常类和Object类 Math类

    Day05 异常 Object类 equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较.Object类中的equals方法内部使用的就是==比较运算符. 2. 描述人这个 ...

  4. Object类-try-catch-finally-throw-throws-自定义异常

    一.Object类     Object类是最顶端的类,其它类都是它的子类,它的方法可以被继承.如果定义的类没有继承别的类,那它的直接父类就是Object.如果方法参数类型为object类型, 则调用 ...

  5. 线程操作案例--生产者与消费者,Object类对线程的支持

    本章目标 1)加深对线程同步的理解 2)了解Object类中对线程的支持方法. 实例 生产者不断生产,消费者不断消费产品. 生产者生产信息后将其放到一个区域中,之后消费者从区域中取出数据. 既然生产的 ...

  6. Java基础(43):Java中的Object类与其方法(转)

    Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...

  7. 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)

    java中的hashcode.equals和toString方法都是基类Object的方法. 首先说说toString方法,简单的总结了下API说明就是:返回该对象的字符串表示,信息应该是简明但易于读 ...

  8. Java提高学习之Object类详解(1)

    转自:http://www.importnew.com/10304.html 问:什么是Object类? 答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父 ...

  9. Java笔记:与系统交互、系统相关的类,Object类

    1.程序与用户交互 (1)运行一个Java程序的时候要给它提供一个main方法入口,这边分析一下这个main方法的签名public static void main(String[] args);pu ...

随机推荐

  1. (三十六)golang--文件的基本操作

    文件程序中是以流的形式操作的. 流:数据在数据源(文件)和程序(内存)之间经历的路径: 输入流:数据从数据源到程序的路径: 输出流:数据从程序到数据源的路径: 常用的文件操作和函数: 1.常用的文件操 ...

  2. sql语句执行步骤详解

    目录 一.准备工作 二.SQL逻辑查询语句执行顺序 三.SQL书写习惯 一.准备工作 先来一段伪代码,首先你能看懂么? SELECT DISTINCT <select_list> FROM ...

  3. nginx(二):基本应用

    配置文件详解 event段配置 worker_connections #; 每个worker进程所能够响应的最大并发请求数量: nginx最大并发响应数=worker_proceses * worke ...

  4. 解密面试中的套路,你都get到了么?

    如果大家有关注一些测试类的公众号或者论坛的话,肯定会发现很多文章都在表示现在行业的寒冬冷潮来了!然后有很多测试行业从业者,或者转行测试行业者都表示:工作好难找,公司跑了千千万,依然拿不到一个offer ...

  5. Theano中的导数

    计算梯度 现在让我们使用Theano来完成一个稍微复杂的任务:创建一个函数,该函数计算相对于其参数x的某个表达式y的导数.为此,我们将使用宏T.grad.例如,我们可以计算相对于的梯度 import ...

  6. 在centos7上进行hadoop-3.1.2的伪分布搭建

    第一步:配置网络(静态IP) vi /etc/sysconfig/network-scripts/ifcfg-ens33(网卡名称可能不同) 1. 修改: 将该配置文件中的ONBOOT=no修改为ye ...

  7. SpringCloud Sleuth + Zipkin 实现链路追踪

    一.Sleuth介绍   为什么要使用微服务跟踪? 它解决了什么问题? 1.微服务的现状?   随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂 ...

  8. Maven安装目录分析

    maven目录结构介绍 bin: 包含了mvn运行的脚本(既在cmd输入命令执行依赖,在命令行输入任何一条mvn命令时,实际上就是在调用这些脚本) boot: 该目录只包含一个文件,是一个类加载器,m ...

  9. C# Properties文件夹 Bin 目录 Bin 目录

    Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需 ...

  10. 英语口语考试资料Friendships

    Friendships Remember Friendships can be complicated. When you want to get to know someone, it helps ...