实时搜索: java jdk 哪个版本好

java jdk 哪个版本好

317条评论 5043人喜欢 2441次阅读 610人点赞
平常大家说的java版本,到底是java6还是java1.6?6是根据jdk1.6来的还是根据jre6来的?还是说java6中有jdk多个版本jdk1.1,jdk1.2,java7中有jdk1.1,jdk1.2?java2 中的2和java6是相对吗?java6包含Java 6 Platform Micro Edition,J6ME、Java 6 Platform Standard Edition,J6SE
Java 6 Platform Enterprise Edition,J6EE,可以这样理解吗?希望明白的人能回答的详细点 , 我去书城找过了,只有Java2入门经典(JDK5)...

什么是泛型?有何作用?从jdk哪个版本开始出现的: 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
Java语言引入泛型的好处是安全简单。

在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。

泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。

关于java6 jdk1.6 jre6 名字之间的关系:   java6就是指的jdk1.6,jre6也是根据jdk1.6来的,就是java run environment的意思。

  JDK就是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
如果需要运行java程序,只需安装JRE就可以了。如果需要编写java程序,需要安装JDK。

JDK安装完以 后没有JAVAC 试了好几个版本了JRE也是自带的: JDK和JRE一定不能安装在同一文件夹中,(jdk自带的那个jre除外)否则运行的时候会找不到javac命令。
原因:JRE晚于JDK安装,而JRE只是提供Java运行环境,不需要javac编译命令的。 JRE安装前你会发现它会自动删除一些无关文件,如果同JDK安装在同一目录下,原本JDK中完好的javac命令就会被删除!!
解决方案:重新安装一次JDK 你会发现系统会安装两次文件 第一次的是jdk 第二次的是jre 只要保证你两次安装的目录不是同一个就OK。

Java2入门经典(JDK5),Java 2编程指南(SDK 1.4版)这两本书哪一本好?: 我觉得不一定只盯着这两本书啊,还有很多其他比较好的书也是不错的

hadoop 2.8 可以用jdk1.8吗: 没问题,jdk基本都是向下兼容的
我们在做dubbo接口开发是,要考虑jdk版本兼容的问题。如果是高版本的jre运行低版本jdk compile 的jar,根据java的向下兼容性,这个没有问题。但如果是低版本jre运行高版本的jdk compile的jar,会怎么样呢?
问题的背景
最近在做项目时,由于要用到elastichsearch 做开发,elastichsearch 的jdk版本是java7,而公司要求的java版本一般来说是java6,当时想java7 的jre可以运行java6 compile的jar包,应该没有什么问题。后来在发布duboo接口到maven私库上时,发现问题了,如果用java7 compile jar 包到maven私库上,调用方如果使用的是java6,能正常运行吗?在和同事讨论时,大体上有两种观点
* 如果没有使用java7 的 feature,则java1.6的jre可以运行jdk1.7 compile 的jar包
* java1.6不能运行java7 compile 的jar包
123

到底哪种说法是正确的呢?
看看官方文档怎么说
我从oracle 找到了一份java8 compatible document
Binary Compatibility
Java SE 8 is binary-compatible with Java SE 7 except for the incompatibilities listed below. Except for the noted incompatibilities, class files built with the Java SE 7 compiler will run correctly in Java SE 8. Class files built with the Java SE 8 compiler will not run on earlier releases of Java SE.
官方文档的意思是:同一份代码,用java8打包的jar,不能在java7上运行,反之可以。
那我们来试一试吧,看java7打包jar, mvn clean install 到本地 ,然后,用另外一个项目来调用,会怎么样?
我们启动一个调用方的项目
StagePayBusinessTO : Unsupported major.minor version 51.0
程序在运行时报错了
所以,我们得出一个结论,高版本编译的java代码,在低版本无法运行.那么,现在另外一个问题来了,如果项目的jdk是java7的,但jsf接口的API必须是java6的,如果哪天不小心,mvn deploy时用java7的编译打包后传到了maven私库上,调用方如果使用的是jre1.6的版本,当下载你的高版本编译的依赖jar包后,直接导致程序无法启动,这个怎么办呢?
重新认识maven-compiler-plugin 插件
笔者之前,一直认为configuration的source,target中的数值是约束jdk版本的,只要本地jdk版本大于等于这个数值就行。比如,这个数值是1.6,那么只要jdk版本大于等于1.6,就可以编译,如果jdk版本是1.7,则是生成的是jdk1.7规范的class文件,如果jdk是1.6,则生成的是jdk1.6规范的class文件。笔者认真看了一下这个插件的文档,发现source和target是javac 在编译时要传的参数。我在官方网站上找到了关于source和target的说明,source不用介绍了,我们重点看一下target的说明。
-target version Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are 1.1, 1.2, 1.3, 1.4, 1.5 (also 5), 1.6 (also 6), and 1.7 (also 7).
The default for -target depends on the value of -source:
If -source is not specified, the value of -target is 1.7
If -source is 1.2, the value of -target is 1.4
If -source is 1.3, the value of -target is 1.4
If -source is 1.5, the value of -target is 1.7
If -source is 1.6, the value of -target is 1.7
For all other values of -source, the value of -target is the value of -source.1234567

