摘要:流程控制语句就是用来控制程序中各语句执行的顺序,下面将详细介绍java流程控制语句。

流程控制语句就是用来控制程序中各语句执行的顺序,下面将详细介绍java流程控制语句。

Q: break后面加一个label标签是做什么的?像下面这样:

ABC:
while(t++<5){
for(int i=0;i<n;i++){
if(i==1)
break ABC;
}
}

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: 需要往迭代器中插入元素或者删除元素时。(这会破坏迭代器结构)

本文分享自华为云社区《java知识点问题精选之流程控制语句》,原文作者:breakDraw 。

点击关注,第一时间了解华为云新鲜技术~

划重点丨详解Java流程控制语句知识点的更多相关文章

  1. 第三节:带你详解Java的操作符,控制流程以及数组

    前言 大家好,给大家带来带你详解Java的操作符,控制流程以及数组的概述,希望你们喜欢 操作符 算数操作符 一般的 +,-,*,/,还有两个自增 自减 ,以及一个取模 % 操作符. 这里的操作算法,一 ...

  2. 详解Java GC的工作原理+Minor GC、FullGC

    详解Java GC的工作原理+Minor GC.FullGC 引用地址:http://www.blogjava.net/ldwblog/archive/2013/07/24/401919.html J ...

  3. 超全详解Java开发环境搭建

    摘自:https://www.cnblogs.com/wangjiming/p/11278577.html 超全详解Java开发环境搭建   在项目产品开发中,开发环境搭建是软件开发的首要阶段,也是必 ...

  4. 「跬步千里」详解 Java 内存模型与原子性、可见性、有序性

    文题 "跬步千里" 主要是为了凸显这篇文章的基础性与重要性(狗头),并发编程这块的知识也确实主要围绕着 JMM 和三大性质来展开. 全文脉络如下: 1)为什么要学习并发编程? 2) ...

  5. Protocol Buffer技术详解(Java实例)

    Protocol Buffer技术详解(Java实例) 该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发 ...

  6. 详解Java中的clone方法

    详解Java中的clone方法 参考:http://blog.csdn.net/zhangjg_blog/article/details/18369201/ 所谓的复制对象,首先要分配一个和源对象同样 ...

  7. java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的

    本文将详解java中的异常和异常处理机制 异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常. Java异常的分类和类结构图 1.Java中的所 ...

  8. 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)

    在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...

  9. 第十八节:详解Java抽象类和接口的区别

    前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...

  10. 详解java动态代理机制以及使用场景

    详解java动态代理机制以及使用场景 https://blog.csdn.net/u011784767/article/details/78281384 深入理解java动态代理的实现机制 https ...

随机推荐

  1. grafana 配置自定义dashboard

    本文为博主原创,转载请注明出处: 1.配置数据源 配置完成后,点击Save And Test,如果配置正确,页面则显示如下: 2.配置dashboard                    点击 A ...

  2. Android dumpsys介绍

    目录 一.需求 二.环境 三.相关概念 3.1 dumpsys 3.2 Binder 3.3 管道 四.dumpsys指令的使用 4.1 dumpsys使用 4.2 dumpsys指令语法 五.详细设 ...

  3. Go 常用标准库之 fmt 介绍与基本使用

    Go 常用标准库之 fmt 介绍与基本使用 目录 Go 常用标准库之 fmt 介绍与基本使用 一.介绍 二.向外输出 2.1 Print 系列 2.2 Fprint 系列 2.3 Sprint 系列 ...

  4. 【问题复盘】在Ubuntu 20.04下安装OFED驱动

    复盘:在Ubuntu 20.04下安装OFED驱动 起因 最近收到两台服务器,都搭载了ConnectX-5 EX网卡.由于供应商预装了Ubuntu 20.04操作系统,而我们的后端代码也是基于Ubun ...

  5. 全网最详细4W字Flink全面解析与实践(下)

    本文已收录至GitHub,推荐阅读 Java随想录 微信公众号:Java随想录 原创不易,注重版权.转载请注明原作者和原文链接 承接上篇未完待续的话题,我们一起继续Flink的深入探讨 Flink S ...

  6. C语言实现输入的时间,屏幕显示一秒后的时间。显示格式为HH:MM:SS。

    #include <stdio.h> int main() { int HH, MM, SS; scanf("%d:%d:%d",&HH,&MM,&am ...

  7. [WPF]动手写一个简单的消息对话框

    消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口.在WPF中,消息对话框是系统原生(user32.dll)的MessageBox,无法通过Style或者Template ...

  8. .NET领域性能最好的对象映射框架Mapster使用方法

    Mapster是一个开源的.NET对象映射库,它提供了一种简单而强大的方式来处理对象之间的映射.在本文中,我将详细介绍如何在.NET中使用Mapster,并提供一些实例和源代码. 和其它框架性能对比: ...

  9. 用友NC产品接口开发,通过轻易云数据集成平台快速调用

    通过用友NC产品的 UAP V63平台.插件相关处理.相关业务逻辑处理课程目标与要求课程内容课程目标与要求业务逻辑处理外部系统信息设置节点新建外部系统默认匹配规则:仅按对照表:外部系统数据与UAP.接 ...

  10. java集合框架(三)ArrayList常见方法的使用

    @[toc]## 一.什么是ArrarListArrayList是Java中的一个动态数组类,可以根据实际需要自动调整数组的大小.ArrayList是基于数组实现的,它内部维护的是一个Object数组 ...