【java基础】流程控制和数组

1、在处理if...else语句时候,总是考虑先处理包含范围更小的情况

2、if中条件执行体(代码块)有多行的时候,需加入大括号,当if下面只有一行的时候,可以不用加入大括号

3、break终止循环,可以通过break outer;前提是用outer标记需要终止的循环,最后break outer;语句结束的就是标记的循环,continue终止循环剩下的语句

4、为什么静态成员、静态方法中不能用this和super关键字

在静态方法中是不能使用this预定义对象引用的,即使其后面所操作的也是静态成员也不行,这是因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法加载后,对象还不一定存在。

 

  •  super用法跟this类似,this代表对本类对象的引用,指向本类已经创建的对象;而super代表对父类对象的引用,指向父类对象;
  • 静态优于对象存在
  • 因为静态优先于对象存在,所以方法被静态修饰之后方法先存在,而方法里面要用到super指向的父类对象,但是所需的父类引用对象晚于该方法出现,也就是super所指向的对象没有,会报错

综上,静态方法中不可用出现super和this关键字

5、for循环和foreach循环使用场景

循环ArrayList时,普通for循环比foreach循环花费的时间要少一点儿;循环linklist时,普通for循环比foreach循环花费的时间要多很多,当将循环次数提升到一百万次的时候,循环ArrayList,普通for循环比foreach要快一点;但是普通for循环在循环linklist时,程序卡死。

综上,需要循环数组结构的时候采用普通的for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。需要循环链表结构的数据时候,一定不要使用for循环,建议采用foreach循环

6、for循环和foreach循环的限制

for循环和移除当前元素,foreach循环,在循环的时候,不能从集合中删除元素,不能向集合中增加元素。foreach循环基本类型时,修改基本类型无效;foreach循环对象时候,可以修改对象的属性值,循环变量相当于一个临时变量,只是存取了原变量的值,但不是真正的变量

注意:使用foreach循环迭代数组元素时,并不能真正改变数组元素的值,因此不要对foreach的循环变量进行赋值

7、数组在使用之前必须初始化,然后才可以使用。数组中每个元素的类型是一致的

  • 静态初始化

由程序员显式指定每个数组元素的初始值,由系统决定数组长度

例如:arrayName = new type[]{element1,element2,element3…}或者type[] arrayName ={element1,element2,element3…}

  • 动态初始化

程序员只指定数组长度,由系统为数组元素分配初始值

例如:arrayName = new type[length]

注意:系统初始化值的时候根据类型来分配初始化值:(byte、short、int和long)数组元素值是0;(float、double)数组元素值为0.0;(char)数组元素值为'\u0000';(boolean)数组元素值为false;引用类型(类、接口和数组)数组元素值为null

8、方法执行时,对方法内部代码栈内存和堆内存是怎么分配的?

方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将逐个放入这块栈内存里,虽然方法的执行结束,逐个方法的内存栈也将自然销毁,在此期间所有方法中的定义的局部变量都是放在栈内存中的;在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用,这个运行区即为堆内存,堆内存的生命周期为当一个对象没有任何引用变量引用它时,系统的垃圾回收器才会在合适的时候回收它。这里,为了让让垃圾回收一个数组所占用的内存空间,可以将该数组变量赋值为null

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

女汉纸一枚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值