您的位置:首页 > 职场人生

黑马程序员_函数

2014-02-19 18:31 225 查看
---------------------- <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>、期待与您交流!
----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: