基于JDK11的流程控制和数组

本文详细介绍了JDK11中关于流程控制的改进,如switch关键字的警告提示,以及continue和break的用法。此外,重点讨论了数组的特性,包括其引用类型性质、初始化方式及数组长度的不可变性。还提到了Java5引入的foreach循环,并详述了java.util.Arrays类提供的各种数组操作方法,如排序和二分查找,包括不同情况下的排序策略和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

switch关键字

swicth后面控制的类型只能是byte、short、char、int四种整数类型,枚举和java.lang.String类型(从java7才支持),不能是boolean类型

switch(expression){
   
	case condition1:{
   
		statment(s);
		break;
	}
}

Java11编译器做了一些改进,当case块后面没有break语句,会出现警告:“[fallthrough]可能无法实现case”,这个警告以前需要为Java指定-X:fallthrough选项才能显示出来。

Java7允许switch后市java.lang.String,但不能是StringBuffer和Stringbuilder这两个字符串类型。

while(count < 10);
//下面的代码和while循环没有关系,因为while后面加了";"
{
   
System.out.println("hello word");
}
package com.uncle;

public class Test {
   

    public static void main(String[] args) {
   

        //当中间的条件为空时,则默认值为true
        for (int i = 0; ; i++) 
        {
   
            //将无限输出hello word
            System.out.println("hello word");
        }
    }
}

continue和break

Java提供了continue和break来控制循环结构,除此之外,return可以结束整个方法。

continue和break区别:

  • continue只是忽略本次循环剩下的语句,并不会终止循环
  • break则完全终止循环本身

return并不是用来结束循环的,它是来结束一个方法的。

数组

数组是引用类型

数组一旦初始化完成,它所占用的内存空间就被固定下来,即数组的长度将不可改变

数组必须先初始化,然后才可以使用,所谓初始化,就是为数组的数组元素分配在内存空间,并为数组元素赋初始值

初始值的获得有两种形式:一种是由系统自动分配,另一种是由程序员指定。

数组的初始化有两种方式:

  • 静态初始化:自己指定数组元素的初始值,系统决定数组长度
  • 动态初始化:自己给定数组长度,系统分配初始值

如果访问数组元素的索引值小于0或者大于数组的长度,在编译期间不会发生错误,但是在运行时会出现异常:java.lang.ArrayIndexOutOfBoundsException:N(数组索引越界异常),N代表访问的数组索引

foreach

Java5提供了foreach循环

package com.uncle;

public class Test {
   

    public static void main(String[] args) {
   

        String[] str = new String[]{
   "", ""};
        for (String string : str) {
   

            System.out
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值