for和foreach区别是:1.for循环可以使用break跳出循环,但forEach不能;2.for循环可以控制循环起点(i初始化的数字决定循环的起点),forEach只能默认从索引0开始;3.for循环过程中支持修改索引(修改 i)。
一、for和foreach区别
1.for循环可以使用break跳出循环,但forEach不能。
2.for循环可以控制循环起点(i初始化的数字决定循环的起点),forEach只能默认从索引0开始。
3.for循环过程中支持修改索引(修改 i),但forEach做不到(底层控制index自增,我们无法左右它)。
foreach虽然是for循环的简化版本,但是并不是说foreach就比for更好用,foreach适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。 另外foreach不支持在循环中添加删除操作,因为在使用foreach循环的时候数组(集合)就已经被锁定不能被修改,否则会报出java.util.ConcurrentModificationException异常。
foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。
foreach不能对数组或集合进行修改(添加删除操作),如果想要修改就要用for循环。
所以相比较下来for循环更为灵活。
延伸阅读:
二、java的反射机制
反射机制的概念:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
那么我们再来说下反射机制实现需要用到的类,总共有四大类:Class,Constructor,Method,Field。
其实实现反射需要如下几个步骤:
1.获取Class类
2.通过Class创建对象
3.获取类中的方法
4.获取类中的属性,属性值或类型
forwhile循环的区别
以上就是关于for和foreach区别的内容希望对大家有帮助。