本帖最后由 qinglo_ 于 2012-11-27 21:52:19 编辑

解决方案 »

  1.   

    紧贴k.function();后面的那个大括号执行完之后应该程序就结束了
      

  2.   

    java虚拟机 结束程也跟着结束。
      

  3.   

    想深入了解可能学学java虚拟机。
      

  4.   

     Lz,JAVA是高级语言,是运行在虚拟机上的,JAVA高级代码---》中间字节码----》虚拟机----》编译---》运行
      

  5.   

    当执行到main的结束号},java虚拟机就会调用Thread.exit()方法,结束线程
      

  6.   

    java的代码栈中没有代码了,当然就退出了。
      

  7.   

    }我当时也答了 面试官对这个回答不满意应该是还有别的  从jvm方向回答也许有可能,不知道还有没有更详细一些的解答  这个问题看似简单  程序执行完了 自然也就结束了  要说出个所以然来还真有点难 当时旁边有一起面试的人说return 他也没怎么表示  期待大神详解啊
      

  8.   

    我很好奇 lz 面试的什么职位 
    如果不是比较偏门的开发方向的话,我觉得面试官在装13现实的情况是,不少人对 java collection 集合或者容器类族的 sorted / ordered / thread-safe 都犯含糊 ,相较之下,面试官的问题完全木有意义,属于没事儿抽人或者找抽型
      

  9.   

    默认调用调用java垃圾处理机制的线程。
    然后再结束main方法
      

  10.   

    非守护线程都执行完成了就over了吧。
      

  11.   

    代码被编译成class文件,其实是一个个的命令符

    执行的时候各个命令根据不同的条件顺序的进栈出栈,命令执行完,栈空了,也就结束了。
      

  12.   

    偶觉得这就是在考java虚拟机如何的运行,虽然很无聊但却很基础的问题。
      

  13.   

    有可能在考父子进程相关知识,典型的一个虚拟机进程由"java xxx"命令启动,所以它的父进程是shell进程,shell会fork一个子进程出来,通过JNI的JNI_CreateJavaVM函数创建一个java虚拟机并加载主类,调用主类的main方法从一个java程序就跑起来了。虚拟机所有非守护线程退出,这个进程也就结束了,但是进程所占用的资源还在,如果没有父进程去回收它,它就成为了一个僵尸进程,父进程回收了它以后,它才真正的结束,被操作系统回收资源。考这个可以看你对操作系统的理解程度吧
      

  14.   

    在Unix系统上,有5种方式可以使一个进程正常终止:
    (1)从main函数返回,相当于等效的调用exit函数
    (2)调用exit
    (3)调用_exit或者_Exit
    (4)最后一个线程从其启动例程返回
    (5)最后一个线程调用pthread_exit进程终止成为僵尸进程了。jvm运行离不开这些系统调用以及底层库函数,所以原理是相同的,有关内容也可以参考java虚拟机规范
      

  15.   

    main方法执行完了程序就结束了
      

  16.   

    可以借助理解c语言中最简单的顺序结构,调用完成方法后就退出程序,道理是一样的,实现是有区别的。具体的深入原理,还是需要了解java虚拟机的原理。实际上,所有的语言原理都遵循顺序,循环,选择这三中模式。
      

  17.   

    main方法是程序的的入口,先把KK类加载在JVM上,然后生成KK类的对象,通过对象调用方法function(),然后再输出就行了。