class a
{
public static void main(String args[])
{
   try{}
    catch(Exception e)
    {
     return;
    }
}
这要是个普通的成员函数还可以理解!谁能告诉我return用的主函数中是个什么意思啊?十分迷惑!!!而且主函数还是viod的!!这是怎么回事哦!

解决方案 »

  1.   

    return不就是说main方法返回了嘛.这个main主线程结束~
    而main声明的返回类型是void,自然return后面不带返回值的.
    至于这么做有什么用,看看下面代码:import java.io.*;
    import java.util.*;public class Test {
    public static void main(String args[]) {
    Thread t = new Thread(new Runnable() {
    public void run() {
    Scanner sc = new Scanner(System.in);
    System.out.println("input something:");
    System.out.println(sc.nextLine());
    }
    });
    t.start();

    try {
    FileReader fr = new FileReader("111.txt");
    } catch (Exception e) {
    return;
    //System.exit(0);
    }
    }
    }楼主可以比较一下用return和System.exit(0)的区别~
      

  2.   

    这有什么问题嘛,总一个地方调用main()函数的,那么就当是返回嘛class a
    {
    public static void main(String args[])
    {
      return;
    }不做任何事情
      

  3.   

    主函数不也是个函数么to zephyr_cc() 
    在main方法里,return 和 System.exit(0)是不是没什么区别?因为主线程执行完了,虚拟机不也是要关闭的么?
      

  4.   

    不是这样的.
    线程分为守护线程和非守护线程.像执行垃圾收集任务的线程叫守护线程,通常由虚拟机自己使用.
    而main还有程序中创建的线程叫非守护线程.
    只要还有非守护线程在运行,虚拟机不会退出的.
    直到所有非守护线程都结束或者调用System.exit(),虚拟机才关退出.
    上面那个示例,用return的话,main线程结束,但是t线程还处于阻塞状态,没有结束,所以虚拟机并没有退出.
      

  5.   

    哦。
    如果main()里没有创建新的线程呢?那么main()执行完不就是唯一的非守护线程执行终了么?
      

  6.   

    【zephyr_cc() 】说的
    如果是单线程的时候,就是一个普通的函数调用。
    如果要用System.exit()的话,程序可能就结束了。如果用return就是返回,下面的程序就不执行了。
    仅供参考。
      

  7.   

    main()里没有创建新的线程的话,main就是唯一的非守护线程.
    main返回,全部非守护结束,虚拟机退出,程序也就终止了~