10_31
1)if...else...和三元运算符的区别
共同点:都是针对两种情况进行判断,都有表达式;
不同点:if...else...流程控制语句,范围很大,不仅仅可以操作数据值,还可以操作输出语句去完成逻辑判断;而三元运算符仅仅是运算符,操作两个具体的数据值;
三元运算符能实现的一定能够使用if...else...流程语句
if...else...流程语句实现的,不一定能够使用三元.
2)选择结构语句switch
switch(变量名){ //变量名可以是基本数据类型:byte,short,char,int,enum,String
case 值1:
语句1;
break;
case 值2:
语句2;
break;
...
...
...
default:
语句n;
break;
}
3)循环结构语句for
格式:
for(初始化语句;条件表达式;控制体语句){
//加入一些逻辑判断
循环体语句;
}
4)循环结构语句while
格式:
初始化语句;
while(条件表达式){
循环体语句;
控制体语句;
}
5)循环结构语句do while
格式:
初始化语句;
do{
循环体语句;
控制体语句;
}while(条件表达式);
6)两种死循环结构
while(true){
循环体语句;
}
for(;;){
循环体语句;
}
补充:
获取[0.0,1.0]之间的随机数
public static double random();
7)for循环嵌套
结构:
for(初始化语句1;条件表达式1;控制体语句1){
for(初始化语句2;条件表达式2;控制体语句2){
循环体语句...
}
}
11-1
1)break/continue/return
break:结束,中断
一般在循环语句(loop),或者是switch语句中使用,不能超过这个范围去使用;
continue:结束当前循环,立即进入下一次循环
return:是在java中跟定义方法相关的,跟有返回值类型的方法有关
2)方法
固定格式:
方式1:有返回值类型的方法定义
权限修饰符 static 返回值类型 方法名(参数类型1 参数名称1,参数类型2 参数名称2...){
//完成的方法逻辑操作
return 结果;
}
方式2:没有具体返回值类型的方法定义
public static 返回值类型 方法名(形式参数类型1 参数名1,...){
没有return关键字
System.out.println("xxxx");
}
11_2
数组
1)定义数组格式
数据类型[] 数组名称;
数据类型 数组名称[];
2)数组初始化
动态初始化:
数据类型[] 数组名称 = new 数据类型[数组长度];
数据类型 数组名称[] = new 数据类型[数组长度];
静态初始化:
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3...};
数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3...};
简写格式
数据类型[] 数组名称 = {元素1,元素2,元素3...};
数据类型 数组名称[] = {元素1,元素2,元素3...};
注意:不能动静结合!
3)bubbleSort(冒泡排序)
public static void bubbleSort(int[] arr){ for(int x = 0 ; x < arr.length-1;x++){//控制比较的次数 // arr.length-1-x:为了减少比较的次数 for(int y = 0 ; y < arr.length-1-x; y++){ //如果前面的元素比后面元素大 if(arr[y]> arr[y+1]){ int temp = arr[y] ; arr[y] = arr[y+1] ; arr[y+1] = temp; } } } }
11_3
1)
形式参数如果是基本数据类型,形式参数的改变不影响实际参数.
后面特殊的引用类型:String,作为形式参数和基本类型数效果一致
2)
引用类型作为形式参数,形式参数的改变是直接影响实际参数的.
因为引用数据类型(数组,类,接口),是一种空间地址值进行传递,而基本数据类型只是数据值进行传递(随着方法调用而存在,调用结束而消失)
而引用类型---需要new--->需要在堆内存中开辟空间,对象使用完了,不会立即被收回,需要更待gc垃圾回收器空闲时刻自己回收!
对象一旦被创建,永远指向那个地址值,除非重新new对象
3)jvm内存分配有哪些?分别作用
4)面向对象
面向对象的思想特点:
1)更符合现实生活中的思想行为习惯
2)让复杂的事情简单化
2)匿名对象:没有名字的对象
有名字的对象--描述具体事物--创建对象格式
类名 对象名 = new 类名();
匿名对象格式:
new 类名();
特点:可以作为"参数传递"
实际用的过程,匿名对象不要多次,一般使用一次即可,使用完毕立即被收回!
3)private关键字的特点
可以修饰成员变量/成员方法,只能在当前类型中访问,外界类不能直接访问;
可以间接的通过公共的方法访问
4)在标准类(属性私有化,对外提供公共访问setXXX(xx)/getXXX()),给成员变量赋值形式必须见名知意,局部变量和成员变量名称一致,局部变量会隐藏成员变量,导致成员变量无法赋值!Java提供了关键字"this"
this:代表当前类对象的地址值引用
this.变量名: 访问的是本来的成员变量名
设置setXXX和getXXX的快捷方式(alt+insert)选择Getter和Setter,然后全选,确定.