通过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软件将自动更新其安装。
相关文章
|
14天前
|
JSON 前端开发 JavaScript
java-ajax技术详解!!!
本文介绍了Ajax技术及其工作原理,包括其核心XMLHttpRequest对象的属性和方法。Ajax通过异步通信技术,实现在不重新加载整个页面的情况下更新部分网页内容。文章还详细描述了使用原生JavaScript实现Ajax的基本步骤,以及利用jQuery简化Ajax操作的方法。最后,介绍了JSON作为轻量级数据交换格式在Ajax应用中的使用,包括Java中JSON与对象的相互转换。
29 1
|
21天前
|
SQL 监控 Java
技术前沿:Java连接池技术的最新发展与应用
本文探讨了Java连接池技术的最新发展与应用,包括高性能与低延迟、智能化管理和监控、扩展性与兼容性等方面。同时,结合最佳实践,介绍了如何选择合适的连接池库、合理配置参数、使用监控工具及优化数据库操作,为开发者提供了一份详尽的技术指南。
29 7
|
23天前
|
移动开发 前端开发 Java
过时的Java技术盘点:避免在这些领域浪费时间
【10月更文挑战第14天】 在快速发展的Java生态系统中,新技术层出不穷,而一些旧技术则逐渐被淘汰。对于Java开发者来说,了解哪些技术已经过时是至关重要的,这可以帮助他们避免在这些领域浪费时间,并将精力集中在更有前景的技术上。本文将盘点一些已经或即将被淘汰的Java技术,为开发者提供指导。
50 7
|
19天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
32 3
|
19天前
|
SQL 监控 Java
Java连接池技术的最新发展,包括高性能与低延迟、智能化管理与监控、扩展性与兼容性等方面
本文探讨了Java连接池技术的最新发展,包括高性能与低延迟、智能化管理与监控、扩展性与兼容性等方面。同时,结合最佳实践,介绍了如何选择合适的连接池库、合理配置参数、使用监控工具及优化数据库操作,以实现高效稳定的数据库访问。示例代码展示了如何使用HikariCP连接池。
12 2
|
21天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
26 4
|
19天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
18 1
|
19天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
32 1
|
21天前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
40 2
|
23天前
|
前端开发 Java API
过时Java技术的退役:这些技能你不再需要掌握!
【10月更文挑战第22天】 在快速变化的技术领域,一些曾经流行的Java技术已经逐渐被淘汰,不再适用于现代软件开发。了解这些过时的技术对于新手开发者来说尤为重要,以避免浪费时间和精力学习不再被行业所需的技能。本文将探讨一些已经或即将被淘汰的Java技术,帮助你调整学习路径,专注于那些更有价值的技术。
31 1