摘要:流程管制语句就是用来控制程序中各语句执行的程序,上面将具体介绍java流程管制语句。
本文分享自华为云社区《java知识点问题精选之流程管制语句》,原文作者:breakDraw 。
流程管制语句就是用来控制程序中各语句执行的程序,上面将具体介绍java流程管制语句。
Q: break前面加一个label标签是做什么的?像上面这样:
ABC: while(t++<5){ for(int i=0;i<n;i++){ if(i==1) break ABC; } }<div style="color:transparent">来源gaodai.ma#com搞##代!^码网</div>
A: break+label标签 是用于从外部退出多层循环的, 下面的例子就是间接从for外部间接退出到while的里面了。
Q: continue前面加一个label标签是做什么的?像上面这样:
ABC: while(t++<5){ for(int i=0;i<n;i++){ if(i==1) continue ABC; } }
A: 间接contine到ABC的前面,即用于contine到最外层循环, 即走到while(t++<5)那边持续走
Q: switch的default陷阱1,以下输入什么
int i = 0; switch (i) { default: System.out.println("default"); case 0: System.out.println("0"); case 1: System.out.println("1"); }
A: 输入”0 1″, default都是最初再匹配的。
Q:case前面能够跟变量吗?
例如
case a:
case b:
这样子
A:不能够,case前面只能跟常量。
Q: switch的default陷阱2,以下输入什么
int i = 3; switch (i) { default: System.out.println("default"); case 0: System.out.println("0"); case 1: System.out.println("1"); }
A: 输入”default 0 1″, 匹配到default之后,如果没有break还是会始终往下走。
Q: switch() 能辨认哪些类型?
A:
JDK1.0-1.4 数据类型承受 byte short int char
JDK1.5 数据类型承受 byte short int char enum(枚举)
JDK1.7 数据类型承受 byte short int char enum(枚举),String 六种类型
PS: 下面提到的根本类型的包装类型也是反对的。
Q: return-finally陷阱1: finally能通过批改变量,来更新return的变量值吗
int f() { int a = 1; try { return a; } finally { a=2; } }
A:不能, f返回1。
(PS:留神下如果是a援用的话,不能扭转返回的a的援用, 然而能够扭转a的援用里的属性)
Q: return-finally陷阱2: finally里也return时,返回哪个?
int f() { try { return 1; } finally { return 2; } }
A:返回finally里的,返回2。
Q: for-each和for-index 哪个快?(就是for(num:nums)和for(int i=0;i<n;i++))
A: 和场景无关。援用评论区2个小伙伴给的信息:
- 若实现了RandomAccess接口,那么应用for-index是优于for-each的吧
-
for-each 比 for-index 快,是不是能够这样思考:
for-each 是通过外部的迭代器进行遍历的,相似于索引; for-index 是通过 index 计算偏移量的形式遍历。 —— 这样一来: 对 ArrayList 这样的间断构造来说,for-each 和 for-index 的效率应该并驾齐驱; 而对 LinkedList 这样的链式列表,for-each 的索引劣势就体现进去了。
Q: 什么时候没法用for-each代替for-index?
A: 须要往迭代器中插入元素或者删除元素时。(这会毁坏迭代器构造)
点击关注,第一工夫理解华为云陈腐技术~