黑马程序员_基础学习笔记(2)

---------------------- 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值