Java基础001 Java平台概述

Java概念澄清


刚接触Java的同学,好多会对Java的各种术语绕昏头,我们先对一下术语进行解释。

语言和平台

Java是语言和平台的双重角色,这是现代Java的核心。在使用Java之前,我们要先弄清楚Java语言和Java平台之间的区别与联系

  • Java语言 Java语言是静态类型、面向对象的语言是人类可读的。
  • Java平台 平台提供运行时1的软件。Java虚拟机(JVM)负责把类文件形式(人类不可读)的代码链接起来并执行。JVM不能解释Java语言的源文件,你要先把源文件转换成类文件

他们之间的联系可以用一张图表示:
659782-20180116232141381-2141150244.jpg
上图Java源码被转换成 .class 文件,在JIT编译前被加载处理

图中文字 Class loader:类加载器;Transformed .class:转换后的.class;Executing code:可执行代码;Interpreter:解释器;JIT compiler:JIT编译器;Machine code:机器码

连接Java语言和平台的纽带是统一的类文件(.class)格式文件。

如图所示,这是Java代码的演进过程。从我们可以看懂的Java源码开始,然后由javac编译成.class文件,变成可以加载到JVM中的形式。值得注意的是,类文件在加载过程中通常都会被处理和修改。大多数流行框架(特别是打着“企业级”旗号的)都会在类加载过程中对类进行改造。


Java是编译型语言还是解释型语言?

大多数开发人员都知道,Java源文件需要编译成.class文件才能在JVM中运行。如果继续追问,许多开发人员还会告诉你说.class中的字节码首先会被JVM解释,但在稍后即时(JIT)编译。然而很多人将字节码含糊地理解为“在某种虚构的或简化的CPU上运行的机器码”。

实际上,JVM字节码更像是中途的驿站,是一种从人类可读的源码向机器码过渡的中间状态。用编译原理术语讲,字节码实际上是一种中间语言(IL)形态,不是真正的机器码。也就是说,将Java源码变成字节码的过程不是C或C++程序员所理解的那种编译。Java所谓的编译器javac也不同于gcc,实际上它只是一个针对java源码生成类文件的工具。Java体系中真正的编译器是JIT,如图1-1所示。

有人说Java是“动态编译”的,他们所说的编译是指JIT的运行时编译,不是指构建时创建类文件的过程。

所以如果被问及“Java是编译型语言还是解释型语言”,你可以回答“都是”


Java版本

Java现在已不仅仅是一种语言,从广义上说,它代表了语言和平台的总称。并根据应用方向的不同主要分为Java SE、Java EE和Java ME的3个部分。

Java是Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。由当时任职太阳微系统的詹姆斯·高斯林(James Gosling)等人于1990年代初开发,它最初被命名为Oak。于1995年5月以Java的名称正式发布。

特别的、在1998年12月份Sun公司公布的Java 1.2版本,以为这个版本改动较大,所以同时将它的名字改称为Java 2
Java发布的版本顺序是1.0、1.1、22、53、6、7、8、9

Release更新年份
JDK Beta1995
JDK 1.01996
JDK 1.11997
J2SE 1.21998
J2SE 1.32000
J2SE 1.42002
J2SE 5.02004
Java SE 62006
Java SE 72011
Java SE 82014
Java SE 92017
Java SE 10 (18.3)2018

什么是Java SE、JavaEE、Java ME

JavaN可以和和Java SE N看作是一回事。(如Java8 == Java SE 8)
以Java应用层面区分:
在Java 5.0(或者称为1.5)版本推出后,为了避免版本混淆,便将J2SE、J2EE和J2ME改称为Java SE 5、Java EE 5和Java ME 5,后续版本只变更相应版本号,例如Java EE 6。

  • J2SE为创建和运行Java程序提供最基本环境,是Java技术的核心和基础。
  • J2EE为基于服务器的分布式企业应用提供开发和运行环境,是目前Java技术应用最广泛的部分。J2EE不仅继承了J2SE中的许多优点,同时还提供了对EJB、JSP、Servlet以及XML技术的全面支持,降低了企业级开发的复杂度。
  • J2ME为嵌入式应用提供开发和运行环境,例如手机程序和PDA程序等。

什么是JRE、JDK

JDK包含JRE。Java JDK(Java Development Toolkit/Java开发工具箱),如果只是运行Java程序,我们只需要安装Java JRE软件就可以了,如果你是程序员要开发Java程序,你就需要JDK了。他包含了你开发时需要的工具,如编译器。


参考资料

《Java程序员修炼之道》

外部链接

Java 编程入门
Java SE Naming and Versions
java-jdk-sdk-se
java版本历史


  1. Java 运行时环境(JRE;也称为 Java 运行时)包含 JVM、代码库和运行以 Java 语言编写的程序所必要的组件。JRE 可用于多种平台。您可依据 JRE 许可条款,在您的应用程序中自由地重新分发 JRE,为应用程序的用户提供一个运行您的软件的平台。JRE 包含在 JDK 中。

  2. 从1.2到1.4的Java版本都被称作Java2。全称叫做Java 2 Software Development Kit, 或者Java 2 SDK 又或 J2SDK。它的后续,版本也通常被称为“Java 2标准版”(J2SE)。在J2SE的推出的同时还推出了“Java 2微缩版”(J2ME)和“Java 2企业版”(J2EE)。

  3. Java5、Java6、Java7、Java8、Java9也可以叫做Java1.5、Java1.6、Java1.7、Java1.8、Java1.9

转载于:https://www.cnblogs.com/biadq/p/8290483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值