当前位置:编程学习 > JAVA >>

date=null

import java.io.*;
import java.util.*;
public class Last {

public static void main(String[] args) {
// TODO Auto-generated method stub
        Last last=new Last();
Date date=new Date();
date.setDate(20);
System.out.println("1---"+date.getDate());

last.test2(date);//-----
System.out.println("2---"+date.getDate());
last.test0(date);
}
public void test2(Date date)
{
date.setDate(25);
System.out.println("3---"+date.getDate());
date=null;//这个赋值后,......求解释
//System.gc();
//System.out.println("3333---"+date.getDate());
}
public void test0(Date date)
{
System.out.println("4---"+date.getDate());
}
   
}
程序的输出 为什么?  date=null;//这个赋值后,......求解释
--------------------编程问答-------------------- http://topic.csdn.net/u/20120329/23/5082a6f4-41a4-4676-9b54-161bd8f375bb.html
楼主参考别人怎么理解的。
--------------------编程问答-------------------- --------------------编程问答--------------------
import java.io.*;
import java.util.*;
public class Last {

public static void main(String[] args) {
// TODO Auto-generated method stub
  Last last=new Last();
Date date=new Date();
date.setDate(20);
System.out.println("1---"+date.getDate());

last.test2(date);//-----
System.out.println("2---"+date.getDate());
last.test0(date);
}
public void test2(Date date)
{
date.setDate(25);
System.out.println("3---"+date.getDate());
date=null;//这个赋值后,......求解释 
//data = null ,只是参数的引用为 null ,让参数不知想任何对象,但是 传进来的参数 的date 在堆中还是存在,没有改变
//如果你在这里面修改date的属性 ,那么是会修改  date的;
//System.gc();
//System.out.println("3333---"+date.getDate());
}
public void test0(Date date)
{
System.out.println("4---"+date.getDate());
}
    
}
 //用的是jdk1.6
 
 //编译和输出结果如下:
//F:\javaTest>javac Last.java                                              
//注意:Last.java 使用或覆盖了已过时的 API。                               
//注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。               
//                                                                         
//F:\javaTest>javac -Xlint:deprecation Last.java                           
//Last.java:9: 警告:[deprecation] java.util.Date 中的 setDate(int) 已过时 
//date.setDate(20);                                                        
//    ^                                                                    
//Last.java:10: 警告:[deprecation] java.util.Date 中的 getDate() 已过时   
//System.out.println("1---"+date.getDate());                               
//                              ^                                          
//Last.java:13: 警告:[deprecation] java.util.Date 中的 getDate() 已过时   
//System.out.println("2---"+date.getDate());                               
//                              ^                                          
//Last.java:18: 警告:[deprecation] java.util.Date 中的 setDate(int) 已过时
//date.setDate(25);                                                        
//    ^                                                                    
//Last.java:19: 警告:[deprecation] java.util.Date 中的 getDate() 已过时   
//System.out.println("3---"+date.getDate());                               
//                              ^                                          
//Last.java:26: 警告:[deprecation] java.util.Date 中的 getDate() 已过时   
//System.out.println("4---"+date.getDate());                               
                                ^                                          
//  6 警告                                                                   
//                                                                         
//  F:\javaTest>java Last                                                    
//  1---20                                                                   
//  3---25                                                                   
//  2---25                                                                   
//  4---25                                                                   
//                                                                         
//  F:\javaTest>                                                             
//                                                                         
                            
--------------------编程问答-------------------- date=null;//这个赋值后,......求解释
你是要问为什么赋值为null么?是为了提醒JVM垃圾回收,当然具体它什么时候回收,能不能回收都不确定。 --------------------编程问答-------------------- 传入的是地址的引用,在test2中setNull了以后,就把date指向了null所以,后面在调用sysout的时候就打出null
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,