《疯狂Java讲义》 4-流程控制与数组

2021-05-18 03:28

阅读:559

标签:alt   com   pre   arrays   parallel   img   case   运行   数组元素   

总结

1、流程控制

  和C++类似。

  switch用的较少,留意一下:Java7后expression还可以是字符串类型。

  switch与if不同,起始点非常清晰,故每个case的花括号可以省略。

  break不能少,否则一旦匹配则不再判断之后,都会输出。

  技术分享图片

  while,do while,for Java也有,而且用法一致

  技术分享图片

  break,continue,return亦同。

  break还可以结束外层循环,这时break后紧跟标签(一个紧跟冒号的标识符,放在循环语句前)。continue也是。

  技术分享图片

  return结束整个方法。

2、数组

2.1  Java的数组

  存储同种类型数据的一种数据结构。

  技术分享图片

  注意:Java定义数组时,不能指定长度。得在初始化中指定以分配内存空间。

  技术分享图片

  其中 new type[]可省略,直接与定义同时进行。

  技术分享图片

  type应是定义的子类,此时初始值根据类型确定,为0或null等。

  !不要同时使用静态和动态初始化。

  Java数组索引从0开始!Java数组有.length属性,可用于循环。

  技术分享图片  技术分享图片

  该形式无需获得数组长度。

2.2  深入数组

  数组引用变量指向有效内存。

  技术分享图片  技术分享图片

 

  实际数组对象存储在堆内存中,引用变量如果是局部变量,存储在栈内存中。

  定义并初始化数组后,内存中分配了两个空间,引用变量&数组本身。故引用变量可以随时指向同类型的其它数组,造成长度可变的假象。emmm,C++中动态数组又是什么呢?

  技术分享图片  技术分享图片

  如果从数组底层运行机制来看,没有多维数组,只是数组元素为引用类型。

  技术分享图片  技术分享图片

  技术分享图片  同时初始化为0;

  技术分享图片

  Java的Arrays类有很多应用于数组的方法。如equals,fill,sort,toString等,见P128.

  技术分享图片

  及一些并发支持方法,如parallelSort()。

问题

1、C++的数组实现原理和Java一样吗,它的动态数组是怎么实现的?

 

《疯狂Java讲义》 4-流程控制与数组

标签:alt   com   pre   arrays   parallel   img   case   运行   数组元素   

原文地址:https://www.cnblogs.com/iamwlx/p/9745233.html


评论


亲,登录后才可以留言!