通过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软件将自动更新其安装。
相关文章
|
2月前
|
监控 Cloud Native Java
Quarkus 云原生Java框架技术详解与实践指南
本文档全面介绍 Quarkus 框架的核心概念、架构特性和实践应用。作为新一代的云原生 Java 框架,Quarkus 旨在为 OpenJDK HotSpot 和 GraalVM 量身定制,显著提升 Java 在容器化环境中的运行效率。本文将深入探讨其响应式编程模型、原生编译能力、扩展机制以及与微服务架构的深度集成,帮助开发者构建高效、轻量的云原生应用。
357 44
|
2月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
370 1
|
3月前
|
安全 Java 编译器
new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析
逃逸分析是一种静态程序分析技术,用于判断对象的可见性与生命周期。它帮助即时编译器优化内存使用、降低同步开销。根据对象是否逃逸出方法或线程,分析结果分为未逃逸、方法逃逸和线程逃逸三种。基于分析结果,编译器可进行同步锁消除、标量替换和栈上分配等优化,从而提升程序性能。尽管逃逸分析计算复杂度较高,但其在热点代码中的应用为Java虚拟机带来了显著的优化效果。
134 4
|
3月前
|
Java API Maven
2025 Java 零基础到实战最新技术实操全攻略与学习指南
本教程涵盖Java从零基础到实战的全流程,基于2025年最新技术栈,包括JDK 21、IntelliJ IDEA 2025.1、Spring Boot 3.x、Maven 4及Docker容器化部署,帮助开发者快速掌握现代Java开发技能。
810 1
|
4月前
|
人工智能 Java
Java多任务编排技术
JDK 5引入Future接口实现异步任务处理,但获取结果不够灵活。Java 8新增CompletableFuture,实现异步任务编排,支持流式处理、多任务组合及异常处理,提升执行效率与代码可读性,简化并发编程复杂度。
114 0
|
3月前
|
Java 测试技术 API
2025 年 Java 开发者必知的最新技术实操指南全览
本指南涵盖Java 21+核心实操,详解虚拟线程、Spring Boot 3.3+GraalVM、Jakarta EE 10+MicroProfile 6微服务开发,并提供现代Java开发最佳实践,助力开发者高效构建高性能应用。
650 4
|
2月前
|
安全 Cloud Native Java
Java 模块化系统(JPMS)技术详解与实践指南
本文档全面介绍 Java 平台模块系统(JPMS)的核心概念、架构设计和实践应用。作为 Java 9 引入的最重要特性之一,JPMS 为 Java 应用程序提供了强大的模块化支持,解决了长期存在的 JAR 地狱问题,并改善了应用的安全性和可维护性。本文将深入探讨模块声明、模块路径、访问控制、服务绑定等核心机制,帮助开发者构建更加健壮和可维护的 Java 应用。
255 0
|
3月前
|
JavaScript 安全 前端开发
Java开发:最新技术驱动的病人挂号系统实操指南与全流程操作技巧汇总
本文介绍基于Spring Boot 3.x、Vue 3等最新技术构建现代化病人挂号系统,涵盖技术选型、核心功能实现与部署方案,助力开发者快速搭建高效、安全的医疗挂号平台。
231 3
|
4月前
|
存储 Java Linux
操作系统层面视角下 Java IO 的演进路径及核心技术变革解析
本文从操作系统层面深入解析Java IO的演进历程,涵盖BIO、NIO、多路复用器及Netty等核心技术。分析各阶段IO模型的原理、优缺点及系统调用机制,探讨Java如何通过底层优化提升并发性能与数据处理效率,全面呈现IO技术的变革路径与发展趋势。
112 2
|
4月前
|
安全 Java 微服务
Java 最新技术和框架实操:涵盖 JDK 21 新特性与 Spring Security 6.x 安全框架搭建
本文系统整理了Java最新技术与主流框架实操内容,涵盖Java 17+新特性(如模式匹配、文本块、记录类)、Spring Boot 3微服务开发、响应式编程(WebFlux)、容器化部署(Docker+K8s)、测试与CI/CD实践,附完整代码示例和学习资源推荐,助你构建现代Java全栈开发能力。
548 1