从以上说明中我们可以看出,target配置多少,就用哪个jdk版本的规范文件。比如,你是java7的编译器,如果target是1.6,则生成java1.6规范的class文件。 有了这个插件,我们在jsf 接口发布的时候,只需要在API 子项目的pm.xml中配置好1.6,就可以了,再也不用担心因为是java1.7的编译器而把JSF接口的jar 编译成java1.7规范的class了。

为什么win10配置JDK输入javac总是显示不是内部或外部命令?:

1、系统变量→新建 JAVA_HOME 变量 。变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)

2、系统变量→寻找 Path 变量→编辑。

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

3、系统变量→新建 CLASSPATH 变量。

变量值填写   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

ubuntu 怎么安装java:

  步骤

下载 jdk,当前的版本是 jdk-8u45。选择适合自己系统的版本进行下载,下载好之后放在 Download 目录下

然后使用 Ctrl + Alt + t 打开终端进入 Download 目录下,使用 tar -xf jdk-8u45-linux-x64.tar.gz 命令进行解压,接着再使用命令 sudo cp -r jdk1.8.0_45/ /usr/lib/,输入密码,即可将其拷贝到 /usr/lib 目录下。此时使用 ls /usr/lib/jdk1.8.0_45 命令便可查看到已经成功拷贝过来了

使用命令 sudo gedit  /etc/profile 打开 /etc/profile 文件,然后在文件末尾添加如下三行:

export JAVA_HOME=/usr/lib/jdk1.8.0_45

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

如果正确按照前两步进行,上面三行可以直接 copy 过去

最后 Ctrl + s 保存。

输入命令 sudo source /etc/profile 使其生效,然后再使用命令 java -version,如果查看到 java 版本信息,即表示成功安装了。但是,此时只有执行过 sudo source /etc/profile 命令的终端所在的线程才可以使用 Java 环境变量,而其他线程则还不可以。重启之后则都可以了

JDK设置了环境变量后还是不能随便哪个地址都能编译(语言不太好): 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;
2.安装完成后,右击“我的电脑”,点击“属性”;
3.选择“高级”选项卡,点击“环境变量”;
4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;
5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:\java\jdk1.5.0_08,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量);
Path使得系统可以在任何路径下识别java命令,设为:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
  CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)
  %JAVA_HOME%就是引用前面指定的JAVA_HOME;
6.“开始”->;“运行”,键入“cmd”;
7.键入命令“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;

  • note2和mx3哪个好

    黄粘盖牛肝菌怎么做好吃: 1、需用材料:牛肝菌100克,乌鸡300克,清水1000克,姜10克;调味料:盐5克,鸡精3克,糖1克,胡椒粉1克。2、将牛肝菌和乌鸡斩块氽水,准备姜切片以待用。3、将净锅上火,依次放入清水、姜片、乌鸡、牛肝茵,用大...

    444条评论 3047人喜欢 5817次阅读 663人点赞
  • 昆明到会东几个小时

    怎么蒸汤包: 小笼汤包 原料:仔发面团750克 猪肥瘦肉400克 猪肉皮250克 生姜10克 大葱50克 精盐3克 胡椒粉3克 料酒15克 酱油25克 葱姜汁30克 白糖15克 鸡精5克 味精5克 香油10克 鲜汤少许 制法: 1...

    212条评论 1204人喜欢 5251次阅读 332人点赞
  • 昆明英语学校哪个好

    白莲鱼红烧罗卜的做法: 步骤1.准备材料有:白莲鱼、白萝卜300g、适量的生姜、蒜头、红辣椒、大茴、大葱、胡椒粉、酱油、盐巴、糖。2.先把白萝卜洗净、削皮、切块、备用。3.再把蒜头、姜、剁碎。红辣椒、大葱、切段。4.方方鱼去鳞、去内脏、洗净...

    524条评论 3888人喜欢 2522次阅读 337人点赞
  • ngff接口在哪

    比鸡精还鲜八十倍的是什么调料,颜色是白的,有胡椒的味道。: 是不是?香精什么的?建议那个不要用对身体有害 ...

    254条评论 3152人喜欢 1773次阅读 450人点赞
  • 踏板摩托车换前面外壳多少钱

    干胡椒能存放多久,己经放了十年,这样会腐烂吗?: 胡椒通风放可以放10年的,只是味道就会差一点了 ...

    731条评论 2513人喜欢 3286次阅读 844人点赞