Java初学日记五之数组与函数

数组

数组(Array)的概念:

数组是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,通过编号来进行管理的。

数组的常见概念:

数组名,下标,元素,数组长度,数据类型

数组的特点:

1.数组本身是属于引用数据类型的变量,其中可以存储基本数据类型,引用数据类型。
2.创建数组的对象会在内存中开辟一块连续的空间,数组名存储的是这块连续空间的首个元素的地址。
3.数组的长度一旦确定,就不能修改。

数组的分类:

1.按照维数:一维数组、二维数组、多维数组。
2.按照数组元素的类型:基本数据类型数组、引用数据类型数组。

一维数组的创建和使用

// 静态初始化
// int[] array 创建一个叫做array的int类型的数组
// 数组array有5个元素,5个元素分别为{1, 2, 3, 4, 5}
int [] array = new int []{1, 2, 3, 4, 5};
// 动态初始化
// int[] array 创建一个叫做array的int类型的数组
// new int[5]; 数组长度为5
int [] array = new int [5];

例如上边的代码所写的
数组的名字:arary
数组的下标:数组的下标从0开始例如静态初始化数组中的第一个元素为1,它的下标为0,要从数组中访问它需要知道他的下标,array[0] 所代表的元素就是 1。
数组的长度:数组的长度有就是数组中元素的个数。
数据类型:数组的数据类型就是数组中元素的数据类型。

数组中元素的默认值

在一个动态初始化数组中,若不给数组赋值,数组中的元素有默认的初始化的值
例如,byte,long,short,int型数组默认为0,char数组默认为 ‘’ ,String类型数组默认为null,float,double数组默认值为0.0

改变数组中元素的值

首先创建一个数组

int [] arr = new int[5];
// 改变第一个,第二个元素的值
arr[0] = 5;
arr[1] = 10;
// 打印第一第二个元素
System.out.println(arr[0]);
System.out.println(arr[1]);
得出的结果arr[0]5,arr[1]10

在这里插入图片描述
可以使用for循环来遍历数组给数组赋值或者寻找数组中的某个元素。

函数

在Java中,函数也是一个重要的部分,函数就是实现某一功能代码的代码块,大多使用功能名称命名。
举个例子:写一个加法函数

public static void main(String [] args){
	 主函数是程序入口,不能省略,一般函数调用都在主函数中
	 进行,若函数有返回值,需要一个和返回值同类型的变量来
	 接受返回值
	 int a = 1;
	 int b = 3;
	 调用时需要将要传入的参数写入调用函数的括号中
	 int sum = add(a, b);
	 System.out.println(sum);
}
	 static 是静态修饰符,被静态修饰符修饰的函数只能被
	 同样被静态修饰符修饰的函数调用,static 后边的int
	 表示的是返回值的类型,函数可以有返回值,也可以没有
	 返回值,不需要返回值的时候就用void修饰符修饰
public static int add(int a, int b){
	 add后面的小括号()中写的是传入参数的类型,当这个函数
	 需要传入参数才能进行功能实现的时候就需要给这个括号中
	 写功能需要的数据类型,例如这个add函数需要两个整数进
	 行加法运算,所以需要写两个int型的参数
	return a + b;
	 当一个函数有需要返回的返回值的时候,使用return关键字
	 返回运算结果
}

在这里插入图片描述

此外,函数还有两个比较特殊且常用的操作:
函数的递归,和重载

函数的递归

函数的递归,就是在函数中调用自身的行为,但是这种行为极大的占用了栈内存,所以一般递归不推荐超过2000次,且递归需要一个结束条件,否则会一直执行下去直至栈内存溢出,抛出栈内存溢出错误。将类似于循环,需要结束条件。
举个例子,计算1~100的和

public static void main(String [] args){
	int i = 0;
	int sum = 0;
}

public static void add(int i, int sum){
	if(i > 100){
		System.out.println(sum);
		return;
	}
	sum += i;
	i++;
	// 函数调用自身,形成递归
	add(i, sum);
}

在这里插入图片描述

函数的重载

函数的重载,指的是相同的函数名,不同的参数类型

public static void main(String [] args){
	int a = 3;
	int b = 2;
	double x = 2.3;
	double y = 2.7;
	add(a, b);
	add(x, y);
}

public static int add(int a, int b){
	return a + b;
}

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

在这里插入图片描述
add(int a, int b)就和add(double x, double y)构成了重载。
函数的重载与否与返回值类型无关,和传入参数类型有关,函数名必须相同才能构成重载。
add(int a, double b)与add(int a, int b)与add(double x, double y)也构成重载,add(double a, int b)与add(int a, double b)与add(int a, int b)与add(double x, double y)也构成重载。

基本的数组与函数就介绍到这里啦,下期再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值