目录
前言
Java作为一种广泛使用的编程语言,具有着众多的优点和特性,这使得它在软件开发领域得到了广泛的应用。本文将介绍Java语言的由来、特性以及开发环境,还将详细说明Java程序的运行过程,包括源代码的编写、编译、加载字节码以及解释执行或即时编译等步骤,以及标识符的概念。
一、Java的由来
Java其前身为詹姆斯·高斯林(James Gosling)博士主导的Oak项目(得名于橡树,后因商标已经被抢注而更名),起初Oak致力于家电控制,但在当时这个项目并没有达到市场预期而被搁置,随后互联网时代到来,它又找到自己的用武之地,因为Oak的商标已经被其他公司注册所以更名为java。
Java的名字来源于盛产咖啡的爪哇岛,其标志也是一杯热气腾腾的咖啡,而Java中许多与咖啡相关的库名,例如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。
(ps:以前有些手机中会有叫做“爪哇”的设置,当时还很好奇这个以地名命名的奇怪设置是什么,或许正是那时的“邂逅”,以至在众多语言的中选择了Java成为我正式程序人生的开始。)
(左:Java标志,右:Java之父——詹姆斯·高斯林)
二、Java语言特性
三、Java开发环境
JDK(Java开发工具包)是用于开发Java应用程序和Applet的软件开发工具集合,它包含了JRE以及开发人员使用的工具和类库。JDK包含了用于编译、调试和运行Java程序的各种工具,如编译器(javac)、调试器(jdb)、性能分析工具等。
JRE(Java运行时环境)是JVM的具体实现,它包含了JVM以及Java核心类库和其他运行时所需的文件。JRE提供了Java应用程序运行所需的一切环境,包括Java标准类库、运行时系统、类加载器等。
JVM(Java虚拟机)是Java平台的核心组件,它是一个用于执行Java字节码的虚拟计算机。JVM负责将Java字节码解释成本地机器代码,并提供内存管理、垃圾回收等功能。它的主要目标是实现平台无关性,使得开发人员可以编写一次代码,在任何支持JVM的平台上运行。
简单来说:
JDK = JRE + 开发工具集;
JRE = JVM + JavaSE标准类库;
其中JVM是实现Java - "Write once, run anywhere",即"一次编写,到处运行"的主要依据。
四、Java运行过程
Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够 理解的形式来运行。Java程序的运行步骤如下:
1. 编写源代码:
- 源代码以.java文件的形式存在,其中包含了类、方法、变量以及其他程序逻辑。Java中一个项目下可以同时有多个 源文件(xxx.Java)文件,每个源文件下需定义类 (punlic xxx),且类名必须与源文件名相同,其内容必须包含在{ }里面;
- 类中带有方法,方法必须在类的内部声明;
- 方法的执行内容也需在其{ }内部编写,其中main()方法为程序运行的开始。
类存在于源文件里面;方法存在于类中;语句存在于方法中。
public class xxx {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
(ps:相对于许多其他编程语言,Java中定义main
方法的方式较长。)
2. 编译源代码:
使用Java开发工具包(JDK)中的编译器(javac),将源代码编译为平台无关的字节码文件。字节码文件以.class文件的形式存在,其中包含了被编译的类的二进制表示形式。
javac xxx.java
3. 加载字节码:
Java虚拟机(JVM)负责加载字节码文件。JVM通过类加载器(ClassLoader)将字节码文件转化为运行时的Java类对象,并将这些对象放置在JVM的方法区中。
4. 解释执行/即时编译:
JVM会对字节码进行解释执行或者使用即时编译器(Just-In-Time Compiler)将字节码转化为平台特定的机器码。解释执行是一种逐行解释执行字节码的方式,而即时编译器将整个方法或代码块编译为本地机器码后执行,以提高程序的运行效率。
5. 运行程序:
一旦字节码被解释执行或即时编译为机器码,程序开始运行。JVM会按照程序的逻辑执行指令,处理变量、调用方法等操作。程序的运行过程中,JVM会管理内存、执行垃圾回收以及提供异常处理机制等。
6. 程序结束:
当程序的所有指令都执行完毕或者遇到System.exit()等终止指令时,程序运行结束。JVM会释放占用的资源,包括内存、打开的文件等。
总的来说,Java程序的运行过程是将源代码编译为字节码,然后通过JVM加载并执行字节码,最终完成程序的运行。这种设计使得Java具有平台无关性和高度可移植性,使得同一份Java代码可以在不同的操作系统和设备上运行。
五、 标识符
标识符:即为在程序中由用户给类名、方法名或者变量所取的名字。
硬性要求:
标识符中可以包含: 字母、 数字 以及 下划线 和 $ 符号等等。但 不能 以 数字开头 ,也不能是 关键字 ,且严格区分 大小写 。
书写规范:
类名:每个单词的首字母大写(大驼峰) 如:Main
方法名与变量名:首字母小写,后面每个单词的首字母大写(小驼峰) 如: printSum
总结
深入了解Java的起源、特性以及开发环境,能够更好地理解和应用Java编程语言,从而提高自己在软件开发领域的能力和水平。
学习之途路漫漫,愿诸君初心亦坚。犹如江河源头远,行至山巅见真颜。