1.switch: 接受类型有byte short int char(适合具体数值,但数值不多的情况。)
当条件成立之后,执行case之后的语句,如果执行完没有遇到break;或者‘}’,则会继续往下执行能执行的语句,此时不会判断case的条件,直到 再次遇到break;或者‘}’。
2.循环语句:
① while(条件表达式)
{
循环体(执行语句);
} ②do
{
循环体(执行语句);
} while(条件表达式);
③ for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
2.1.while与for关于变量的区别:
变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效。for语句执行完毕,该变量在内存中被释放。
2.2 for和while可以进行互换。如果需要定义循环增量,用for更为合适。
3.函数:定义在类中的具有特定功能的一段独立小程序,也称为方法。
3.1函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2,...)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。(当函数没有具体值返回时用关键字void标识。)
3.2. 函数的重载:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不一样即可。
重载的特定:与返回值类型无关,只看参数列表(也跟参数顺序有关)。
重载的好处:方便阅读,优化了程序设计。
重载示例:
//返回两个整数和
int add(int x, int y) { return x+y; }
//返回三个整数和
int add(int x, int y,int z) { return x+y+z; }
//返回两个小数和
double add(double x, double y) { return x+y; }
4.内存结构:
Java程序在运行时,需要在内存中分配空间。为了提高运算效率,有对空间进行了不同的区域划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存:
1>.数组和对象,通过new建立的实例都存放在堆内存中。
2>.每一个实体都有内存地址值。
3>.实体中的变量都有默认初始值。
4>.实体不在被使用,会在不确定的时间内被垃圾回收器回收。
5.数组(引用数据类型):同一种类型数据的集合。其实数组就是一个容器。
数组的好处:可以自动的给数组中的元素从0开始编号,方便操作这些元素。
格式1:
元素类型 [] 数组名 = new 元素类型 [元素个数或者数组长度];
eg: int [] arr = new int[5];
格式2:
元素类型 [] 数组名 = new 元素类型[] {元素,元素,....};
eg: int [] arr = new int[]{1,2,5,3};//在堆内存空间创建一个实体,并为每一个元素赋一个具体值。
int [] arr = {1,2,5,3};//数据明确的情况下可以简写
new的作用:用来在堆内存中产生一个容器实体。
int [] arr :int 表示元素的类型;[]表式数组;arr表示数组类型。arr是一个在栈内存的数组变量,被赋值的实际是数组在堆内存中的地址,另外arr是存在栈内存中的,然后得到new在堆内存中创建的容器实体地址,指向了堆内存中的数组。