java基础部分面试题2

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/hardtomakeaname/article/details/102726594

一.hashCode()和equals()

1.hashCode()和equals()都是object的固有属性

equals()得出对象的地址   hashcode()我觉得得出的整数值也是对应对象的地址的

2.规定:equals()相等的两个对象,hashcode()一定相等;

   hashcode()相等,equals()可能相等,也可能不等。 

3.对于String,他重写了equals()和hashCode()。。

例如:

String s1=new String("nishizhu");

String s2=new String("nishizhu");

他们两个是s1==s2

equals现在变为比较值是否相同, 但是他们其实并不是存储在同一个地址,所以必须重写hashcode。

二:java的三大特征

1.封装

也就是把客观事物封装成抽象的类

封装就是属性和方法装到一个类里面。

目的是为了简化编程和安全性,你不必了解我这里面的细节,你通过接口来用就行了

2.继承

继承就是就是子类继承父类的特征和行为,使子类具有父类的一些方法和属性

3.多态

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:

使用的 时候的具体表现就是向上转型啊。。就是父类引用可以持有子类对象。那么父类的引用只能使用父类中有的方法,并且调用的时候调出来的是子类中重写过的

三.Object类的方法

1.getcCass()方法

getClass()返回一个对象的运行时类  如:

Class a=对象.getClass();//得到的是该对象的字节码文件 a.getName()得到名字

2.equals()

3.hashcode()

4.toString()方法:

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成

5.notify() 唤醒在此对象监视器上等待的单个线程

6.notifyAll() 唤醒在此对象监视器上等待的所有线程

7.wait() 导致当前线程等待

 

猜你喜欢

转载自blog.csdn.net/hardtomakeaname/article/details/102726594
今日推荐