---------------------- android培训、java培训、期待与您交流! ----------------------
黑马程序员---比向东---第三天
if和switch语句的选择:
如果判断的具体数值不多,而是符合byte,short,int,char这四种类型虽然两个语句都可以使用,但是建议使用switch语句,因为这样效率高些。
其他情况:对区间的判断,结果为boolean类型判断,使用if的更多些
While和do while的区别
前者只有条件满足才执行循环体,后者先执行一次循环体,才判断条件是否满足,即便是条件不满足都要执行一次循环体
continue语句:应用于循环结构 break应用于选择和循环结构
注:它两离开了应用范围,存在时没有意义的
它两单独存在的下面都不可以有语句,因为执行不到
continue语句是结束本次循环继续下次循环
标号的出现可以让它们作用于指定的范围
函数特点
定义函数可以将功能代码进行封装便于该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回类型用void表示,这是可以省略return
函数只能调用函数,但不可以在函数内部定义函数,定义函数时,函数的返回结果应该 返回给调用者,交由调用者处理
定义函数的思考步骤
因为函数是一个独立的功能,那么该功能的运算结果必须先明确(即明确需要的返回类型,结果是什么类型就需要返回什么类型)
在明确在定义该功能的过程中是否需要未知的内参数参与运算(即明确参数参数列表)
函数重载overlaod
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可(参数个数,类型,顺序 有一个不同都是重载)
注意:与返回类型和访问修饰符无关
内存结构
Java程序在运行时,需要在内存中国分配空间,为了提高运算效率,有对空间进行了不同区域的划分,因为每一块区域都有特定的处理数据方式和内存管理方式
栈内存
用于存储局部变量。当数据使用完时自动释放所占内存空间
堆内存
数组 对象 通过new的建立的实例都存放在堆内存中
每一个实体都有内存地址
实体中的变量都有默认的初始化值
实体不再被调用时会在不确定的时间内被垃圾回收器回收
如:
int[] x=new int[3]
栈内存 堆内存
存放x局部变量 存放newint[3]中的内容即数组内容
黑马程序员---比向东---第四天
选择排序
总共比较arr.length-1次,每一趟从待排序的数据元素中选出最小(或最大)的一个元素,并顺序放到数组的前(或后)面,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。
特点:内循环结束一次,最值出现在头角标的位置
冒泡排序
依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
折半查找
折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元素必须有序。
1. 首先确定整个查找区间的中间位置
mid = ( left + right )/ 2
2. 用待查关键字值与中间位置的关键字值进行比较;
若相等,则查找成功
若大于,则在后(右)半个区域继续进行折半查找
若小于,则在前(左)半个区域继续进行折半查找
3. 对确定的缩小区域再按折半公式,重复上述步骤。最后,得到结果:要么查找成功,要么查找失败。
各种进制的转换
class Demo4_12
{
publicstatic void main(String[] args)
{
toBin(6);
toOr(10);
toHex(60);
}
//x表示左移的位数 base表示x进制的最大数 num表示要转换的数
//十进制转二进制
publicstatic void toBin(int num)
{
trans(num,1,1);
}
//十进制转八进制
publicstatic void toOr(int num)
{
trans(num,7,3);
}
//十进制转16进制
publicstatic void toHex(int num)
{
trans(num,15,4);
}
publicstatic void trans(int num,int base,int x)
{
if(num==0)
{
System.out.println(num);
return;
}
char[]chas={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
char[]arr=new char[32];
intpos=arr.length; //定义一个指针
while(num!=0)
{
inttemp = num & base;
arr[--pos]=chas[temp];
num=num>>>x;
}
for (int i=pos;i<arr.length ;i++ )
{
System.out.print(arr[i]);
}
System.out.println();
}
}
---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima ---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima ---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima ---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima ---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima <a href="target=" _xhe_href="target=" blank"="">java培训、期待与您交流!">----------------------android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima ----------------------android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima ----------------------android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima ----------------------android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima <a href="target=" _xhe_href="target=" blank"="">http://edu.csdn.net/heima">---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima