通过Hello World来探讨Java技术

简介: 如今讨论Java技术似乎无处不在,但它究竟是什么呢?它既是一种编程语言,也是一个平台

Java 编程语言


首先,它作为编程语言,有什么特点呢?正如James Gosling和Henry McGilton曾在白皮书里提到的:


简单  架构中立

面向对象 可移植性

分布式  高性能

多线程  健壮

多态 安全


在Java编程语言中,所有源代码首先以纯文本文件写成,以.java扩展名结尾。这些源文件然后由javac编译器编译到.class文件中。.class文件不包含处理器的机器代码;而是包含字节码Java虚拟机(Java VM)的机器语言。 Java启动程序工具然后用Java虚拟机的一个实例运行你的应用程序。


image.png

正由于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提供了大量现成的软件组件(即现成的功能),它被分成相关的类和接口的库,这些库被称为包。


image.png


作为一个独立于平台的环境,Java平台可能比本地代码慢一点。但是编译器和虚拟机技术的进步正在使性能接近本地代码的性能,而不会威胁到可移植性。


Hello World 编译流程


接着,咱们通过一个例子来理解一下Java语言本身与JVM及操作系统的关系。


image.png

通过javap工具来查看字节码。


image.png


最后我们通过JIT编译器生成的汇编指令。

image.png

到这里,一个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软件将自动更新其安装。
相关文章
|
3天前
|
存储 安全 Java
Java中的线程安全与同步技术
Java中的线程安全与同步技术
|
3天前
|
Java 机器人 程序员
解决Java中的NoSuchObjectException异常的技术指南
解决Java中的NoSuchObjectException异常的技术指南
|
1天前
|
存储 安全 Java
必知的技术知识:java8之stream
必知的技术知识:java8之stream
|
1天前
|
存储 Java 编译器
技术经验解读:一文带你搞懂java中的变量的定义是什么意思
技术经验解读:一文带你搞懂java中的变量的定义是什么意思
|
1天前
|
SQL 网络协议 Java
技术经验分享:Java不会或做错的面试题总结
技术经验分享:Java不会或做错的面试题总结
11 0
|
1天前
|
Java BI C#
技术笔记:SM4加密算法实现Java和C#相互加密解密
技术笔记:SM4加密算法实现Java和C#相互加密解密
|
1天前
|
Java Maven Python
技术笔记:Lombok介绍、使用方法和总结
技术笔记:Lombok介绍、使用方法和总结
|
1天前
|
机器学习/深度学习 并行计算 搜索推荐
程序技术好文:桶排序算法及其Java实现
程序技术好文:桶排序算法及其Java实现
|
1天前
|
XML 安全 Java
必知的技术知识:Java日志框架:logback详解
必知的技术知识:Java日志框架:logback详解
|
1天前
|
Java 编译器 API
技术经验分享:JAVA8十大新特性详解
技术经验分享:JAVA8十大新特性详解