从0学JAVA--Day03(方法和数组)持续更新中

发布于:2022-10-17 ⋅ 阅读:(309) ⋅ 点赞:(0)

(一)数组

1.数组介绍

数组是一种容器,可以用来存储同一数据类型的多个值

->数组容器再存储数据的时候,需要结合隐式转换考虑

2.数组的定义和静态初始化

格式1:数据类型[] 数组名

示例1:int[] array 

格式2 : 数据类型 数组名[]

示例2: int array[]

数组的初始化

初始化:就是在内存中,为数组容器开辟空间,并将数据存入数组容器的过程

1.静态初始化

完整格式:

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,.....};

简化格式: 

数据类型[] 数组名 = {元素1,元素2,.....};

3.数组元素访问

索引: 也叫做下标,角标

索引特点:从0开始,逐个+1增长,连续不间断

4.数组遍历

数组遍历:把数组中所有的内容全部取出来 

public class Text8 {
    public static void main(String[] args) {
        int[] array={1,2,3,4,5};
        //获取数据所有元素
        //在JAVA中关于数组的长度属性length
        //调用方式:数组名.length
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        //自动生成数组遍历方式 数组名.fori
    }
}

5.数组的动态初始化

动态初始化:初始化是只指定数组的长度,由系统为数组分配初始值

格式:

数据类型[] 数组名 = new 数据类型[数组长度];

数组默认初始化规则:整数类型:默认初始化值0

                                    小数类型:默认初始化值0.0

                                    字符类型:默认初始化值‘/u0000’ 空格

                                    布尔类型:默认初始化值false

                                    引用数据类型:默认初始化值 null

动态初始化和静态初始化的区别:

6.数组的内存图

 栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行

堆:储存对象或者数组,new来创建,都储存在堆内存

方法区:储存可以运行的class文件

本地方法栈:JVM在使用操作系统功能的时候使用,与开发无关

寄存器:给CPU使用,与开发无关

 

 总结:1.只要是new出来的就一定在堆里面开辟了一个小空间

            2.如果new了很多次,那么在堆里面就有多个小空间,每个小空间中都有各自的数据

两个数组指向同一个空间的内存图

 总结:当两个数组指向同一数组小空间时,其中一个数组对小空间的值发生了改变,那么其他数组再次访问时都是修改后的值了。

(二)方法

1.什么是方法?

方法(method)是程序中最小的执行单元

2.什么时候用到方法

重复的代码,具有独立功能的代码可以抽取到方法中

3.方法有什么好处

可以提高代码的重复性 可以提高代码的维护性

方法的格式

public static 返回值类型 方法名(参数){
        方法体;
        return 返回值;
}

注意:方法需要先定义后使用

           方法调用时,参数的数量与类型必须与方法定义中小括号里面的变量一一对应,否则将报错

//不带返回值
public static void main(String[] args){
    getSum(10,20);//30
}
public static void getSum(int  num1,innt num2){
    int result = num1+num2;
    System.out.println(result);
}
//带返回值
public static void main(String[] args){
    int i = getSum(10,20);//30
    System.out.println(i);
}
public static int getSum(int  num1,innt num2){
    int result = num1+num2;
    return result;
}

形参和实参

形参:全称形式参数,是指方法定义中的参数

实参:全称实际参数,方法调用中的参数

方法的注意事项

1.方法不调用就不执行

2.方法与方法直接是平级关系,不能相互嵌套定义

3.方法的编写顺序和它的执行顺序没有关系

4.方法的返回类型为void表示该方法没有返回值,没有返回值可以省略return语句不写,如果要编写return后面不能跟具体数据

5.return语句的下面不能编写其他代码,属于无效代码

方法的重载

在用一个类当中,定义了多个同名的方法,这些同名的方法具有同种的功能

每一个方法都具有不同的参数类型或者参数个数,这些同名的方法就构成了重载关系

public class Text9 {
    public static void main(String[] args) {
        int sum1 = getSum(10,20);//30
        System.out.println(sum1);
        int sum2 = getSum(10,20,30);//60
        System.out.println(sum2);
    }
    public static int getSum(int num1,int num2){
        int result = num1+num2;
        return  result;
    }
    public static int getSum(int num1,int num2,int num3){
        int result = num1 +num2+num3;
        return result;
    }

}

方法的内存

1.方法调用的基本内存原理 (先进后出)

2.方法传递基本数据类型(四类八种)的内存原理

从内存角度解释基本数据类型:数据值是存储在自己空间中,赋值给其他变量也是赋的真实的值

 传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值。

//基本数据类型演示
public class Text10 {
    public static void main(String[] args) {
        int number=100;
        System.out.println(number);//100
        change(number);
        System.out.println(number);//100
    }
    public  static void change(int number){
        number=200;
    }
}

3.方法传递引用数据类型(除了四类八种以外所有)的内存原理

从内存角度解释引用数据类型:数据值是存储在其他空间中,自己空间中储存的是地址值

传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值。

//引用数据类型演示
public class Text11 {
    public static void main(String[] args) {
        int[] arr={10,20,30};
        System.out.println(arr[1]);//20
        change(arr);
        System.out.println(arr[1]);//200
    }
    public static void change(int[] arr){
        arr[1]=200;
    }
}

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到