Java Day06
Java 学习06
方法重载
-
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
-
方法重载的规则
-
方法名称必须相同
-
参数列表必须不同(个数不同、类型不同、参数排列顺序不同)
-
方法的返回类型可以相同也可以不同**
-
仅仅返回类型不同不足以成为方法的重载**
-
递归
-
A方法调用B方法,我们就很容易理解
-
递归就是:A方法调用A方法!就是自己调用自己
-
利用递归可以用简单的程序来解决一些复杂的问题。他通常可以把一个大型复杂问题层层转化为一个与原本问题相似的规模小点的问题来求解,递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。递归的能力取决于用有限的语句来定义对象的无限集合
-
递归结构主要包括两个部分:
-
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
-
递归体:什么时候需要调用自身方法
-
package Method;
public class Demo05 {
public static void main(String[] args) {}
Demo05 demo05 = new Demo05();
text.text();
}
public void text(){
text();
}
}
package Method;
public class Demo06 {
//2! 1*2
//3! 3*2*1
//5! 5*4*3*2*1
public static void main(String[] args) {
System.out.println(f(3));
}
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
}
数组
-
数组是相同类型的数据的有序集合
-
数组描述的是相同类型的若干数据,按照一定的先后顺序排列而成
-
其中,每一个数据称作一个数组元素,每个数组的元素可以通过一个下标来访问他们
-
数组的声明:
package Array;
public class Demo01 {
//变量的类型 变量的名字 = 变量的值
//数组类型
public static void main(String[] args) {
int[] nums;//1.定义(首选)//1.声明一个数组
// int nums2[];//2.定义
nums = new int[10]; //2.给数组开辟空间
//3.给数组元素赋值
nums[0] = 1;
nums[1] = 2;
nums[3] = 3;
nums[4] = 4;
nums[5] = 5;
nums[6] = 6;
nums[7] = 7;
nums[8] = 8;
nums[9] = 9;
//计算所有元素的和
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum = sum + nums[i];
}
System.out.println("总和为:"+sum);
}
}
内存分析
堆
-
存放new的对象
-
可以被所有线程共享,不会被存放在别的对象引用
栈
-
存放基本变量类型(包含这个基本类型的具体数据)
-
引用对象变量(会存放这个引用在堆里面的具体地址)
数组的三种初始化方法
package Array;
public class Demo02 {
public static void main(String[] args) {
//静态初始化:创建 + 赋值
int [] b = {1,2,3,4};
System.out.println(b[0]);
//动态初始化:包含默认初始化(0)
int[] a = new int[10];
a[0]= 10;
System.out.println(a[0]);
}
}
数组的基本特点
-
其长度是确定的。数组一旦被创建,他的大小就是不能改变的
-
其元素必须是相同类型的,不允许出现混合类型
-
数组中的元素可以使任何类型,包括基本类型和引用类型
-
数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
-
数组本身就是对象,java中的对象是在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中

浙公网安备 33010602011771号