class A
{
public static void main(String [] args)
{
//第一个疑问:String类中的这个方法是这样定义说明的.
//boolean equals(Object obje);既然参数为Object类型.
//请问一下我传入int类型怎么会出错啊?是不是在这个方法内的"拆箱",出错呢?
//可不可以这么讲呢?而"装箱"是没有问题的.
String i="100";
int j=200;
System.out.println(i.equals(j));
}
}
{
public static void main(String [] args)
{
//第一个疑问:String类中的这个方法是这样定义说明的.
//boolean equals(Object obje);既然参数为Object类型.
//请问一下我传入int类型怎么会出错啊?是不是在这个方法内的"拆箱",出错呢?
//可不可以这么讲呢?而"装箱"是没有问题的.
String i="100";
int j=200;
System.out.println(i.equals(j));
}
}
int j=200;
System.out.println(i.equals(new Integer(j)));
这样比较容易看出效果
System.out.println(i.equals(new Integer(j).toString()));
可以这样小改一下
晕了晕了,请问何为基本数据类型/你千万别笑话我啊,我学的是化学专业,现在自学java没有老师指点,很难啊.
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
+-----+ +-----+
| k | -----> | 5 |
+-----+ +-----+直接将 5,存放到了 k 所指向的地址空间。而引用类型就不是这样的了,而是还要再指向一块地址空间。