public class swap {
public static void main(String[] args) {
int[] a=new int[2];
a[1]=12;////基本数据类型new 之后,通过赋值语句来传值
swap[] s = new swap[5];
int i = 0;
while (i< 5) {
s[i++] = new swap();
//1.
在Java中对非基本数据初始化时,必须使用new。在使用new创建数组后,此时数组还是一个引用数组。
只有再创建新的对象,并把对象赋值给数组引用,到此初始化结束。
}
System.out.println(Arrays.toString(s));
}
}
2、什么是引用类型////转载
引用类型(reference
type)指向一个对象,不是原始值,指向对象的变量是引用变量。
在java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。
示例如下:
public
class MyDate {
private
int day = 8;
private
int month = 8;
private
int year = 2008;
private
MyDate(int day, int month, int year){...}
public
void print(){...}
}
public
class TestMyDate {
public
static void main(String args[]) {
//这个today变量就是一个引用类型的变量
MyDate
today = new MyDate(23, 7, 2008);
}
}
2、引用类型的赋值
在java编程语言中,用类的一个类型声明的变量被指定为引用类型,这是因为它正在引用一个非原始类型,这对赋值具有重要的意义。如下代码:
int
x = 7;
int
y = x;
String
s = "Hello";
String
t = s;
四个变量被创建:两个原始类型
int 和两个引用类型String。x的值是7,而这个值被复制到y;x和y是两个独立的变量且其中任何一个的进一步的变化都不对另外一个构成影响。至于变量s和t,只有一个String对象存在,它包含了文本"Hello",s和t均引用这个单一个对象。

如果将变量t重新定义为t="World";则新的对象World被创建,而t引用这个对象。

3、按值传递和按引用传递的区别
1)按值传递
指的是在方法调用时,传递的参数是按值的拷贝传递。示例如下:
1. public
class TempTest {
2. private
void test1(int a) {
3. //
做点事情
4. a++;
5. }
6.
7. public
static void main(String args[]) {
8. TempTest
t = new TempTest();
9. int
a = 3;
10. t.test1(a);//这里传递的参数a就是按值传递。
11. System.out.printIn("main方法中的a==="
+ a);
12. }
13. }
按值传递的重要特点:传递的是值的拷贝,也就是说传递后就互不相关了。第9行的a和第2行的a是两个变量,当改变第2行的a的值,第9行a的值是不变的,所以打印结果是3。
main 方法中的a
为 3
test1
方法中的a 为 4
我们把第9行的a称之为实参,第2行的a称之为形参;对于基本数据类型,形参数据的改变,不影响实参的数据。
2)按引用传递
指的是在方法调用时,传递的参数是按引用进行传递,其实传递的是引用的地址,也就是变量所对应的内存空间的地址。
示例如下:
1. public
class TempTest {
2.