选用的题目如下:
01.数组有没有length()这个方法? String有没有length()这个方法?
数组没有length方法数组提供的获得元素个数的方式是通过访问数组的length属性String也就是字符串类型有length()用于返回字符串的字符个数也就是俗话说的字数但是字符数和字节数是不同的
int num = str.getBytes().length - str.length();
可以得到一个字符串当中有多少个汉字
02.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?为什么?
Overload:方法重载指发生在同一类当中,方法名字相同,参数列表(类型、个数、顺序)不同的两个方法
(体现静态多态)
Override:方法覆盖发生在有继承关系的两个类之间子类类型当中访问控制权限修饰符不能更严格抛出的异常种类不能更广泛
方法重载的时候可以改变返回值的类型return type maybe different
因为方法名字和参数列表一旦确定在一个类当中就可以唯一确认一个方法所以即便方法返回类型不同
也能判断出来调用的是哪个方法,因而不会出错
03.== 与equals 有何区别?
== 是Java当中的运算符用于比较两个引用当中存放的内存地址也就是内存指向是否相同
或者说用于判断两个对象是否是同一个对象
equals()是Java当中所有类型的父类既Object类当中的一个方法用于任何一个子类类型
通过覆盖equals从而给这个类型提供另外一种比较规则(因为java当中没有运算符重载)
很多人看到equals就认为是比较内容的方法其实不然在Object类当中equals方法当中也是采用==实现比较
04abstract class和interface有什么区别?
抽象类当中可以定义普通的属性可以定义普通的方法(有完整方法体的方法), 抽象类依然是Object的子类类型
interface从某种意义上应当理解成为更为纯粹的抽象类当时其中只能定义抽象方法和常量
接口当中定义的变量默认就是常量接口当中定义的方法默认就是抽象方法
接口的概念没有父类换言之接口不是Object类型的子类类型
05.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口可以继承接口而且可以多重继承在继承多个接口的同时子接口等价于两个接口