java笔记之值交换

来源:互联网 发布:淘宝hd是什么意思 编辑:程序博客网 时间:2024/05/21 08:05
  1. 基本类型交换不会改变其值,以为在每个函数会在栈中有自己的内存,主函数和调用函数都有自己的栈内存,当调用函数执行完后其栈内存就会释放,故基本类型不会得到改变
  2. 数组类型可以交换,在函数的栈中的变量都指向同一个堆中的数组,故可以交换
  3. String类型不可以交换,String不可变的字符串,指向常量池的地址,交换后主函数的变量指的地址还是不会变,所以不会改变
  4. 代码演示
package java7_0;public class Demo1 {    //基本类型的交换    public static void change(int a,int b) {        int temp = a;        a=b;        b=temp;        System.out.println(a+" "+b);    }    //数组的交换    public static void change1(int[] array,int index1,int index2){        int temp = array[index1];        array[index1]=array[index2];        array[index2]=temp;        for (int i = 0; i < array.length; i++) {            System.out.print(array[i]+" ");        }        System.out.println();    }    //String 类型的交换    public static void change2(String src,String source1) {        src = source1;        System.out.println(src);    }    public static void main(String[] args) {        // 基本数据类型交换        int a =10;        int b =20;        change(a, b);        System.out.println(a+" "+b);        //数组交换        int[] array={1,2,3,4,5,6};        change1(array, 1, 2);        for (int i = 0; i < array.length; i++) {            System.out.print(array[i]+" ");         }        System.out.println();        //String类型交换        String srcString ="wangyi";        change2(srcString, "baidu");        System.out.println(srcString);        String srcString2 ="tencent";        change2(srcString, srcString2);        System.out.println(srcString);    }}
基本数据类型交换20 1010 20数组交换1 3 2 4 5 6 1 3 2 4 5 6 String类型交换baiduwangyitencentwangyi
0 0
原创粉丝点击