zoukankan      html  css  js  c++  java
  • 方法传递参数的分类

    方法传递参数的分类

    1.基本数据类型

    2.引用数据类型

    package com.erlang.idea;
    //Java程序默认导入java.lang包下的所有类。
    
    public class ScannerTest {
        public static void main(String[] args) {
            int number = 10;
            System.out.println("调用change方法前:"+number);//16
            change(number);
            System.out.println("调用change方法前:"+number);//16
        }
    
        public static void change(int number) {
            number = 18 ;
        }
    }
        

    1.1基本数据类型的参数,形式参数的改变,不影响实际参数

    依据:每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失

    package com.erlang.idea;
    //Java程序默认导入java.lang包下的所有类。
    
    public class DataTypeTest {
        public static void main(String[] args) {
            int[] arr = {1,2,3};
            System.out.println("调用change方法前:"+arr[1]);//2
            change(arr);
            System.out.println("调用change方法前:"+arr[1]);//18
        }
    
        public static void change(int[] arr) {
            arr[1] = 18 ;
        }
    }
        

    2.1对于引用类型的参数,形式参数的改变,影响实际参数的值

    依据:引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果

  • 相关阅读:
    Golang Channel用法简编
    一个有关Golang变量作用域的坑
    Goroutine是如何工作的
    Go语言是如何处理栈的
    Go与C语言的互操作
    Lua虚拟机初始化
    lua 函数调用 -- 闭包详解和C调用
    c++对象导出到lua
    nginx缓存设置proxy_cache
    golang中map并发读写问题及解决方法
  • 原文地址:https://www.cnblogs.com/erlangha/p/12576422.html
Copyright © 2011-2022 走看看