`

equals和==的区别,final和finally,Object中的常见的方法

 
阅读更多
equals和==的区别
equals用来比较的是两个对象的内容是否相等
"=="只是比较引用(对象的地址)。

  如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:
     boolean equals(Object  o){
     return  this==o;
}
     这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。

final和finally
final:java中的关键字,修饰符。
finally:java的一种异常处理机制。

1.如果一个类被声明为final,就意味着它不能再派生出新的子类,不能作为父类被继承。因此,一个类不能同时被声明为absrtact抽象类的和final的类。
2.如果将变量或者方法声明为final,可以保证它们在使用中不被改变.
    2.1 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
    2.2被声明final的方法只能使用,不能重载。

Object中的常见的方法
1.clone()
创建并返回此对象的一个副本。
2.equals()
对象相等判断方法
3.finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
4.getclass()
返回此 Object 的运行时类。
5.hashcode()
  返回该对象的哈希码值。
6.notify()
唤醒在此对象监视器上等待的单个线程。
7.notifyAll()
唤醒在此对象监视器上等待的所有线程。
8.toString()
返回该对象的字符串表示。
9.wait()

Java的异常类层次结构

1. runtimeException子类:

    1、 java.lang.ArrayIndexOutOfBoundsException
    数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
    2、java.lang.ArithmeticException
    算术条件异常。譬如:整数除零等。
    3、java.lang.NullPointerException
    空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等
    4、java.lang.ClassNotFoundException
    找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。
   5、java.lang.NegativeArraySizeException  数组长度为负异常
   6、java.lang.ArrayStoreException 数组中包含不兼容的值抛出的异常
   7、java.lang.SecurityException 安全性异常
   8、java.lang.IllegalArgumentException 非法参数异常

2.IOException
IOException:操作输入流和输出流时可能出现的异常。
EOFException   文件已结束异常
FileNotFoundException   文件未找到异常

3. 其他
ClassCastException    类型转换异常类
ArrayStoreException  数组中包含不兼容的值抛出的异常
SQLException   操作数据库异常类
NoSuchFieldException   字段未找到异常
NoSuchMethodException   方法未找到抛出的异常
NumberFormatException    字符串转换为数字抛出的异常
StringIndexOutOfBoundsException 字符串索引超出范围抛出的异常
IllegalAccessException  不允许访问某类异常
InstantiationException  当应用程序试图使用Class类中的newInstance()方法创建一个类的实例,而指定的类对象无法被实例化时,抛出该异常

对JDK8的新特性有什么了解
Lambda表达式和函数式接口
接口的默认方法和静态方法
Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法
方法引用
重复注解
更好的类型推断
Date API
拓宽注解的应用场景
函数式接口
  • 大小: 179.1 KB
分享到:
评论

相关推荐

    Java面试题-基础+集合原理.pdf

    涵盖Object-Oriented Programming(OOP)相关知识点,包括多态(Polymorphism)、方法Overload和Override、等于运算符(==)和equals()方法的使用、final、finally和finalize关键字的使用、try-catch-finally语句...

    Java面试题一站式全收录

    * == 比较对象的地址,对于 Object 对象中的 equals 方法使用的也是 ==,比较的是对象的地址,默认情况下使用对象的 equals 比较地址,如果要实现自己的比较方式需要复写 equals 方法。 * equals:比较对象的值,...

    java面试题经典讲解2023年最新题目分析.docx

    11. final、finally、finalize的区别final用于修饰属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally 是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在GC执行时...

    java面试宝典pdf

    接口和抽象类都是用于定义公共接口的方法,区别在于接口中所有的方法隐含的都是抽象的,而抽象类可以同时包含抽象和非抽象的方法。 10. final, finally, finalize 的区别 final 用于声明属性、方法和类,分别表示...

    JAVA程序员面试题(含有答案)经典版

    本文总结了 Java 程序员面试题中的一些重要知识点,涵盖了异常处理机制、垃圾回收、Error 和 Exception 的区别、final、finally 和 finalize 的区别、 Anonymous Inner Class、Static Nested Class 和 Inner Class ...

    Java大数据面试常见问题.docx

    Java 大数据面试常见问题中,涵盖了多个知识点,包括 String 和 StringBuffer 的区别、ArrayList、Vector、LinkedList 的存储性能和特性、HashMap 和 Hashtable 的区别、final、finally、finalize 的区别、switch ...

    开目内部JAVA面试题库.pdf

    开目内部JAVA面试题库包含了Java编程语言的基础和高级知识点,是准备Java技术面试的重要参考资料。...了解和掌握这些Java基础和进阶知识,对于理解和编写高质量的Java代码至关重要,也是面试中常见的考察点。

    Java基础高频的面试题,看这一篇就够了

    Java基础高频面试题总结 一、Java基础知识点 ...本文总结了Java基础高频面试题,包括基本数据类型、接口和抽象类、集合框架、final、finalize和finally、==和equals、String、StringBuffer和StringBuilder等知识点。

    Java初中级程序员面试题宝典含参考答案.docx

    5. =="和 equals 方法的区别 == 如果判断值类型的话,判断内容是否相同。如果判断引用类型则是判断内存地址是否相同Equals 判断值内容是否相等 6. Integer 和 int 的区别 Integer 是引用类型,默认值是 null。而 ...

    Java大数据面试常见问题.pdf

    Java 大数据面试中常见的问题和答案,涵盖了字符串操作、集合框架、HashMap 和 Hashtable 的区别、final、finally 和 finalize 的区别、switch 语句的使用、多线程实现方法、Java 流类型、main 方法的声明、Java ...

    Java知识体系简答题系列 -.md

    - **继承**: 允许子类继承父类的属性和方法,并且可以在子类中添加新的方法或覆盖父类的方法。 - **多态**: 同一接口可以由不同类的对象来实现,允许不同的对象响应相同的消息。 #### 8. final、finally、finalize...

    java后端初级面试题

    在这篇文章中,我们将讨论 Java 后端开发中一些常见的面试题目,涵盖了 Java 基础知识、Java 面向对象编程、Java 集合框架、Java 多线程编程等方面。 一、JDK/JRE/JVM 的区别 JDK(Java Development Kit)是 Java ...

    java面试宝典2012版

    equals方法用于比较两个对象的内容是否相等,这是Object类中的方法,因此所有Java对象都继承了该方法。但是,如果不重写equals方法,它默认与"=="功能相同,即比较对象的内存地址值。 12. 静态变量和实例变量的区别...

    Java面试题.docx

    以上是Java面试中常见的一些问题和解析,对于求职者来说,深入理解和掌握这些概念是提升面试竞争力的关键。同时,还需要了解异常处理、集合框架、多线程、IO流、设计模式等相关知识,以全面展示自己的技能水平。

    Java常见面试题集及答案

    Java是一种广泛使用的面向...= y`)的情况,可能会导致equals和hashCode方法的正确性问题,需要根据需求实现这两个方法。 以上知识点只是Java面试中的一部分,涵盖了许多基础和核心概念,对于理解Java编程至关重要。

    Java面试宝典2014版.pdf

    - final、finally和finalize是三个完全不同的概念,分别表示最终的、最终要执行的代码块,和Object类的一个方法。 - 运行时异常和一般异常都是Exception的子类,运行时异常(RuntimeException)可不必显式声明抛出...

    JavaWeb 面试点 列表(未附答案)

    18. **Object类方法**:wait和notify用于线程同步,放在Object中因所有对象都是Object的实例。Java平台无关性体现在字节码格式、虚拟机规范和API的独立性。 19. **JDK与JRE**:JDK包含JRE和开发工具,JRE仅包含运行...

    JAVA程序员面试32问

    16. Set 中的 equals 和 ==:Set 使用 equals() 比较元素内容,== 比较对象引用。 17. RuntimeException:常见的运行时异常如 NullPointerException,ArrayIndexOutOfBoundsException 等。 18. error 和 exception...

    谈谈Object下有哪些方法?

    以下是Object类中的13个方法的详细说明: 1. **Object()**: 这是Object类的构造方法,没有任何参数。每个类的实例化过程都会隐式调用此构造方法。 2. **registerNatives()**: 这是一个内部使用的 native 方法,...

Global site tag (gtag.js) - Google Analytics