百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

jdk版本的选择(推荐1.8)_jdk版本怎么选

yund56 2025-02-25 00:50 6 浏览

对java新手来说,选择jdk的版本也是个头晕的事情,今天小拿就给大家讲讲。内容包括

1.jdk从1.5到1.11,选哪个最好

2.jdk和jre的区别

一、jdk版本选择

jdk是java开发工具包,除了运行和编译相关的工具外,最重要的是封装了很多方法(function/method/api)。比如写一个输出“Hello world”的程序,直接调用System.out.println方法就好。

但是安装jdk的时候,有的人推荐1.6(也有叫6.0的),也有说用1.7和1.8的。竟然这么混乱,不如先官网看看是什么情况。

java下载官网直达:
https://www.oracle.com/technetwork/java/javase/downloads/index.html

神马!真是不看不知道,一看吓一跳,jdk原来在今年的9月26日已经发布了了11.0(也就是1.11),从jdk1.5到1.11,到底选哪个版本?

问题1:JDK为什么频繁升级,从1.7到1.8、1.9、1.0、1.11?

这个问题新手可以了解下,java和C++都是高级语言,但是两者之间最大的区别就是C++底层直接调用操作系统运行硬件;而java是在操作系统之上加了一层JVM(java虚拟机),也就是运行上硬件之上的一个层级,所以一般来说C++性能更好。

早期的大型客户端游戏、网络和大数据算法、和硬件驱动都是用C++(或者C)语言来开发的。但是人无完人,语言也是这样,要不然就不会有像java、python、go等五花八门的语言。与操作系统的强锁定使C++在不同操作系统或者硬件平台运行时,都要对程序进行改进和调整。

而java因为底层有一套虚拟机的存在,号称各平台运行无障碍。现在智能电器、家居基本上跑的都是基于java语言开发的程序。

但是java说我也是运用这么广泛的语言,怎么能老戴着性能不如C++的帽子呢?所以随着技术的提高和数据结构算法的应用,通过不断的小版本(如1.8.1,1.8.2)和大版本(1.7、1.8等)的发布,jvm的性能也一直在升级,普通应用场景下,已经和C++性能相关不大。

另外,语法一直比较死板的java语言,也在吸收其它语言的精华,比如1.8引入了Lambda表达式,1.9引入var变量等。(虽然,java程序员大都不买账,一直用着原来死板的语法~~)

问题二:到底取选哪个

先给答案,选1.8或者1.9,1.8优先。

话要从Sun公司(也就是太阳)被Oracle收购说起,java原来是个开源项目,社区来维护。被收购后就带有商业和属性,Oracle公司也慢慢开始向java开刀和收费了,虽然现在jdk se 标准版还不收费,但是高级版已经向使用的企业要钱了。

有这个打算后的java语言走的路子就快了很多,比如10.0和11.0的发布就很快,一些新增的功能还需要市场来反馈是不是合理的,而且java开发依赖于很多框架(如spring),如果这些框架还没有完全支持新版本,可能就运行不起来。所以建议新版本(10.0和11.0),除非只想从语言层面去体验新功能,还是不要在实际业务开发中用。

1.5和1.6就太老了,连1.8,Oracle都发出2019年1月停止更新的通知了,我们就更不要用这些老古董了。

1.7、1.8、1.9都是成熟版本,原则上都可以选用。公司的商业项目jdk一般不轻易升级,1.9用的就比较少了,加上上面的配套框架升级速度的考虑,1.9版本第二推荐位。1.8和1.7的应用都比较广泛了,那自然选更新更高级的版本,所以,最推荐用1.8版本。

二、jdk和jre的区别

有同学在配置系统时,经常遇到jdk和jre的问题,但是也搞不清两者的区别。这里作为常识了解下,早期不知道也没什么问题。

其实从就两个词的字面就可以区分开,jdk(java development kit)是java的开发工具包,jre (java runtime environment) 是java程序的运行环境。

本地开发的时候也可以运行,但是作为网站或者项目运行时,代码都打个war包或者jar包了,跟开发相关的工具和包就没有用了。

也就是说jre是jdk的一个子集。

下图是官方1.8的文档说明:
https://docs.oracle.com/javase/8/docs/

运行时使用jre而不使用jdk,一方面是为了减少硬盘空间的使用,另一方面也有一定的安全考虑,防止jdk里的一些执行命令被恶意篡改。当然,现在大部分公司运行时已经不那么区分jdk和jre了,直接在服务器上跑JDK。



