1.请问JAVA是解释执行的吗?上网查了,答案是肯定的。大多数还说,解释执行的好处是可以跨平台,只要在不同的平台上装上解释器,就可以叫JAVA运行在不同的平台上,只是效率低。我的疑问,能举一个不是解释执行的语言吗?不是解释执行的语言是靠什么执行的,为什么它的这种执行机制限制了它本身的跨平台性?JAVA的解释器是在JDK里面包含吗?
2.所谓解释执行是什么?JSP的解释执行和JAVA一样的道理吗?请问解释执行就是用特定的程序编写虚拟机来执行特定的语言编写的程序吗 ?在Eclipse中 .java文件编译时 会自动做什么动作?
3.什么是运行期?比如thinking in java中提到的上溯造型,就是在运行期的时候,检查他的准确类型到底是什么,请问是不是通过编译生成的.CLASS文件来进行检查的。.java编译的时候,属于什么期?( 我想应该不是运行期吧?) 
4.如果我在代码中  声明一个对象,例如:Date date = new Date();在编译完成后,这个对象的实例应该没有生成吧,也就是说并没有在内存给他分配生成对象的空间(我认为,不知道对不对,请高手指点,谢谢。),那他的引用有没有在堆栈生成。 
 如果我用Spring生成一个对象,请问是不是在运行期读取配置文件生成的。如果是,那和我们在代码中new出来的对象在运行的时候有什么不同,也就是说 他们在运行期间实例化的时间(在内存中谁先存在)上有没有不同?还是一样的?请知道的高手赐教。。谢谢

解决方案 »

  1.   

    除了解释性语言,还有一类是编译型语言,两者都是把高级语言翻译成机器语言的方式。两种方式只是翻译的时间不同。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。 常见的编译型语言是C/C++等,而JAVA实际上是一种混合型语言(编译和解释)
    ,其实我觉得刚开始学时不用扣的太细,有些细节可以等以后用到了再来了解。
      

  2.   

    楼上还有一点没有说清楚,编译器为什么不能跨平台? 因为C++,C只能针对特定目标进行编程,如果要在不同平台上实现同一个程序,那么各个平台上就必须实现对应的C++编译器,开发C++编译器的成本要大于Java的虚拟机的.所以Java在不同平台上的虚拟机就解决了跨平台的问题.
      

  3.   

    java是解释执行...他的运行必须依赖于jvm
      

  4.   

    回复4楼:无论是解释执行与否的 必须依赖JVM 因为只有JVM才能读懂.CLASS 文件。个人认为这个和解释执行没有什么关系。
    谢谢123楼的朋友的回答,我这是第一次在这里的提问, 呵呵。因为小弟本不是计算机专业的,所以有些东西理解的不太清楚,多多包涵。
    其中一楼的朋友和2楼的朋友回答我比较满意,知道了为什么C++/C不去夸平台,那是因为开发编译器的成本太大,1楼的兄弟让我知道了 解释性语言和编译性语言。
    谢谢大家对我的帮助, 计划没人给10分, 呵呵,不过还不知道怎么给呢。 哈哈