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

Posted iamwlx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《疯狂Java讲义》 4-流程控制与数组相关的知识,希望对你有一定的参考价值。

总结

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-流程控制与数组的主要内容,如果未能解决你的问题,请参考以下文章

疯狂JAVA——第四章 流程控制与数组

03_Java基础语法_第3天(ScannerRandom流程控制语句)_讲义

疯狂讲义Activiti6.X工作流进阶与项目实战,Activiti整合Drools

04_Java基础语法_第4天(数组)_讲义

java学习笔记2(datawhale教程):运算符和表达式流程控制数组

第四章.流程控制与数组