黑马程序员_函数

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------



Index
1、函数
2、数组、相关算法
1、函数
* 函数的定义
[修饰符1] [修饰符2] 返回值类型 方法名(参数列表){方法体}
类,main方法
类,方法,main方法
多少个类呢?每个类中应该有哪些方法呢?
需求1、验证13条码
*  返回值类型:boolean类型
* 参数:13条码
boolean checkEn13(String en13){
//13条码验证
return false;
}


String en13="1221212":
checkEn13(en13);


* 与方法相关的语法现象
  A、方法在调用期间的内存模型 
  B、方法调用,程序的执行顺序
  C、java 方法的调用基于值得传递
  D、方法的重载:方法名相同的方法,但参数不同  


2、数组、相关算法


* 数组的定义
  int[] ages = new int[3];
  int[] ages = new int[]{3,4,5};
  int[] ages = {4,5,6}; 
  method1(new int[]{3,4,5});
* 数组的概念
int[] ages = new int[3];
ages = new int[5];
char c = null;'\u0000'
String str = null;


数组变量:ages,引用类型,值为数组对象的内存地址
数组对象:  堆内存中一组连续的相同数据类型的存储空间
数组元素: 数组中具体的数据


* 数组的操作
 * 数组元素的访问(遍历)
   int[] sals = {2000,1500,300};
   for(int i=0;i<sals.length;i++){}
   for(int sal : sals){System.out.println(sal);}
 * java中数组的特点
   数组的长度一旦确定,不能改变
   int[] sals = {2000,1500,300};  
   扩容(数组的拷贝)
   数组的拷贝(浅层拷贝)


        System.arrayCopy(sals,0,sals1,0,3);
Arrays.copyOf(sals,5);


   String[] names={"a","b","c"};
   String[] names1 = new String[5];{null,null,null,null,null};
   System.arrayCopy(names,0,names1,0,3);
   //names1{0x2345,0x2346,0x2347,null,null};


 * 随机抽取算法(Demo03)


 * 打乱算法
   模拟洗牌
  String[] cards =  {3,4,5,6,7,8,9};
   cards[i]   cards[j]


   变量的互换:
   a、 第三方变量
  int a = 10;
  int b = 20;
  int c = 0;
  c = a;
  a = b;
  b = c;
    b、
   int a = 10;
   int b = 20;
   a = a+b;//a=30;
   b = a-b;//b=10;
   a = a-b;//a=20;


     c、使用位异或
            int a = 10;
   int b = 20;

   5^3^3=5//位运算符的运用

            101

        &  011

---------------------------

           001   

&        011

-------------------------

           101                          =5//5的由来

   a = a^b;
   b = a^b;//a^b^b
   a = a^b;//a^b^a=>b^a^a
  
  * 数组排序
    
    * 算法实现(可能在面试中有)
       A、选择排序
   第一轮:
   第一个位置与后面位置的数字比较,如果小,换
23,32,10,21,6
23,32,10,21,6
10,32,23,21,6
10,32,23,21,6
6,32,23,21,10
  for(int i=0;i<nums.length-1;i++){
for(int j = i+1;j<nums.length;j++){
if(nums[i]>nums[j]){
  int temp = nums[i];
  nums[i] = nums[j];
  nums[j] = temp;
}
}
  }
       B、冒泡排序
           相邻位置的两个数字分别比较,小就换位置 (前者比后者大)位
  23,32,10,21,6

//第一次遍历
  23,32,10,21,6
  23,10,32,21,6
  23,10,21,32,6
  23,10,21,6,32

//实现方法
  for(int i=0;i<nums.length-1;i++){
for(int j=0;j<nums.length-1-i;j++){
  if(nums[j]>nums[j+1]){
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] temp;
  }
}
  }


    * API实现(开发中使用)
Arrays类中sort();//此类比我们自己写的类运行时间短的多。




            

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------







   








   




  
   


   




  








  













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值