Java语言是一门面向对象的编程语言,它吸收了C++语言的各种优点,又摈弃了C++里面难以理解的多继承、指针等概念,因此Java语言具有功能强大和易用的特点。
起源
Java最初来源于Sun公司由James Gosling领导的“Green”计划:为下一代智能家电编写一个通用控制系统。但是包括Sun首席科学家Bill Joy在内的工作小组发现,C++在嵌入式平台的使用上有很多问题(垃圾回收、可移植性、分布式和多线程等),于是决定开发一门新的语言:Oak。
Oak起初在硬件方面并没有预想的那么成功,但是在1994年,互联网的发展给这个语言带来了一个新的机会:业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行,而Oak也是一种精简的语言,程序非常小,适合在网络上传输。由于Oak商标已经被注册,所以改名为Java。
简介
Java的三个体系
- J2SE (Java2 Platform Standard Edition,java平台标准版
- J2EE (Java 2 Platform,Enterprise Edition,java平台企业版
- J2ME (Java 2 Platform Micro Edition,java平台微型版
Java竞争对手和各自的优势
语言 | 简介 | 对比 |
---|---|---|
C# | 与Java同样,两者都摈弃了C++中函数及其参数的Const修饰、宏代换、全局变量、全局函数等;都采用了更加易于理解的单继承和多接口的实现方案。 | C#提供更多的window特性,而Java具有更好的跨平台支持 |
Ruby | 简洁的解释性语言,纯粹的面向对象语言(甚至比Java更纯粹),弱类型的语言,变量没有类型,提供强大的正则表达式支持,支持运算符重载。 | Rails平台的简洁性和易用性会在中小型应用上发挥更大的吸引力,而Java EE平台则适合对技术有精准把握,解决更复杂需求的大型企业级应用 |
python | 面向对象的解释型脚本语言,具有丰富的类库,具有很好的可扩展性和清晰的语法 | 脚本语言的优势:快速开发、易于部署、易学易用 |
Java程序的运行机制
关于编译型语言和解释型语言:
- 编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。
- 解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。C/C++ 等都是编译型语言,而Ruby,Python,C#等都是解释型语言。
虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。在运行的时候,由JVM将字节码再翻译成机器语言。
JVM(Java Virtual Machine)是可运行Java字节码文件的虚拟机。JVM是Java程序跨平台的关键部分。