Java面试题 1,Java.lang.Object类有哪些方法,什么时候需要重写这些方法?2,hascode()方法有什么作用?3,接口和抽象类的区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Java.lang.Object有tostring() , equals 等 1、有toString()、equal()等等。2、不知道。3、抽象类可以只实现部分方法,接口则必须实现其全部方法;抽象类的方法可以有抽象方法,也可以有普通方法,接口里的方法必须是抽象方法;抽象类的方法的访问权限可以多种,接口的方法的访问权限只能是public;抽象类的子类只能继承一个抽象类,而实现接口的类可以同时实现多个接口,等等。我只知道这些了。 刚学完corejava的基础部分,正好趁热解答你的问题:类中常需要重载的方法有:toString(), equals(), hashCode(), clone(), compareTo()其中后两个需要implements接口,中间3个是Object中的方法,不过clone是protected,需要使用时改写成public。toString()应该每个类都有,即便不准备输出什么内容,也应该写上类的结构信息,便于其他程序员对你的类做logequals()和hashCode()是一套的,一改则都改,且要对应。比如你以类中“年龄,工资”作为比较对象,那么的你的hashCode算法也必须和这2个量相关,通常的算法就是将不同的质数与字段做乘积和,例如:return 11*age+13*lohn; 如果不重写,使用Object默认的话,那么equals和hashCode都是以内存地址做依据的。clone()主要用于拷贝自身,通常不用写代码,直接改写成public和函数返回类型,然后调用super.clone(xx)就可以了,如果类中包含其他对象,需要深度拷贝,那么要自己写代码,将这些对象手动拷贝过去,比如:MyClass result = super.clone();result.Date = this.Date.clone();return result;compareTo()用于比较,根据你的算法,依据不同字段,比较类对象的大小,返回1, 0, -1。很多函数会自动调用它,比如Arrays.sort();接口和抽象类的区别,我觉得主要是两点,一个是抽象类里还可以有非抽象的方法,虽然抽象类仍无法实例化,但是其子类可以,也就是说这些非抽象函数仍可以被多态调用,这也是抽象类为什么没有完全被接口取代的原因。接口就是相反了,不过接口也有一个优势是抽象类无法比拟,就是类可以继承多个接口,而抽象类和普通类一样,只能继承一个,所以接口可以解决多重继承问题。 hashCode(); 每一个对象有一个唯一hashcode;是唯一的,一般情况下是和equals();情况类似的, 每一个对象有唯一的HashCode? 这个是哪里看来的啊? HashCode()就是为了不唯一才做的方法,不是唯一的其实散列值原先就是为了检索用的一个值 hascode() 方法主要用于在hashset或者hashmap等以hash方式检索对象的集合里。每个对象有唯一的hashcode这种说法是不准确的,不过应该尽量避免大量重复的hashcode,这样可以提高检索的效率(hashcode冲突的解决办法有很多,学过数据结构的都该知道) 1.toString(), equals(), hashCode等.2.hascode()方法主要用于在hashset或者hashmap等以hash方式检索对象的集合里.3.一个是抽象类里可以有非抽象的方法,虽然抽象类无法实例化,但是他的子类可以,也就是说这些非抽象函数可以被多态调用.类可以继承多个接口,而抽象类和普通类一样,只能继承一个. 看看jdk阿,很有帮助地饿 equals(Object obj) getClass()hashCode() notify() notifyAll() toString() wait() wait(long timeout)notify()notifyAll()wait(long timeout, int nanos) 为什么这段代码运行输出是这样的东西? struts2里session和hibernate里的session究竟有什么区别啊? JFileChooser能不能记住上次访问的路径 java table 滚动条 急急急 java中一些正确的说法 请大家帮我个忙,谢谢了! 放分讨论问题,java3d持久化开发 如何将date型数据转化成Timestamp型数据 如何在加载同一个包中的类? JNI是否力不能及? 考软件设计师有用吗?进来有分! JAVA如何获取当前系统时间?
2、不知道。
3、抽象类可以只实现部分方法,接口则必须实现其全部方法;抽象类的方法可以有抽象方法,也可以有普通方法,接口里的方法必须是抽象方法;抽象类的方法的访问权限可以多种,接口的方法的访问权限只能是public;抽象类的子类只能继承一个抽象类,而实现接口的类可以同时实现多个接口,等等。我只知道这些了。
MyClass result = super.clone();
result.Date = this.Date.clone();
return result;compareTo()用于比较,根据你的算法,依据不同字段,比较类对象的大小,返回1, 0, -1。很多函数会自动调用它,比如Arrays.sort();接口和抽象类的区别,我觉得主要是两点,一个是抽象类里还可以有非抽象的方法,虽然抽象类仍无法实例化,但是其子类可以,也就是说这些非抽象函数仍可以被多态调用,这也是抽象类为什么没有完全被接口取代的原因。接口就是相反了,不过接口也有一个优势是抽象类无法比拟,就是类可以继承多个接口,而抽象类和普通类一样,只能继承一个,所以接口可以解决多重继承问题。
每一个对象有一个唯一hashcode;是唯一的,一般情况下是和equals();情况类似的,
其实散列值原先就是为了检索用的一个值
2.hascode()方法主要用于在hashset或者hashmap等以hash方式检索对象的集合里.
3.一个是抽象类里可以有非抽象的方法,虽然抽象类无法实例化,但是他的子类可以,也就是说这些非抽象函数可以被多态调用.
类可以继承多个接口,而抽象类和普通类一样,只能继承一个.
很有帮助地饿
getClass()
hashCode()
notify()
notifyAll()
toString()
wait()
wait(long timeout)
notify()
notifyAll()
wait(long timeout, int nanos)