首先明白Java的数据类型分为两种:基本数据类型 和 引用数据类型
java中的参数传递机制:值传递
- 形参是基本数据类型的,将实参的值传递给形参的基本数据类型的变量
- 形参是引用数据类型的,将实参的引用类型变量的值(对象的首地址)传递给形参
二者的概念:
1)基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。
2)引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。
Java数据类型在内存中的存储:
1)基本数据类型的存储原理:所有的简单数据类型不存在“引用”的概念,基本数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,而Java语言里面八种数据类型是这种存储模型;
2)引用类型的存储原理:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的;
区别:基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的(需要java中的栈、堆概念),
那么如何交换两个数值呢?
那么可以传递引用类型的数据,如对象或者数组,下面是传递的数组:
public class Swap5
{
public static void main(String[] args)
{
int[] i = {3, 5};
swap(i);
System.out.println(i[0]);
System.out.println(i[1]);
}
public static void swap(int[] a)
{
int temp = a[0];
a[0] = a[1];
a[1] = temp;
}
}