A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2018-10-24 19:08  /  1269 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.集合和数组的区别?
答: 数组是静态的,数组的长度是固定的, 一旦创建了就无法改变容量了。数组一次只能获取或设置一个元素的值,不便于在数组中间位置进行增删操作。
集合是可以动态扩展容量,可以根据需要动态改变大小,根据需要自动扩充、修改、删除或插入数据。集合提供更多的成员方法,能满足更多的需求。
数组存储的是同一类型的元素,可以存储基本数据类型和引用类型数据。
集合存储的是对象,存储的数据类型可以不一致。数组必须声明了它容纳的元素的类型,而集合可以不声明。

2.什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续再判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
增强for循环(也称for each循环),专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。
区别:增强for已知数组和集合的范围,无需进行判断,就会自行遍历集合或数组中的每一个元素。普通for需要自己设定初始值和步进数以及循环次数。

3.什么是泛型?使用泛型有什么好处?
答:可以在类或方法中预支地使用未知的类型。
泛型接口:实现一个接口的时候,如果不明确目前要操作的数据类型,可以等到创建接口实现类对象的时候才去指定泛型的具体数据类型。
       接口自定义泛型的格式如下:
  修饰符 class 类名<声明自定义泛型> implements 接口名<声明自定义泛型>{
  }
泛型类:是在实例化类的对象时才能确定的类型,这时需要在创建该类的对象时指明泛型的具体类型。如果不指定泛型的具体类型,则默认是Object类型。泛型类中若有static 的方法,则该方法中不能用类的泛型类型。如果需要泛型就需要单独进行泛型声明,声明泛型一定要写在static后,返回值类型之前。
泛型方法:如果让一个方法可以接收任意的类型,而且调用者传入什么类型的参数,则该方法的参数类型就是那一个类型。泛型方法是在调用方法的时候指明泛型的具体类型。定义泛型方法时,必须在返回值前边加一个<T>。
我们既可以在类上进行泛型声明,也可以同时在该类的方法中声明泛型。
好处:将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
避免了类型强转的麻烦。
每当有任何类想要实现这个接口时,它都可以选择提供准确的类型替换泛型类型。
通过泛型可以定义类型安全的数据结构(类型安全),而无须使用实际的数据类型(可扩展)。这能够显著提高性能并得到更高质量的代码(高性能),因为可以重用数据处理算法,而无须复制类型特定的代码(可重用)。

评分

参与人数 1技术分 +1 收起 理由
厦门校区 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马