相关推荐

重生之我在头条学html网页编程,这一世我一定学好,成为编程高手

有人要问了html是什么东西?就是用来设计网页的一种语言会不会很难啊?这是很多朋友担心的,我告诉大家这是最简单最基础也最容易学习的一款入门级语言,当初我也是经常因为学不会C语言而苦恼自从学习了html...

如何在网页3D CAD中创建一个三维管道模型

前言在网页CAD中进行三维建模是一项有趣的任务。本文将介绍如何利用mxcad3d来创建三维管道模型。该工具提供了一系列三维建模功能的API,使得建立复杂的管道结构变得简单直观。安装在此之前,需要先安装...

网页模版如何用

网页模版已成为如今网站建设的核心工具。随着互联网需求的增长,越来越多的企业和组织需要建立自己的网站,以展示他们的品牌和服务。在这个过程中,网页模版为他们提供了一种简单而高效的方式来构建网站。所谓网页模...

AI嵌入式Flowcode编程网页开发人员入门指南

WebDeveloper允许使用FlowcodeIDE环境开发具有交互性的网页。可以在2D面板中添加特殊网页组件,以创建网页的视觉表示,并可以使用流程图添加交互功能。它的引入意味着Flowcod...

用Deepseek制作网页版的汉诺塔游戏保姆级教程

在deepseek中输入:“帮我做一个网页版的汉诺塔演示游戏,游戏包含2层、3层、4层、5层的汉诺塔游戏演示,制作自动求解演示按钮,点击按钮就可以生成出步数,同时自动演示最优解动画。”最后把生成的程序...

TaskBuilder前端页面CSS样式规则设置

在前端页面设计器内,点击底部的“CSS样式”选项卡,可以打开CSS样式设计器,在此查看和设计当前页面的CSS样式规则,如下图所示:3.3.6.1引入外部样式文件如果要在页面中引入外部CSS文件,可以点...

使用 Python、FastHTML 和 Uvicorn 构建简单的博客网站

FastHTML是2024年7月推出的PythonWeb框架,是一个简单但功能强大的框架,允许开发人员使用纯Python构建Web应用程序。(不需要复杂的模板引擎)。Fast...

用AI可以生成HTML网页了,很多初级前端都要失业了

即使你完全不懂html,javascript,css,也能做出漂亮的网页,这在以前是不可想象的,而现在确是可行的,因为有这样一个项目:openUI。openUI不仅仅能生成html页面,还能生成自适应...

python原始套接字socket下载http网页文件到txt

python原始套接字socket下载http网页文件到txtimportsocketdefdownload_webpage(url,output_file):try:...

高效排版:实现DeepSeek生成内容Word格式排版并导...

高效排版:实现DeepSeek生成内容Word格式排版并导出的经典方法,步骤简洁高效:DeepSeek生成内容复制出来容易出现乱码,下面介绍一种比较高效简单的方法!一、核心三步法1.调整模型模式在D...

打工人福音!3分钟教你学会word精美排版

昨天大熊介绍了word一键排版的三种办法,今天我们来详细讲讲第二种办法,用html代码实现一键排版,然后再导出pdf实现精美效果。打工人,打工魂,你是不是也有以下烦恼?下面是我经过多次和Deepsee...

使用 HTML 创建可折叠的交互式组件,一行 JS 代...

如果你想创建一个可折叠的交互式组件,使用<details>元素即可,一行JavaScript也不用写。<details>组件定义了一个可折叠的容器,它的第一个元素必须...

新手小白1分钟学会Word——文档的编辑1.1

天空一声巨响,迷人的我闪亮登场,亲爱的家人们,周末好呀!话不多说,咱们继续开干!昨天说到本节还有个小尾巴,那咱们就把这个小尾巴了结了,然后开始新篇章~四、保存文档我们对文档编辑完之后最重要的一步就...

超强!DeepSeek+HTML制作数据看板,老板看了都点赞

DeepSeek以极强的推理能力,支持生成各种代码,比如Python、SQL、Matlab、JS、HTML等,你可以拿这些代码放到编译器里,就能直接跑出结果,比如机器学习算法、exe应用、可视化图表、...

什么是Tailwind CSS

什么是TailwindCSSTailwindCSS是一个实用优先(Utility-First)的CSS框架,其核心思想是通过直接在HTML中组合预定义的类名来快速构建界面样式,无需编写传...