认识 Java 语言
认识 Ja va 语言
说到计算机,其实可以拆解成两个核心部分:硬件和软件。硬件嘛,就是那些看得见摸得着的物理装置,比如主板、CPU、内存条,由电子、机械和光电元件组成。而软件呢,则是为了管理和维护计算机,或者完成用户特定任务而编写的各种程序的总和。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
编程语言的发展历程,其实是一部不断追求“说人话”的历史。最早是机器语言,全是0和1的代码,对程序员来说简直是天书。后来进步到汇编语言,用一些助记符代替了二进制指令,但依然不够直观。直到高级语言的出现,比如C、C++、PHP、.NET,当然还有我们今天的主角——Ja va,才真正让编程变得贴近人类的思维。
Ja va语言诞生于1995年,由Sun公司推出。这里有个有趣的小插曲:后来IBM公司推出的著名开发工具Eclipse,名字意为“日食”,而Sun公司的名字正是“太阳”,这其中的隐喻颇值得玩味。到了2010年,Ja va随着Sun公司一起被Oracle(甲骨文)收购。而这一切的起点,都要归功于“Ja va之父”——James Gosling。
Ja va 版本
Ja va家族主要分为三个版本,各有侧重:
Ja va ME(微型版):主要用于嵌入式系统开发,比如早期的塞班手机(诺基亚的辉煌时代还记得吗?)就大量应用了它。
Ja va SE(标准版):这是Ja va技术最核心、最基础的部分,主要用于桌面应用程序的开发。可以说,它是整个Ja va体系的基石。
Ja va EE(企业版):顾名思义,它主要面向企业级应用,用于开发大规模、分布式的网络程序,构建复杂的服务器端系统。
Ja va 语言的特点
Ja va之所以能风靡多年,离不开它几个鲜明的特点:
首先,它是面向对象的,这符合我们对现实世界的认知方式。不过,它采用的是单继承机制,这与C++的多继承有所不同,目的是让类之间的关系更清晰,避免复杂性。
最广为人知的特点恐怕是跨平台了。“一次编写,到处运行”的口号正是源于此。这个魔法的关键,就在于JVM(Ja va虚拟机)。Ja va程序编译后生成的是字节码(.class文件),而不是直接针对特定操作系统的机器码。不同平台(Windows、Linux、macOS)只需要安装对应的JVM,就能解释执行相同的字节码文件,从而实现跨平台。
这里需要理清几个关键概念:
JDK (Ja va Development Kit):这是Ja va开发工具包,是开发者的必备。它包含了JRE (Ja va Runtime Environment) 以及编译器(ja vac)、调试器等开发工具。
JRE (Ja va Runtime Environment):这是Ja va运行环境。如果只想运行Ja va程序而不开发,安装JRE就够了。它由JVM 和 Ja va系统类库(API) 组成。
配置环境变量
要让Ja va在命令行中顺畅运行,配置环境变量是新手必经的一步。这个过程可以分解为几个清晰的步骤:
Step1: 安装JDK。这没什么好说的,从官网下载并运行安装程序即可。
Step2: 配置PATH变量。它的作用是告诉操作系统,当你在任意目录下输入“ja va”或“ja vac”等命令时,应该去哪个路径下寻找这些可执行文件。通常的做法是,将JDK安装目录下的“bin”文件夹的路径(例如`C:\Program Files\Ja va\jdk1.8.0_171\bin`)添加到系统的PATH变量中。
Step3: 配置CLASSPATH变量(在较新版本中,这一步有时不是必须的)。它的作用是告诉Ja va编译器(ja vac)和虚拟机(ja va),应该去哪些目录下寻找用户自定义的类文件(.class)和系统类库。一个常见的设置是包含当前目录(用一个点“.”表示)和JDK类库的路径。
为了管理方便,我们通常会先创建一个名为JA VA_HOME的系统变量,其值设为JDK的安装根目录(如`C:\Program Files\Ja va\jdk1.8.0_171`)。然后,在配置PATH时,就可以使用`%JA VA_HOME%\bin`这样的引用方式,这样即使以后JDK路径变了,也只需修改JA VA_HOME一处。
配置完成后,如何验证成功呢?很简单,打开命令行窗口,依次输入`ja va -version`、`ja va`、`ja vac`这三个命令。如果都能正常显示信息而非“找不到命令”的错误,那就大功告成了。
简单总结一下PATH和CLASSPATH的区别:PATH是给操作系统用的,用于查找可执行文件(如ja va.exe);而CLASSPATH是给JVM用的,用于查找运行程序时需要的类文件。
Ja va语言的执行过程
一个Ja va程序从代码到运行,背后经历了一场精密的“旅程”:
首先,编译器(ja vac)将我们编写的源代码(.ja va文件)编译成一种中间格式——字节码文件(.class文件)。这个文件不是任何特定CPU的机器指令。
当我们在命令行输入`ja va ClassName`启动程序时,JVM就开始工作了。它会将对应的.class文件加载到内存中,并为这个类创建一个`ja va.lang.Class`类型的对象。
接着进行连接,这个阶段包括验证字节码、为静态变量分配内存等准备工作。
然后是初始化。这是关键一步,JVM会执行类中的静态变量赋值操作和静态代码块。
最后,找到并执行我们定义的入口方法——main方法,程序便正式跑起来了。
所以,完整的链条可以概括为:源文件(.ja va) -> 编译器(ja vac) -> 字节码文件(.class) -> 解释器(JVM) -> 机器语言。对应的命令行操作就是:用`ja vac A.ja va`来编译,用`ja va A`来运行。
编写Ja va程序时需要注意
在动手编写第一个Ja va程序前,有两个细节必须牢记,它们常常是新手踩坑的地方:
第一,.ja va源文件的名称,必须与该文件中被public修饰的类名完全一致(包括大小写)。如果文件里有一个`public class HelloWorld`,那么保存的文件名就必须是`HelloWorld.ja va`。
第二,一个源文件里可以定义多个类。但是,至多只能有一个类被声明为public,并且这个public类的名字必须和文件名相同。其他非public类则没有这个限制,编译后它们会各自生成独立的.class文件。
相关攻略
如何执行编译过的 Ja va 文件 今天,我们来实际操作一下,看看如何运行一个已经编译好的 Ja va 程序。整个过程其实非常清晰,我们用一个经典的“Hello World”示例来走一遍。 首先,这是我们的源代码文件 HelloWorld ja va,内容如下: HelloWorld ja va 文
如何在 Ja va 中通过 Class getResource() 读取 Classpath 下的资源文件并获取其绝对路径 开门见山地说,Class getResource() 这个方法,它本身并不返回你想象中的那个文件系统绝对路径。它返回的是一个 URL 对象,这个对象指向的是 classpath
如何在 Ja va 中利用 Condition awaitNanos() 实现带高精度超时控制的线程等待 先明确一个核心事实:Condition awaitNanos() 确实提供了纳秒级的超时参数,但这并不意味着它能实现纳秒级的等待精度。其实际响应能力,严重受制于 JVM 和操作系统的调度粒度,通
如何在 Ja va 中利用 Scanner next() charAt(0) 仅获取控制台输入的第一个有效字符 使用 scanner next() charat(0) 获取第一个有效字符时,一个常见的“坑”是:如果输入为空、仅含空格或者用户直接回车,程序很容易抛出异常,比如 nosuchelemen
VSCode怎么使用Debugger for Ja va插件 先说一个核心前提:Debugger for Ja va 插件不能单打独斗。它必须和 Extension Pack for Ja va 这个扩展包配套安装。否则,你会遇到一系列麻烦:断点形同虚设、调试按钮是灰色的,甚至在 launch js
热门专题
热门推荐
红米Note 11 Pro系统升级,为何坚持要求连接Wi-Fi? 当红米Note 11 Pro收到MIUI或澎湃OS的系统更新推送时,官方总会明确提示:整个过程请在Wi-Fi网络环境下完成。这项要求并非随意设定,而是基于清晰的技术与体验考量。一次完整的系统升级包,其大小通常在2GB至4GB之间。如果
小米13 Ultra的NFC功能深度解析:它如何重新定义“全场景智能交互”? 在旗舰手机领域,NFC功能看似已成为标配,但体验却千差万别。小米13 Ultra所搭载的全功能NFC方案,在“全能”与“好用”两个维度上树立了新的标杆。它不仅无缝集成了公交卡模拟、门禁卡复制、数字车钥匙等核心生活服务,更全
嵌入式消毒柜电源插座安装指南:隐蔽式布局提升安全与美观 在规划嵌入式消毒柜的安装方案时,电源插座的布局方式直接影响到最终的整体效果与安全性。正确的做法是避免插座外露,采用隐蔽式安装。根据国家《住宅厨房设计规范》及主流厨电品牌的安装标准,推荐将插座预留在消毒柜后方或侧方的墙体内部,安装高度宜控制在距地
是的,魔音(Beats)耳机充电状态一目了然,指示灯明确显示 当你为Beats头戴式耳机充电时,如何判断它是否已经充满?答案就藏在机身自带的五段式LED电量指示灯里。在充电过程中,这排指示灯会持续闪烁,实时反馈充电进度。一旦所有五个指示灯全部转为稳定常亮、不再闪烁,即代表电池已完全充满。整个充电周期
博朗剃须刀型号全解析:从编码规则到选购技巧的终极指南 面对博朗剃须刀复杂的字母数字组合感到困惑?实际上,其型号命名体系逻辑严谨,是用户选购的核心依据。简单来说,型号首位的数字(1、3、5、7、9)直接代表产品系列,数字越大,通常意味着技术越先进、功能越全面、定位越高端。例如,顶级的9系旗舰机型普遍搭





