java从0开始 6

目录:
1 利用方法复制指定元素到新数组,并返回新数组
2 方法调用的基本内存原理
3 数据类型
4 方法传递基本数据类型的内存原理小练习
   下一章(练习章节)    综合前面知识点,力扣九练



1. 利用方法复制指定元素到新数组,并返回新数组

package com.itheima.demo1.fangfa;

public class test11 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7};
        int[] newArr = copyOfRang(arr, 3, 7);
        for (int i = 0; i < newArr.length; i++) {
            System.out.print(newArr[i] + " ");
        }
    }
                 //利用方法复制指定元素到新数组,并返回新数组
    public static int[] copyOfRang(int[] arr, int from, int to) {
        int[] newArr = new int[to - from];
        int index=0;
        for (int i = from; i < to; i++) {
            newArr[index++] = arr[from++];
        }
        return newArr;
    }
}


2 方法调用的基本内存原理

  • 方法执行时,方法中定义的数据就会进栈,当这个方法结束了就会出栈,出栈数据也随之在内存中消失
  • 方法执行顺序:方法执行的过程就像弹夹一样,先压进弹夹的子弹永远是最后打出的,在栈内存中也是这样,先进栈的方法会最后出栈
  • 在方法中调用方法用的就是上面的原理,后被调用的方法会最先被释放



3 数据类型

  • 基本数据类型包括:整数,浮点数,布尔,字符
  • 引用数据类型:除了上面的数据类型都是引用数据类型
  • 引用数据类型:存储其他空间中的数据的地址,间接的引用数据
    基本数据类型:存储的数据是真实的数据,还是自己的,不是地址


4 方法传递基本数据类型的内存原理小练习

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

案例:

package com.itheima.demo1.javancfp;

public class test2 {
    //传递基本数据类型时,传递的时真实的数据,形参的改变,不影响实际参数的值
    public static void main(String[] args) {
        int number = 100;
        System.out.println("调用前"+number);
        chang(number);   //调用并传参
        System.out.println("调用后"+number);
    }
    public static void chang(int number){
        number = 200;
    }
}
结果:
调用前100
调用后100

  • 在方法中将值用return返回到调用处,则值才改变
  • 案例:
package com.itheima.demo1.javancfp;

public class test2 {
    //传递基本数据类型时,传递的时真实的数据,形参的改变,不影响实际参数的值
    public static void main(String[] args) {
        int number = 100;
        System.out.println("调用前"+number);
       number = chang(number);   //调用并传参
        System.out.println("调用后"+number);
    }
    public static int chang(int number){
        number = 200;
        return number;
    }
}
结果:
调用前100
调用后200

  • 传递引用数据类型时,地址双向值传递,两边都改变

案例:

package com.itheima.demo1.javancfp;

public class test3 {
    public static void main(String[] args) {
        int[] arr = {1,2,4,5};
        System.out.println("调用前"+arr[1]);
        change(arr);
        System.out.println("调用后"+arr[1]);
    }
    public static void change(int[] arr){
        arr[1]=200;
    }
}
结果:
调用前2
调用后200
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值