首页 > 代码库 > 05 Java 流程控制与数组

05 Java 流程控制与数组

作者:thoughtInShare 出处:http://www.cnblogs.com/thoughtInShare 欢迎转载,也请保留这段声明。谢谢!

 

1,流程控制=顺序结构+分支结构+循环结构

(1)分支结构=if+switch

(2)循环结构=while+do while ()+for

(3)控制循环结构=break(结束整个循环)+continue (结束本次循环)+return(结束整个方法)

(4)return并不是专门用来控制循环结构的,return的功能是结束一个方法;而不管return处于多少个循环之内;

 

2,Java的数组是一种类型;

(1) 数组初始化完成后,其在内存中占的空间也将被固定 下来;

(2)数组属于引用类型;如int[]就是一种数据类型,与int,String类型类似,同样可以用来定义变量;

(3)定义数组:

type[] arrayname;(推荐)

type  arrayname[];

数组是一种引用类型变量,使用其定义变量时,仅仅表示定义了一个引用变量,也就是定义了一个指针,但并未指向任何有效内存,因此定义数组时不能指定数组长度,因为没有有效的内存空间来存储数组元素;

 (4)数组元素的初始化=分配内存空间+赋初值

静态初始化:显式指定每个数组元素的初始值,由系统来决定数组长度;注意不要在进行数组初始化时,既既定数组长度,又指定元素初始值;

语法:arrayname = new type[]{element1,element2,element3,...};

动态初始化:程序员指定数组长度,由系统来分配初始值;

语法:arrayname = new type[length];

 

(5)数组是引用数组类型,数组引用只是一个引用,数组元素和数组变量在内存里是分开存储的;

运行时的数据区称为堆(heap)区,实际的数组对象存储在heap内存中,如果引用变量是局部变量,则它存储在栈(stack)内存中;

 (6)关于栈内存和堆内存区分

当一个方法运行时,该方法会建立自己的内存战区,在这个方法内定义的变量会逐个放在这个栈内存,随着方法执行结束,这个方法的内存栈也将自然销毁;因此,所有方法中定义的局部变量都放在栈内存中;

当我们创建对象时,这个对象保存在运行的数据区中,以反复利用,这个运行时的数据区就是堆内存;堆内存的对象不会随方法的结束而销毁;

只有当一个对象没有任何引用变量引用它时,系统的垃圾回收期才会在合适的时候进行回收;

(7)操作数组的工具类,Arrays;

 

05 Java 流程控制与数组