站内搜索: 请输入搜索关键词

当前页面: JAVA 编程资料牛鼻论坛Java & J2SE 技术区→请问java高手????

请问java高手????

发表新主题   回复此主题

第1楼 2007-05-10 19:48 xpn.master 写道:

请问java高手????


程序代码如下:
import java.util.*;
public class EqualsTest
{
public static void main(String[] args)
{
Employee alice1 = new Employee("Alice Adams", 75000, 1987, 12, 15);
Employee alice2 = alice1;
Employee alice3 = new Employee("Alice Adams", 75000, 1987, 12, 15);
Employee bob = new Employee("Bob Brandson", 50000, 1989, 10, 1);

System.out.println("alice1 == alice2: " + (alice1 == alice2));

System.out.println("alice1 == alice3: " + (alice1 == alice3));
}
}

class Employee
{
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
hireDay = calendar.getTime();
}
private Date hireDay;
private String name;
private String salary;
}

为什么System.out.println("alice1 == alice2: " + (alice1 == alice2));输出为true,而 System.out.println("alice1 == alice3: " + (alice1 == alice3));输出为false.

第2楼 2013-08-31 12:44 Robot :

请问java高手???? 相关


第3楼 2007-05-10 20:10 shore_who 写道:

==判断内存地址是否相同,alice2指向alice1的地址,所以相同,alice3虽然内容相同,但是创建的时候是开辟一块新的内存空间,和alice1指向的内存地址不一样,所以返回false


发表新主题   回复此主题