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. 【CPLUSOJ】【USACO】【差分约束】排队(layout)

    [题目描述] Robin喜欢将他的奶牛们排成一队.假设他有N头奶牛,编号为1至N.这些奶牛按照编号大小排列,并且由于它们都很想早点吃饭,于是就很可能出现多头奶牛挤在同一位置的情况(也就是说,如果我们认 ...

  2. scikit-learn_cookbook1: 高性能机器学习-NumPy

    源码下载 在本章主要内容: NumPy基础知识 加载iris数据集 查看iris数据集 用pandas查看iris数据集 用NumPy和matplotlib绘图 最小机器学习配方 - SVM分类 介绍 ...

  3. Linux高级命令-sort、uniq、 cut、sed、grep、find、awk

    sort(参考学习网站:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html) 功能:根据不同的数据类型进行排序 格式:s ...

  4. Linux常见的Shell命令

    1.具体的shell命令用法可以通过help或man命令进入手册来查询其具体的用法.2.终端本质上对应着linux上的/dev/tty设备,linux的多用户登录就是通过不同的/dev/tty设备完成 ...

  5. 【Powershell 教程】学习资源汇总

    [Powershell 教程]学习资源汇总 一.书籍教程 1.<Windows PowerShell实战指南>第3版 作者:[美] Don,Jones(道·琼斯),Jeffery,Hick ...

  6. Java线程池实现

    电脑的CPU资源是有限的,任务的处理速度与线程数量之间并不是正相关.当线程数量过多,CPU要频繁的在不同线程切换,反而会引起处理性能的下降.线程池中最大的线程数,是考虑多种因素来事先设定的,比如硬件的 ...

  7. php 精度计算问题

    PHP var_dump(intval(0.58 * 100)); 正确结果是 57,而不是 58 浮点运算惹的祸 其实这些结果都并非语言的 bug,但和语言的实现原理有关, js 所有数字统一为 N ...

  8. Nginx防盗链、访问控制、解析PHP相关配置及Nginx代理

    6月11日任务 12.13 Nginx防盗链12.14 Nginx访问控制12.15 Nginx解析php相关配置12.16 Nginx代理 扩展502问题汇总 http://ask.apelearn ...

  9. Docker虚拟化之<基础理论>

    1.虚拟化技术的概念 (1)虚拟化技术主要是将物理的资源转变为逻辑上可以管理的资源,以打破物理结构上的壁垒,让计算元件运行在虚拟的基础上,而不是真实的物理资源上.(2)虚拟化技术的底层是要进行虚拟化的 ...

  10. Netty学习——通过websocket编程实现基于长连接的双攻的通信

    Netty学习(一)基于长连接的双攻的通信,通过websocket编程实现 效果图,客户端和服务器端建立起长连接,客户端发送请求,服务器端响应 但是目前缺少心跳,如果两个建立起来的连接,一个断网之后, ...