5/9
递归*
- 自己调用自己
- 利用递归可以用简单的程序解决一些复杂的问题。大大减少程序的代码量。递归的能力在于用有限的语句来定义对象的无限合集。
- 递归结构包括两个部分:
- 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
- 递归体:什么时候需要调用自身方法。
psvm{
sout(f(5));
}
public static int f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
数组
- 数组的声明与创建
- int[] nums; 首选
- int nums[]; 适应c/c++
psvm{
//声明与创建合并
int[] nums = new int[10];
//赋值
nums[0]=1;
nums[1]=2;
......
//计算所有元素的和
int sum = 0;
for (int i = 0;i < nums.length;i++){
sum = sum + nums[i];
}
sout("总和"+sum);
}
- 数组的元素是通过索引访问的,数组索引从0开始。
- 获取数组长度:arrays.length
内存分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HnGYmLMj-1652111578913)(C:\Users\Administrator\Desktop\Java\java内存.jpg)]
数组的三种初始化
- 静态初始化
int[] a = {1,2,3};
Man[] mans = {new Man(1,1),new Man(2,2)};
- 动态初始化
int[] a = new int[2];
a[0]=1;
a[1]=2;
- 数组的默认初始化
- 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。