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

黑马程序员,Java基础知识总结二

2014-12-29 19:52 267 查看

函数

函数是定义在类中的具有特定功能的一小段独立程序,也称为方法。

函数的格式:

修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2)
{
执行语句;
return返回值;
}

返回值类型:函数运行后的结果的数据类型。

参数类型:是形式参数的数据类型。

形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

实际参数:传递给形式参数的具体数值。

return:用于结束函数,并将返回值返回。

返回值:该值会返回给调用者。

函数的特点:

1.我们定义函数可以将功能代码进行封装,便于对该功能重复调用,函数的出现提高了代码的复用性。

2.函数只有在被调用时才会被执行。

3.对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

注意:

1.函数中只能调用函数,不可以再在函数内定义函数。

2.我们定义函数时,要考虑将函数的结果返回给调用者,交由调用者去处理。

函数的应用

首先我们要明确将定义的功能最后的结果是什么?

其次要明确在定义该功能的过程中,是否需要未知内容参与运算。

示例:

需求:定义一个功能,可以实现两个整数的加法运算。

分析:

1.该功能的运算结果是什么?两个数的和,也是一个整数(int)

2.在实现该功能的过程中是否有未知内容参与运算?加数和另一个加数是不确定的。(两个参数类型:int,int)

int getSum(int x, int y)

return x+y;


这样我们便设计了一个加法运算的函数。

函数的重载(overload)

重载是在同一个类中,允许存在一个或者以上的同名函数,只要他们的参数类型或者个数不同即可。

特点:与返回值类型无关,只看参数列表。

好处:方便阅读,优化程序设计。

示例:

int add(int x ,int y ) { return x+y ; }

int add(int x ,int y, int z ) { return x+y+z ; }

double add(double x ,double y) { return x+y ; }

另外,重载不等于重写,重载是对同名函数不同参数类型的复写,而重写是对继承或实现的类中的函数进行重新设计,若自定义的类中继承了一个抽象类或者实现了一个接口,则要重写抽象类或接口的所有抽象方法,否则该类将无法被实例化。

数组

数组是同一种类型数据的集合,其实就是一个容器。

好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。

格式1:

元素类型[] 数组名= new 元素类型[元素个数或者数组长度];
int[] arr = new int[5];

格式2:
元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
int[] arr = new int[]{1,2,3,4};
int[] arr = {1,2,3,7,5};

内存结构:

java程序在运行时,需要在内存中分配空间,而为了提高运算效率,它对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

栈内存:用于存储局部变量,当数据使用完,所占空间就会自动释放。

堆内存:用于存储数组和对象,通过new建立的实例都存放在堆内存中。每一个实体都有其内存地址值,实体中的变量都有默认的初始化值。当实体不再被使用时,就会在不确定的时间内被垃圾回收器回收。

另外还有方法区和寄存器。

数组的常见操作

获取最值(最大值,最小值)

public static int getMax(int[] arr) {
int max = arr[0];
for (int i : arr) {
max = (max > i) ? max : i;
}
return max;
}

排序(冒泡排序)

public static void maopao(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}

}

折半查找(二分查找)

public static int binarySearch(int[] arr, int num) {
int max = arr.length - 1, min = 0, mid;
while (min <= max) {
mid = max + min;
if (num > arr[mid])
min = mid + 1;
else if (num < arr[mid])
max = mid - 1;
else
return mid;
}
return -1;
}

二维数组

格式1:int[][] arr = new int[3][2];

1.定义了名称为arr的二维数组
2.这个二维数组中有三个一维数组

3.并且每一个一维数组中有两个元素

4.名称分别是arr[0],arr[1],arr[2]

5.我们给第一个一维数组1角标位赋值为78的写法是:arr[0][1] = 78;

格式2:

int[][] arr = new int[3][];

1.这个二维数组中有3个一维数组
2.每个一维数组都是默认初始化值null;

3.可以对这三个一维数组分别进行初始化:

arr[0] = new int[3];
arr[1] = new int[5];
arr[2] = new int[2];

格式3:
int[][] arr = {{3,1,5},{2,7,5},{3,2,6}};

1.定义了一个名称为arr的二维数组
2.二维数组中有三个一维数组

3.每一个一维数组中具体元素都已经初始化。

4.第一个一维数组arr[0] = {3,1,5}    第二个一维数组arr[1] = {2,7,5}    第三个一维数组arr[2] = {3,2,6}

5.取第三个一维数组的长度的表达式为:arr[2].length;

注意特殊写法:

在int[] x,y[]中x是一维数组,y是二维数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 笔记 总结二