Java 编程语言
首先,它作为编程语言,有什么特点呢?正如James Gosling和Henry McGilton曾在白皮书里提到的:
简单 架构中立
面向对象 可移植性
分布式 高性能
多线程 健壮
多态 安全
在Java编程语言中,所有源代码首先以纯文本文件写成,以.java扩展名结尾。这些源文件然后由javac编译器编译到.class文件中。.class文件不包含处理器的机器代码;而是包含字节码Java虚拟机(Java VM)的机器语言。 Java启动程序工具然后用Java虚拟机的一个实例运行你的应用程序。
正由于Java VM可运行在多个不同的操作系统上,所以相同的.class文件能够在Microsoft Windows,Solaris™操作系统(Solaris OS),Linux或Mac OS上运行,以体现出它的跨平台性。一些虚拟机(如Java SE HotSpot)在运行时执行一些其它的任务(如查找性能瓶颈和重新编译经常使用的代码部分),来提高应用程序的性能。
Java 平台
平台是运行程序的硬件或软件环境,如Microsoft Windows,Linux,Solaris OS和Mac OS。大多数平台可以被描述为操作系统和底层硬件的组合。 Java平台不同于大多数其他平台,因为它是一个运行在其他基于硬件的平台之上的纯软件平台。
Java平台有两个组件:
Java虚拟机
Java应用程序编程接口(API)
虚拟机是Java平台的基础,可被移植到各种基于硬件的平台上。
API提供了大量现成的软件组件(即现成的功能),它被分成相关的类和接口的库,这些库被称为包。
作为一个独立于平台的环境,Java平台可能比本地代码慢一点。但是编译器和虚拟机技术的进步正在使性能接近本地代码的性能,而不会威胁到可移植性。
Hello World 编译流程
接着,咱们通过一个例子来理解一下Java语言本身与JVM及操作系统的关系。
通过javap工具来查看字节码。
最后我们通过JIT编译器生成的汇编指令。
到这里,一个Java程序的整个编译流程就呈现完了,限于篇幅此处没有涉及更多关于Java类加载的细节。
Java 技术提供了什么?
- 开发工具:开发工具提供编译,运行,监视,调试和记录应用程序所需的一切。作为一名新开发人员,您将使用的主要工具是javac编译器,java启动程序和javadoc文档工具。
- 应用程序编程接口(API):API提供了Java编程语言的核心功能。它提供了大量有用的类,可以在您自己的应用程序中使用。它涵盖了从基本对象到网络和安全,到XML生成和数据库访问等等的一切。核心API非常大,了解其内容,请参阅Java平台标准版文档。
- 部署技术:JDK软件提供标准机制,例如Java Web Start软件和Java Plug-In软件,用于将应用程序部署到最终用户。
- 用户界面工具包:JavaFX,Swing和Java 2D工具包使创建复杂的图形用户界面(GUI)成为可能。
- 集成库:诸如Java IDL API,JDBC API,Java命名和目录接口(JNDI)API,Java RMI和互联网间ORB协议技术(Java RMI-IIOP技术)的Java远程方法调用之类的集成库允许数据库访问和操作远程对象。
Java 技术将如何改变我的生活?
如果你学习Java编程语言,虽然不能保证你的名声,财富,甚至是工作。 尽管如此,它很可能使您的程序更好,并且比其他语言更省力。 我们相信Java技术将帮助您做到以下几点:
- 快速入门:虽然Java编程语言是一个功能强大的面向对象语言,但是很容易学习,特别是对于已经熟悉C或C ++的程序员。
- 编写较少的代码:比较程序指标(类别计数,方法计数等)表明用Java编程语言编写的程序可能比用C ++编写的相同程序小四倍。
- 编写更好的代码:Java编程语言鼓励良好的编码实践,自动垃圾收集可以帮助您避免内存泄漏。 它的面向对象,JavaBeans™组件体系结构以及范围广泛且易于扩展的API使您可以重用现有的经过测试的代码,并引入更少的错误。
- 更快速地开发程序:Java编程语言比C++更简单,因此在写入时,开发时间可能会快两倍。你的程序也需要更少的代码。
- 避免平台依赖性:通过避免使用其他语言编写的库,可以保持程序的可移植性。
- 编写一次,随时随地运行:由于使用Java编程语言编写的应用程序被编译为与机器无关的字节码,因此它们可以在任何Java平台上一致地运行。
- 更轻松地分发软件:使用Java Web Start软件,用户只需单击一下鼠标即可启动应用程序。 启动时的自动版本检查可确保用户随时了解最新版本的软件。 如果有更新可用,Java Web Start软件将自动更新其安装。