一、背景
作者:詹姆斯·高斯林(James Gosling)。
时间:1995年5月23日。
归属:Oracle公司(最初由Sun公司推出,2009年4月20日Oracle收购了Sun公司)。
概述:Java语言在设计之初参考了C++,是一门在C++基础之上发展而来的语言。提倡“一次编写,处处运行(Write Once, Run Anywhere)”。具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
二、应用领域
Java SE:Java Standard Edition,是Java技术的核心和基础,是Java ME和EE是基础。单独使用Java SE可以用来开发桌面软件。
Java ME:又称为J2ME(Java Platform,Micro Edition),是为机顶盒、移动电话(诺基亚)和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。
Java EE:Java Platform,Enterprise Edition,是sun公司推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。Java EE 是在 Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 3.0应用程序。奠定了Java的地位,大部分人学Java的目的都是为了开发服务端程序。
此外,Android系统的APP也可以由Java开发,大数据也首选Java语言开发。
三、运行机制
相关名词解释如下:
- 字节码:源代码与机器码(二进制)之间过渡的中间状态(中间码),是一种与特定平台无关的低级代码,可以在不同的虚拟机上运行。
- 源代码:由人按照Java语言开发规范编写的Java文件,后缀为.java。
- 机器码:个数在计算机中的二进制表示形式被称为这个数的机器数。在计算机内部,所有信息都是以二进制的形式存储和处理的,这种二进制形式的数据就是机器码。
编程语言共有两种运行机制
- 编译:在程序运行前,由编译器将源代码直接编译成机器码,计算机可以直接运行
优点:运行快。
缺点:开发者麻烦,不同架构的计算机的机器码是不同的,可能针对不同计算机修改代码。
- 解释:在程序运行时,由解释器将源代码逐行翻译成机器码,并运行
优点:开发者方便
缺点:运行慢
Java采用的方式:
- 先编译,在程序运行前将源代码编译成字节码;
- 再解释,再程序运行时逐行将字节码解释为机器码并运行。
Java融合了编译、解释的优点,由于源代码编译后的字节码也是二进制,与机器码接近。程序运行时解释字节码要比直接解释源代码更快。当然,要比直接运行机器码慢些。
四、扩展和补充
机器码与字节码都是二进制的,它们的区别时什么呢?
机器码:机器码是特定计算机体系结构下的二进制指令,它与具体的计算机体系结构和CPU类型直接相关,不同的计算机体系结构需要不同的机器码。
字节码:也是一种二进制代码,字节码需要通过解释器或即时编译器转换为机器码后才能执行。它比机器码更抽象,使用类似于汇编语言的指令集,可以通过反编译工具将其转换为可读的形式。
总的来说,机器码和字节码都是二进制代码,但它们在设计目的、抽象级别、可移植性以及执行方式上有所不同。机器码是为底层CPU执行而设计的,而字节码则是一种为了实现跨平台性而设计的中间表示形式