顺序结构

最常见的程序结构,由上到下逐行执行。

分支结构

if 语句 和 switch 语句

if条件语句

if语句使用布尔表达式或布尔值作为分支条件来进行分支控制;

1 if (logic expression){

statement

}

2if (logic expression){

statement

}else{

statement

}

3if (logic expression){

statement

}else if (logic expression){

statement

//可以有0个或多个else if 语句

//else 也可以省略掉

}else{

statement

}

Java7增强后的switch分支语句

switch语句由一个控制表达式和多个case 标签组成,和if语句不同的是,switch语句后面的表达式的数据类型只能是byte、short、char、int四种证书类型,枚举类型和java.lang.String类型(java7才允许),不能是boolean类型。

switch语句需要在case标签后紧跟一个代码块

循环结构

while循环先判断循环条件,如果条件为真则执行循环体;而do while 循环则先执行循环体,然后才判断循环条件,如果循环条件为真贼执行下一次循环,否则终止。

while循环

使用while循环时,一定要保证循环条件有变成false的时候,否则这个循环将成为一个死循环。永远无法结束这个循环。

while 条件表达式后紧跟分号,很容易形成死循环

do while 循环

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

for循环

for循环可以代替while循环,do while 循环。

最好不在循环内修改循环变量的值,否则会增加程序出错的可能性。

控制循环结构

使用break结束循环;跳出循环。 break outer,跳转到outer处。

使用return结束循环;直接结束整个方法。

数组类型

数组是编程语言中最常见的一种数据类型

理解数组

数组元素具有相同的数据类型。因此在数组中数组元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据,而不能存储多种数据类型的数据。

数组初始化完成,在内存所在的空间也被固定下来,因此数组长度不可变。清空数组元素,所占空间仍被保留

定义数组

type[] arrayName;

数组是一种引用类型的变量,它定义一个变量时,仅仅是表示定义了一个引用变量(也就是定义了一个指针),引用变量未指向任何有效的内存,因此定义数组时不能指定数组的长度。只有对数组进行初始化后才可以使用。

数组的初始化

初始化就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。

两种初始化方式

静态初始化:有程序员显示指定每个数组元素的初始值,有系统决定数组长度。

动态初始化:程序员只指定数组长度,有系统为数组元素分配初始值。

使用数组

foreach循环

深入数组

数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。

内存中的数组

数组引用变量只是一个引用,在程序中访问数组对象本身,只能通过这个数组的引用变量来访问它。

实际的数组对象被存储在堆(heap)内存中;如果引用该数组对象的数组引用变量是一个局部变量,则引用变量存储在栈(stack)内存中.

流程控制与数组

访问图中堆内存中的数组元素,只能通过p[index]的形式实现。

补充:当一个方法执行时,每个方法都会建立自己的内存栈,方法定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁。所有在方法中定义的局部变量都是放在栈内存,程序创建一个对象时,保存在堆内存,堆内存的对象不会随方法的结束而销毁。只有一个对象没有任何引用变量引用它时,系统的垃圾回收器才会在合适的时候回收它。

相关文章: