Java流程控制与数组细节点

1、使用if。。。else时,一定要先处理包含范围更小的情况

2、switch控制表达式的数据类型:byte、short、char、int、枚举类型、java.lang.String​

3、do while 循环条件后必须有一个分号,表明循环结束

4、for循环中,continue结束本次循环,循环跌代体一样会得到执行​

5、break结束循环,return 结束整个方法 两者都会结束循环

6、java中的标签只有放在循环语句之前才有作用,放在break所在的循环的外层循环之前才有意义

7、break 标签:结束标签指定的循环 而不是break所在的循环

8、continue加标签如break一样

9、java的数组要求所有的数组元素具有相同的数据类型

10、定义数组时不能指定数组的长度,经过初始化才可以使用,实际开发过程中定义和初始化同时完成

11、不要同时使用静态初始化(分配初始值)和动态初始化(指定数组的长度)

12、​数组索引越界异常(索引值小于0或大于等于长度):

13、foreach循环自动遍历数组和集合的每个元素,通常用于遍历输出,通常不要对循环变量进行赋值,没有太大意义且极容易引起错误,如果希望改变数组元素的值不要用foreach循环

14、数组元素(堆内存)和数组变量(栈内存)再内存里是分开​存放的

15、方法结束,存放着 方法中定义的局部变量的内存栈都会被自然销毁

16、数组元素(对象)没有任何引用变量引用它时,系统垃圾回收机制会在合适时回收它

17、让机制回收数组所占内存空间:将数组变量赋值为null,切断变量和元素的引用关系​

18、a数组变量赋值给​b数组变量,并没有改变b的数组长度(直到消失),而是改变了b的指引,b原先指向的数组元素失去了引用,成为垃圾,等待回收

19、定义一个Object[]类型的数组可以拓展到多维数组

20、从数组底层的运行机制上看,java​没有多维数组,只是提供了支持多维数组的语法,多维数组本质上都是以为数组。(三维数组每个数组元素是二维数组)

21、char类型转换成int类型数字,直接减去48,他们的ASCII码值恰好相差48