Java 值交换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 值交换相关的知识,希望对你有一定的参考价值。

/*
值传递: 调用一个方法的时候,传递给方法的参数 ,实际上传递变量所存储的值。而不是传递变量,只是传递变量存储的值,变量还是在哪里的
1、形式参数是所属函数的局部变量
2、不同函数的局部变量与局部变量相互独立,没有任何的关系
3、如果是 不同引用类型变量操作同一个对象,那么肯定会影响到结果
*/

import java.util.*;

class Person{
    int x =10;
}

class Demo5{
    public static void main(String[] args){
        /*
        int a = 3;
        int b = 5; 
        changeValue(a,b);
        System.out.println("交换之后的值:a = "+a +" b="+b);  a=3,b=5 
        
        int[] arr = {23,10,9};
        changeArr(arr,1,2);
        System.out.println("数的元素:"+ Arrays.toString(arr));// 9 ,10
        */
        
        Person p = new Person();
        changeObj(p,20);
        
        System.out.println("x = "+ p.x); //20
    }
       
        public static void changeObj(Person p ,int x){
            p.x = x;
        }
        
        //需求2:定义一个函数交换数组中两个元素的位置。
        public  static void changeArr(int[] arr , int index1,  int  index2){ //局部变量arr 和主方法中的arr并不是同一个变量,只不过变量存储的值一样
            int temp = arr[index1];
            arr[index1] = arr[index2];
            arr[index2] = temp;
        }
        
        //需求1:定义一个函数交换两个基本类型变量的值。 
        public static void changeValue(int a , int b){
            int temp = a;
            a = b;
            b = temp;
            System.out.println("方法内部交换的值:a = "+a +" b="+b);
        }
}


1、交换两个基本类型变量的值

技术分享

2、交换数组类型变量的值

技术分享

3、修改对象属性值

技术分享

本文出自 “小鱼的博客” 博客,谢绝转载!

以上是关于Java 值交换的主要内容,如果未能解决你的问题,请参考以下文章

Java数组元素位置交换?

【MQ】RabbitMQ 交换器与队列

Java线程与并发编程实践----同步器(交换器信号量)

在 java 9 中查询交换空间

交换排序之冒泡排序(java)

Java小案例——交换两个数值的三种方法