小白求解下面的关于Date类的题目

TMAC狂热 2014-04-17 08:43:49
题目1:
import java.util.Date;
public class Test {
public static void main(String[] args){
Date date = null;
m1(date);
System.out.println(date);

}
public static void m1(Date date){

date = new Date();

}
}
题目1答案 : null
题目2:
import java.util.Date;
public class Test {
public static void main(String[] args){
Date date = new Date(1234567);
m1(date);
System.out.println(date.getTime());

}
public static void m1(Date date){

date = new Date(7654321);

}
}
题目2答案:1234567
题目3:
import java.util.Date;
public class Test {
public static void main(String[] args){
Date date = new Date(1234567);
m1(date);
System.out.println(date.getTime());

}
public static void m1(Date date){

date.setTime(7654321);

}
}
题目3答案: 7654321
题目4:
import java.util.Date;
public class Test {
public static void main(String[] args){
Date date = new Date(1234567);
m1(date);
System.out.println(date.getTime());

}
public static void m1(Date date){

date = null;

}
}
题目4答案:1234567



题目5(找错题)
public class Test {
public static void main(String[] args){
java.uti.Date[] dates = new java.util.Date[10];
System.out.println(date[0]);
System.out.println(date[0].toString());
}
}
希望大神能够给与解释 谢谢!!!
...全文
313 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
枯木_叶 2014-04-23
  • 打赏
  • 举报
回复
引用 1 楼 zhouren1314 的回复:
前两个和第四个是一种情况,都是; 局部与全局的关系。。。,第三个是调用的set方法调用的是本对象,,, 至于第五个。。。错误三处:第一个 java.uti.Date---->java.util.Date;第二个:date----->dates, 输出后有异常: 输出结果为:null. ------->根本没有初始化。 nullpointException-------》调用一个对象为null的方法,肯定包空指针
==|
TMAC狂热 2014-04-23
  • 打赏
  • 举报
回复
引用 7 楼 chliang198882 的回复:
对象的引用和实例的关系,Date date 是创建一个date引用,new Date()是创建一个Date对象(实际上是在内存分配了一段内存),当Date date = new Date() 表示把date这个引用指向了创建的那个对象,理解了这个,你就应该明白题目一到题目四的结果了。因为你在前两题的m1方法中都重新创建了新的对象,并且把引用指向了新的对象,而最终打印的是main中的引用指向对象的内容,而main中引用指向的对象一直没改变,所以题目一、题目二结果;题目三中m1没有创建新对象,也没有改变新引用date的指向,只是用了set方法把对象中内容重新赋值了,所以得到题目三结果;题目四其实跟前两题一样,date = null 改的只是m1方法中引用的指向,跟main方法中的引用无关。
Thanks!!!解释的很详细!
TMAC狂热 2014-04-23
  • 打赏
  • 举报
回复
引用 4 楼 sc6231565 的回复:
http://blog.csdn.net/feng_cs/article/details/1917498 关于Java中方法调用时参数的传递
Thanks. 很形象!!1
葛芮拉 2014-04-23
  • 打赏
  • 举报
回复
对象的引用和实例的关系,Date date 是创建一个date引用,new Date()是创建一个Date对象(实际上是在内存分配了一段内存),当Date date = new Date() 表示把date这个引用指向了创建的那个对象,理解了这个,你就应该明白题目一到题目四的结果了。因为你在前两题的m1方法中都重新创建了新的对象,并且把引用指向了新的对象,而最终打印的是main中的引用指向对象的内容,而main中引用指向的对象一直没改变,所以题目一、题目二结果;题目三中m1没有创建新对象,也没有改变新引用date的指向,只是用了set方法把对象中内容重新赋值了,所以得到题目三结果;题目四其实跟前两题一样,date = null 改的只是m1方法中引用的指向,跟main方法中的引用无关。
chen870201 2014-04-18
  • 打赏
  • 举报
回复
可以自己调一下看看
Magical茏 2014-04-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/feng_cs/article/details/1917498 关于Java中方法调用时参数的传递
等风的云 2014-04-17
  • 打赏
  • 举报
回复
楼主可以看下Java调用方法时参数传递这一块的内容
乔不思 2014-04-17
  • 打赏
  • 举报
回复
前两个和第四个是一种情况,都是; 局部与全局的关系。。。,第三个是调用的set方法调用的是本对象,,, 至于第五个。。。错误三处:第一个 java.uti.Date---->java.util.Date;第二个:date----->dates, 输出后有异常: 输出结果为:null. ------->根本没有初始化。 nullpointException-------》调用一个对象为null的方法,肯定包空指针

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