黑马程序员_函数
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>、期待与您交流!
----------------------
----------------------
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>、期待与您交流!
----------------------
相关文章推荐
- 黑马程序员--函数和对象方法的区别
- 黑马程序员——Java基础语法(二)---流程控制与函数
- 黑马程序员_可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串。
- 黑马程序员—流程区别与函数
- 黑马程序员_Java基础(流程控制、函数、数组)
- 黑马程序员---初识java之语句与函数
- 黑马程序员_C#中的一些常用函数总结
- 黑马程序员:函数
- 黑马程序员__ ArrayList 与HashSet 去除重复函数的 区别 equals (面试有考,重点)
- 黑马程序员_Java基础_面向对象(继承、子父类变量和函数以及构造函数特点、final关键字、抽象类、模版方法模式、接口)
- 黑马程序员 c语言-----循环与函数学习
- 黑马程序员-JAVASE入门(组成部分1变量,函数等)
- 黑马程序员-函数的嵌套调用与递归调用
- 黑马程序员——C语言基础知识整理——printf函数与scanf函数
- 黑马程序员_Java函数和数组
- 黑马程序员--文件字符输入输出函数的应用
- 黑马程序员---C语言基础---条件、循环语句、函数
- 黑马程序员 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个
- 黑马程序员-函数
- 第五篇 黑马程序员-函数、类与对象