当前位置: 代码迷 >> 综合 >> Java方法、JDK9新特性、流程控制
  详细解决方案

Java方法、JDK9新特性、流程控制

热度:90   发布时间:2024-01-30 00:41:12.0

1.方法

注意事项:1.方法定义的先后顺序无所谓;2.方法的定义不能产生嵌套包含关系;3.方法定义好了之后,不会执行的,如果要想执行,一定要进行方法的调用。

2.JDK9新特性

  • JShell:轻量级的、便捷的小工具,适用于简单的功能,不值得写文件,极其简单轻量的时候采用JShell,脚本,一步一执行,退出脚本命令:/exit
  • 编译器的两点优化:1.对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过左侧的范围,那么javac编译器会自动隐含地补上一个(byte)、(short)、(char),即编译器自动补上强转,例如byte a = 1;如果超过了左侧的范围,那么直接编译器报错,,例如byte b = 128;2.编译器的常量优化:在给变量进行赋值的时候,如果右侧的表达式中全都是常量,没有任何变量,那么编译器javac会直接将若干个常量表达式计算得到结果,而不是程序运行的时候耗费资源计算,一旦表达式中有变量参与,那么就不能进行这种优化了,例如short result = 5 + 8; 不报错,而short a = 5; short b = 8; short result = a + b;报错,左侧需要是int类型的。

3.流程控制

  • 顺序结构
  • 判断(选择)结构:单if语句、标准的if…else、复合的扩展的if…else语句、switch
if (判断条件1) {语句体1;
} else if (判断条件2) {语句体2;
}
……
} else if (判断条件n) {语句体n;
} else {语句体n+1;
}

使用if语句可以替换三元运算符。

switch (表达式) {case 常量1:语句体1;break;case 常量2:语句体2;break;……default:语句体n+1;break;
}

注意:满足哪一个case就从哪一个位置向下执行,直到遇到了break语句或者整体结束为止,各case是并列关系;case后边的常量值不能重复;所有的case和表达式的值都不匹配,就会执行default,default用于收尾,相当于if…else中的else;最后一个break语句可以省略,但是强烈推建不要省略,因为这样看着格式更加清晰;switch后边的小括号中只能是下列数据类型:基本数据类型(byte/short/char/int)、引用数据类型:String字符串、enum枚举;switch语句格式可以很灵活,先后顺序可以颠倒,而且break语句还可以省略。

  • 循环结构:for、while、do-while,包括初始化语句、条件判断、循环体、步进语句。do-while的第一次执行是无脑执行。
    初始化语句;
    do{循环体;步进语句;
    } while(条件判断);

    三种循环的区别:如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一  次;for循环的变量在小括号当中定义,只有循环内部才可以使用,while和do-while循环初始化语句本就在外边,所以出来循环之后还可以继续使用;如果次数确定多用for循环,否则多用while循环。

循环控制语句:

break:可以用于switch语句中,一旦执行,整个switch语句立刻结束;还可以用于循环语句中,一旦执行,整个循环语句立刻结束,打断循环。

continue:一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。

永远停不下来的循环,叫做死循,死循环后的语句永远不会执行。