您的位置:首页 > 编程语言 > Java开发

Java简单笔试题(四)

2017-05-01 22:49 218 查看
1.Comparable和Comparator接口是干什么的?列出他们的区别

2.JDK和JRE的区别?

3.Java支持多继承么?

4.Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

5.什么是值传递和引用传递?

参考答案:

一、Comparable和Comparator的作用和区别: 它们都是接口,是用来对自定义的类进行比较大小的。在使用Collections.sort( )对自定义类进行排序时,自定义类就要实现这两个接口。 区别:Comparable接口是定义在类的内部,即类需要实现这个接口,然后覆盖compareTo(自定义类)方法。而Comparator是定义在类的外部,需要新建一个类,实现Comparator接口,覆盖compare(自定义类 对象1,自定义类 对象2)方法。

参考:

http://www.cnblogs.com/sunflower627/p/3158042.html http://bbs.itheima.com/forum.php?mod=viewthread&tid=220260 http://blog.csdn.net/mageshuai/article/details/3849143

二、JDK和JRE的区别是: Java运行环境(JRE)是指即将执行Java程序的Java虚拟机。它还包括了执行applet程序的浏览器插件。Java开发工具包(JDK)是完整的Java开发工具包,包含了JRE,编译器和其它开发工具(比如:JavaDoc,Java调试器),为开发者提供了开发,编译,执行程序的功能。

参考:

https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21070&query=&asc=true&order=&page=2

三、Java支持多继承么?

Java的类不支持多继承,支持单继承。但是Java的接口支持多继承,即支持一个接口继承多个接口。接口的作用是用来拓展对象的功能,继承一个接口意味着多拓展了一个功能。

参考:

https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21076&query=&asc=true&order=&page=8

四、Java中的方法覆盖(Overriding)和方法重载(Overloading):

Java方法重载是指在同一个类中,或者子类和父类之间两个或者两个以上的方法之间出现方法名相同参数列表不同的情况。对访问修饰符方面并没有要求。

Java的方法覆盖是指发生在子类和父类之间,子类重新实现父类的方法的情况,除了访问修饰符,其它必须相同。但是在访问修饰符权限方面,子类不能小于父类

参考:

https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21074&query=&asc=true&order=&page=6

http://blog.csdn.net/fsz521/article/details/8739236

五、值传递和引用传递:

值传递一般是对于基本数据类型而言,传递的是变量的副本,副本变量的改变不会影响原有变量。

引用传递一般是对于对象变量而言,传递的是对象的地址,所以在引用变量改变的时候,原有变量也会改变。基本类型的数组变量也是对象变量,符合引用传递。

总结:所以说Java内的传递只有值传递。

注意:String类的实例变量有点特殊,在传递的时候是传递变量值的副本,不影响原有变量。主要是因为String类是有final修饰的,其值不可变。

参考:

https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21078&query=&asc=true&order=&page=10

http://guhanjie.iteye.com/blog/1683637

注意区分对象和对象引用:

http://zwmf.iteye.com/blog/1738574
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 笔试题