递归头:什么时候不掉用自身方法。如果没有头,将陷入死循环。
递归体:什么时候需要调用自身方法
package com.cdoudou.method;
public class Demo05 {
public static void main(String[] args) {
Demo05 demo05 = new Demo05();
int res = demo05.test(5);
System.out.println(res);
}
//递归:简单理解就是
/*
return n * test(n-1);这一句中每次都会出现一个确定的数n,然后由终止条件决定确定的数量也就是递归的次数
比如测试案例为5,则递归次数为5次
第一次:5*test(4)
第二次:5*4*test(3)
第三次:5*4*3*test(2)
第四次:5*4*3*2*test(1) 而我们的终止条件就是n==1
第五次:5*4*3*2*1
得到结果并将其一步一步地返回给最初调用test()方法的执行程序,整个过程就如同入栈,出栈操作一样
*/
public int test(int n){
if(n == 1){
return 1;
}else{
return n * test(n-1);
}
}
}
定义
dataTyoe[] arratRefVar; //首选的方法
或
dataType arrayRefVar[]; //效果相同,但不是首选方法
Java语言使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar = new dataType[arratSize];
arrays.length
package com.cdoudou.Array;
public class Demo01 {
public static void main(String[] args) {
//变量类型 变量名字 = 变量的值;
//数组定义
//1.声明数组
int[] nums;
//int num2[]; 第二种,但是不建议这样定义
//2.创建数组
nums = new int[10]; //定义了一个可以放10个int类型的数字
//3.赋值
for(int i = 1; i < 10; i ++){
nums[i] = i;
}
//4.遍历输出
for(int x:nums){
System.out.println(x);
}
/*
需要注意的是:
1.数组下标是从0开始的,不能越界【往往是数组的最后一个元素的判定】
2.可以简便的是,数组可以使用array.length快速得到数组的长度
*/
}
}
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;
数组是引用类型,它的元素相当于类实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被阴式初始化。
package com.cdoudou.Array;
public class Demo02 {
public static void main(String[] args) {
//静态初始化: 创建+赋值
int[] a = {1,2,3,4,5,6,7,8,9};
System.out.println(a[1]);
//动态初始化: 包含默认初始化
int[] b = new int[10];
b[0] = 1;
System.out.println(b[0]);
}
}
public static void main(){
int[] a = new int[2];
System.out.println(a[2]);
}
数组是相同数据类型(数据类型可以为任意类型)的有序集合
数组也是对象,数组元素相当于对象的成员变量
数组长度是确定的,不可变的。如果越界,则会报错:ArrayIndexOutOfBoundsException
原文:https://www.cnblogs.com/cdoudou/p/13662228.html