1.循环结构 while do while for
for的几种变形
//语句嵌套 循环嵌套
其他流程控制语句 break 跳出(switch loop) continue (loop) 继续
函数
数组
JVM使用的内存结构
[img]http://dl.iteye.com/upload/attachment/0081/8859/e0d30a24-3b1a-3fd8-a473-7ec2ecd15d30.png[/img]
public static void main(String [] args){
/*
打印奇数
*/
int x=1;
while(x<=10){
System.out.println("x="+x);
x+=2; // x++; X++;
}
do{
System.out.println("x"):
}while(true);
/*
while: 先判断条件,只有条件满足后才执行循环体
do while: 先执行循环体,然后判断条件,条件满足,在继续执行循环体,
简单一句话, do while 无论条件是否满足,循环体至少执行一次.
*/
//奇怪的代码 呵呵
int y=1;
while(y<3); //注意这里多了一个 "分号"
{
System.out.println("y="+y);
y++;
}
//此循环 会让程序 一直判断 y<3吗? 小于 然后 后面没有循环体,然后继续断 y<3吗? ....
for(int x=0;x<3;x++){
System.out.println("x="+x);
}
/*
变量x的作用范围 只在 for{ 内才有效}
for 和while 的区别在于 初始化变量的的时候 变量的作用域不一样
while的增量 后还能用.
*/
for的几种变形
public static void main(String [] args){
for(System.out.println("a"),System.out.println("b"),System.out.println("c"))
{
System.out.println("d");
} //编译报错
int x=1;
for(System.out.println("a"),x<3,System.out.println("c"))
{
System.out.println("d");
x++;
} //打印出 adcdc
多表达式的写法
for(int x=0,y=3;x<3 && y>1;x++,y--){
System.out.println("x="+x);
System.out.println("y="+y);
}
x=0 y=3
x=1 y=2
//外部 增量
int z=0;
for( ; z<3;){
z++;
}
// for 的最简单无限循环表现形式
for( ; ; ){ }
//while 的最简单无限循环表现形式
while(true){}
/*
循环一定要明确那些语句参与循环,那些语句不参与循环
*/
/*
累加思想 通过循环信息的进行
计数器思想 通过一个变量来记录数据的编号 当然也需要通过循环来实现
*/
}
//语句嵌套 循环嵌套
/*
/打印 三角形
*****
****
***
**
*
*/
for(int x=0;x<5;x++){
for(int y=x;y<5;y++){
System.out.print("*):
}
System.out.println():
}
// 9 9 乘法表
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int x=0;x<=9;x++){
for(int y=1;y<=x;y++){
System.out.print(y+"*"+x+"="+(x*y)+"\t");
}
System.out.println();
}
}
其他流程控制语句 break 跳出(switch loop) continue (loop) 继续
public static void main(String[] args){
: 标号 只能用于循环上.
w:for(int x=0;x<3;x++){
q:for(int y=0;y<4;y++){
System.out.println("x="+x);
break w; //跳出外层循环
}
}
w:for(int x=0;x<3;x++){
q:for(int y =0; y<x;y++){
System.out.println("x="+x);
continue w;
}
}
/*
记住:
1.break continue 语句的作用范围
2.break; 和continue单独存在的时候,下面可以有任何语句,但是都不执行
*/
//打印等腰三角形
for(int x=0;x<5;x++){
for(int y=x+1;y<5;y++){
System.out.print(" ");
}
for(int z=0;z<=x;z++){
System.out.print("* ");
}
System.out.println();
}
}
函数
1.函数的定义 : 就是定义在类中具有特定功能的一段独立的小程序,也叫方法.
格式:
修饰符 返回值类型 函数名 (参数类型 形式参数1,参数类型 形式参数2,....)
{
执行的语句
return 返回值;
}
2.函数的特点 :1.将功能代码进行封装
2.对功能进行复用,
3.函数只有被调用才会被执行,
4.提高了代码的复用性,
5,如果函数没有具体的返回值的时候 返回值类型为 void ,此时 return 可以省略不写.
6.函数内部只能调用函数,不能定义函数.
7.如果一个函数没有返回值 ,就不能放在 输出语句中调用
3.函数的应用 : 1.明确要定义的功能最后的结果是什么?
2. 明确咋定义功能的国臣各种,是否需要未知内容参与运算
4.函数的重载:overload
1.在同一个类中,允许存在一个以上的同名函数,只要他的参数个数或者参数类型,参数位置不同即可.
2.与返回值无关,只看参数列表
3.方便阅读,优化程序设计
4.参数是有顺序的
数组
1.数组的定义 : 同一种类型数据的集合, 其实数组就是一个容器
可以自动给数组中的元素从0开始编号,方便元素操作
2.数组的内存分配和特点:
1. int[]x 这个x 在 栈内存中 new int[3] 这个就在 堆内存中
2. 默认的元素都有值.
3. 每个 元素都有 内存地址值
4. 只有引用数据类型才能用 "null" 这个常量
3.数组操作常见的问题
4.数组中常见的操作
5.数组中的数组
JVM使用的内存结构
1.java程序在运行的时候,需要在内存中分配空间,为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式.
2. JVM 在启动的时候 划分了 5片不同的区域
1.栈内存
2.堆内存
3.方法区
4.本地方法区
5.寄存器
3.栈内存: 用户存储局部变量,当数据使用完,所占空间会自动释放
4.堆内存:
1.数组和对象, 通过new 建立的实例都放在堆内存中
2.每个实体都有内存地址值
3.是体重的变量都有默认的初始化值
4.实体不在被使用,会在不确定的时间内被垃圾回收器回收
[img]http://dl.iteye.com/upload/attachment/0081/8859/e0d30a24-3b1a-3fd8-a473-7ec2ecd15d30.png[/img]