基本数据类型传值
引用数据类型传引用
堆内存用来存放由new创建的对象和数组。在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量
右面圈为堆内存,左面为栈内存
String[] str1={"1","2","3"}
;//1,2,3为三个地址
String[] str2={"1","2",new String("3")};
System.out.println();
String str3="1";
String str4=new String("1");
System.out.println(str3==str4);//false
//引用数据类型==地址
//基本数据类型==值
System.out.println(str3.hashCode()==str4.hashCode());//true
//hashcode不同,代表是两个对象
//hashcode相同,不一定是一个对象
package com.jredu.ch06;
import java.util.Arrays;
public class Ch033 {
private int i;
public static void main(String[] args) {
// TODO Auto-generated method stub
Ch03 a=new Ch03();
a.i=1;
Ch03 b=new Ch03();
b.i=1;
Ch03[] str1={a};
// System.out.println(a);
Ch03[] str2={b};
// System.out.println(b);
// String a="1";
// String b=new String("1");
// System.out.println(Arrays.equals(str1, str2));
String[] s1={"1"};
String[] s2={new String("1")};
String a1="1";
String a2=new String("1");
System.out.println(a1.hashCode());
System.out.println(a2.hashCode());
System.out.println(Arrays.equals(s1,s2));
//看数组类型存放的数据类型是不是基本数据类型
}
}