zoukankan      html  css  js  c++  java
  • Java方法调用数组,是否改变原数组元素的总结

    Java方法调用数组,是否改变原数组元素的总结

    //个人理解, 欢迎吐槽

    注意String是引用型变量, 我的理解也就是指向型, 指向一个数据或变量, 画图理解最容易, string 指向的 数据的值是不可改变的, string类型变量改变时,只是改变指向

    例1:

    public class test {
    
        public static void main(String[] args){
    
            char[] list={'a','b','c','d','e'};
    
            reverse(list);
    
            for(int i=0;i<list.length;i++)
    
                System.out.print(list[i]+" ");
    
        }
    
        public static void reverse(char[] list){
    
            char[] newList=new char[list.length];
    
            for (int i=0;i<list.length;i++)
    
                newList[i]=list[list.length-1-i];
    
            list = newList;
    
        }
    
    }

      这个例子的答案是主方法的 list 数组没有受影响,下面我将 reverse 方法中 list 称为 reverse.list , 主方法的list 为 main.list 加以区分

      调用 reverse 方法时,reverse.list 指向 main.list, 然后 reverse方法中,有一条 list = newList, 则将reverse.list 指向 reverse.newList, 所以该方法不会改变 main.list 的值

    例2:

    package Java_test;
    
    public class Class432 {
        String m_kobe = "1";
        String [] m_king = {"2"};
        public static void main(String[] args) {
            Class432 app = new Class432();
            app.mb_operate(app.m_kobe, app.m_king);
            System.out.println(app.m_kobe + app.m_king[0]);
        }
        static void mb_operate(String kobe, String [] king) {
            kobe = new String("3");
            king[0] = new String("4");
        }
    }

    此例输出为:14

  • 相关阅读:
    Scala 学习笔记之implicit
    sbt 学习笔记(1)sbt安装和交互式界面使用
    eclipse常用快捷键
    VMWare12安装CentOS7以及redis安装和常用命令
    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)
    java 遍历List 和 Map的几种方法
    java中常用的空判断
    Layer 3.0
    AdminLTE 2.4
    Bootstrap 3.3
  • 原文地址:https://www.cnblogs.com/mr-wei977955490/p/12605218.html
Copyright © 2011-2022 走看看