关于jdk的不同版本兼容性,有以下问题:
1 jdk是向下兼容的吗? 比如说,用jdk4 编译的代码能否在jdk5下正确运行? 反之,在jdk5下编译的代码能否在jdk4下正确运行?
2 用jdk4写的项目,在jdk5的环境中编译能否通过? 反之又如何?
3 jdk与jre作用分别是什么?有什么不同?

解决方案 »

  1.   

    jdk5通过的,不一定在4能通过吧
    4写的,可以在5通过吧
      

  2.   

    一般情况都是像下兼容的吧,像sql什么的,非像上兼容
      

  3.   

    回LZ问题3:
    JDK是面向开发人员使用的SDK(Java Development Kit,指软件开发包,可以包括函数库、编译程序等),它提供了Java的开发环境和运行环境。
    JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。
    JRE与我们的PC处于同等地位。
      

  4.   


    感觉大家都没有回答我的问题,我自己搜索了一下,大家看看我的理解对不对:
    1 用jdk4 编译的代码能在jdk5下正确运行,反之不行;
    2 用jdk4写的项目,在jdk5的环境中编译不一定能通过,因为新版本抛弃了旧版本中的一些类或方法,如果项目代码中有使用到,编译就可能会有问题。  反之也是一样。
      

  5.   

    大家理解向下兼容的意思,就是低版本程序可以在高版本的jre中运行,反之则会出现问题。
      

  6.   

    jdk4的代码不一定会在JDK5中运行,JDK5也不一定能在JDK4运行,比如以前的保留字在新版本抛弃……
      

  7.   

    这样说吧,在jdk1.4编辑的项目,用jdk1.5确实可以编译通过,可是1.5的运行环境,就不行啦!也就是说,项目发布时,就提示,jdk的版本有问题啦!很怪的,这一点是我们项目中发现的,报表开始是用jdk1.4开发的,当用1.5的z编译后,可是就是发布不起来!8楼的答案,已经把第三个问题给说明啦!很不错的解说,我也能接受这种说法,在我对java的认识中,概念没有绝对的,只是你的理解与实践相近,即可!
      

  8.   

    能够编译,却发布不起来,你知道是什么原因吗?你的回复是不是可以理解为:
    1 用jdk4 编译的代码不一定能在jdk5下正确运行. 
    2 用jdk4写的项目,在jdk5的环境中编译能够通过.是这样吗?
      

  9.   

     不同版本javac编译出bytecode的version number不一样, 
      类加载器根本就不会加载比自身版本号更高的类.所以就不能运行了. 
      

  10.   


    1.是,能,不一定
    2.不一定,一定
    3.jdk开发人员用,jre运行环境