目录
1. 什么是程序
程序通俗来说就是一组按照特定顺序排列的指令,这些指令告诉计算机如何执行特定的任务或操作。就像是给计算机下达的一系列任务清单,让计算机按照这个清单上的步骤来完成任务。这些任务可以是从简单的加法运算到复杂的图形处理和数据分析等。编程语言就是用来编写这些指令的工具,而程序员就是编写这些指令的人。
2. Java 起源与发展史

Java是一种由Sun Microsystems(后被Oracle收购)开发的编程语言,最初被命名为Oak语言。它的发展可以追溯到20世纪90年代初,当时Sun Microsystems的工程师詹姆斯·高斯林(James Gosling)和他的团队开始着手开发这种新的语言。他们最初的目标是创建一种能够在各种不同的电子设备上运行的语言,但后来发现它更适合于互联网应用程序的开发。
1995年,Sun Microsystems正式发布了Java,并宣布它是一种“写一次,到处运行”的语言,意味着开发者可以编写一次代码,然后在各种不同的平台上运行,而不需要针对不同的操作系统进行修改。
随着互联网的迅速发展,Java迅速成为一种流行的编程语言,特别是在Web应用程序和企业级应用程序开发领域。2009年,Sun Microsystems被Oracle收购,Java也成为了Oracle的产品。
Java经历了多次版本更新和改进,如今已经成为一种广泛应用的编程语言,被用于开发各种类型的应用程序,从移动应用到大型企业级系统。同时,Java平台也发展出了丰富的生态系统,包括各种框架、开发工具和库。
3. Java 技术体系平台
Java技术体系平台是指由Sun Microsystems(现在是Oracle公司)开发的一套基于Java语言的技术和工具集合,用于开发、部署和运行Java应用程序。
Java技术体系平台的核心是Java编程语言,它具有面向对象、跨平台、安全性等特点。Java编程语言基于Java虚拟机(Java Virtual Machine,JVM)的原理,在编写的时候可以不用考虑底层操作系统的差异,只需要通过编译器将Java源代码编译成字节码,然后在不同平台上使用对应的JVM来运行。
Java技术体系平台的主要组成部分包括:
-
Java开发工具包(Java Development Kit,JDK): 提供了开发Java应用程序所需的编译器、调试器和其他开发工具。
-
Java虚拟机(Java Virtual Machine,JVM): 在不同的平台上解释和执行Java字节码,实现了跨平台的特性。
-
Java类库(Java Class Library): 一系列提供常用功能的类和API,开发人员可以直接使用这些类和API,提高开发效率。
-
Java应用程序接口(Java Application Programming Interface,API): 定义了类库中各个类和接口的使用方式和功能。
-
Java企业版(Java Enterprise Edition,Java EE): 为分布式应用程序开发提供了一套规范和API,支持事务管理、安全性、Web服务等功能。
-
Java标准版(Java Standard Edition,Java SE): 为桌面和嵌入式应用程序开发提供了一套规范和API。
-
Java微型版(Java Micro Edition,Java ME): 为嵌入式设备和移动设备开发提供了一套规范和API。
Java技术体系平台的优点包括广泛的应用领域、跨平台性、丰富的类库和API、良好的安全性等。它被广泛用于企业级应用、Web应用、移动应用、嵌入式设备等各个领域。
4. Java 重要特点
Java具有以下重要特点:
-
跨平台性:Java程序可以在不同的操作系统上运行,只需编译一次,就可以在任何支持Java虚拟机(JVM)的平台上运行。这种跨平台特性使得Java成为开发移动应用、嵌入式系统和云计算等领域的首选语言。
-
面向对象:Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性。这种面向对象的设计使得Java具有更好的模块化、可维护性和可扩展性,可以更方便地开发和维护复杂的应用程序。
-
安全性:Java具有内置的安全机制,包括字节码验证、安全沙箱和安全类加载器等。这些机制可以防止恶意代码对系统的破坏,使得Java成为开发安全性要求较高的应用程序的首选语言。
-
强大的类库:Java提供了丰富的类库,包括基本的数据结构和算法、图形用户界面(GUI)、网络、数据库等方面的类库。开发人员可以直接使用这些类库,提高开发效率和代码质量。
-
多线程支持:Java内置了对多线程编程的支持,可以方便地创建和管理多个线程。这使得开发人员可以更好地利用多核处理器和并发编程来提高程序的性能和响应能力。
-
高性能:Java具有高效的即时编译器和垃圾回收器,可以优化程序的执行效率和内存管理。同时,Java还提供了一系列的性能调优工具和技术,帮助开发人员优化程序的性能。
-
开放性:Java是一种开放标准,其规范和实现是公开的,任何人都可以参与和贡献。这种开放性使得Java具有广泛的社区和生态系统,有大量的第三方库和工具可供选择。
这些重要特点使得Java成为一种广泛应用于各种软件开发领域的编程语言,并且在企业级应用开发、移动应用开发、云计算和大数据处理等领域具有重要地位。
5. Java 运行机制及运行过程
Java的运行机制是基于Java虚拟机(Java Virtual Machine,JVM)的。Java程序在运行时,首先需要将源代码通过Java编译器编译为字节码文件(.class文件),然后由JVM解释执行或通过即时编译器(Just-In-Time Compiler,JIT)将字节码编译为本地机器代码执行。
Java的运行过程如下:
-
编写Java源代码:开发人员使用Java语言编写源代码,源代码文件以".java"为扩展名。
-
编译源代码:使用Java编译器(javac)将源代码编译为字节码文件(.class文件),字节码文件包含了Java虚拟机可执行的指令。
-
加载字节码文件:JVM加载编译后的字节码文件,并进行验证,确保字节码文件的安全性和正确性。
-
解释执行或即时编译:JVM可以选择将字节码解释执行,也可以将字节码编译为本地机器代码执行。解释执行是逐条解释执行字节码指令,即时编译是将字节码编译为与操作系统和硬件平台相关的本地机器代码,以提高执行效率。
-
运行程序:JVM按照字节码指令集执行程序,根据程序要求的功能进行相应的操作,包括对象的创建与销毁、方法的调用与返回、异常的处理等。
-
垃圾回收:JVM具有垃圾回收机制,可以自动管理内存,回收不再使用的对象,并释放相应的系统资源。
-
程序结束:程序执行完毕或遇到退出指令时,JVM停止运行,程序结束。
Java的运行机制使得Java程序具有跨平台能力,即可以在任何支持JVM的平台上运行,只需将字节码文件拷贝到目标平台上即可。这是因为JVM负责解释和执行字节码,屏蔽了底层操作系统和硬件的差异。同时,JVM的垃圾回收机制也减轻了开发人员对内存管理的负担,提高了程序的稳定性和安全性。
6. 什么是 JDK, JRE
JDK(Java Development Kit) 和 JRE(Java Runtime Environment) 是Java技术体系中的两个重要组成部分。
JDK是Java开发工具包,它包含了用于开发、编译和调试Java应用程序的各种工具和功能。JDK包括了Java编译器(javac)、Java虚拟机(JVM)、Java类库、调试工具、性能分析工具等。开发人员使用JDK可以编写和构建Java应用程序,并将其打包成可执行的应用程序或库。
JRE是Java运行时环境,它包含了运行Java应用程序所需的运行时库和Java虚拟机。JRE是在JDK的基础上发展而来的,它只包含Java应用程序运行所需的最小组件。如果要运行一个已经编译好的Java程序,只需要安装JRE即可,无需安装JDK。
简单来说,JDK适用于Java开发人员,用于开发和构建Java应用程序;而JRE适用于普通用户,只需要运行已经编译好的Java应用程序。在实际开发中,通常需要先安装JDK来进行开发,然后在目标机器上安装JRE来运行开发好的应用程序。
当理解JDK、JRE和JVM的关系时,可以将JDK看作是JRE加上一些额外的开发工具和库的组合,而JRE可以看作是JVM加上Java类库的组合。
即:
JDK = JRE + 开发工具和库
JRE = JVM + Java类库
7. Java 快速入门
Java是一种高级编程语言,被广泛用于开发各种类型的应用程序,包括企业级应用、Web应用、移动应用等。
下面是Java快速入门的步骤:
-
安装Java开发环境(JDK):访问Oracle官方网站Java Downloads | Oracle 中国
https://www.oracle.com/cn/java/technologies/downloads下载适合操作系统的 JDK 版本,并按照安装向导进行安装。
-
配置Java环境变量(可选):将JDK的安装路径配置到系统的环境变量中,这样可以在命令行或终端中直接运行Java和相关工具。
-
编写第一个Java程序:使用一个文本编辑器(如Notepad++、Sublime Text等)或Java集成开发环境(IDE,如Eclipse、IntelliJ IDEA等)创建一个新的Java源代码文件,扩展名为
.java
。例如,创建一个名为HelloWorld.java
的文件,并在其中编写以下代码:public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
public class HelloWorld
:这是一个类的定义,类名必须和文件名相同,并且以 .java
为后缀。在这个例子中,类名为HelloWorld。public static void main(String[] args)
:这是Java程序的入口点,程序将从这里开始执行。所有的Java程序都必须有一个main
方法。System.out.println("Hello, World!")
:这行代码使用System.out
对象的println
方法来打印"Hello, World!"到控制台。
- 编译Java程序:打开命令行或终端,使用
javac
命令来编译Java源代码文件,生成字节码文件。在命令行中导航到存储Java文件的目录,然后执行以下命令:
如果编译成功,不会有任何输出。如果有错误或警告,会在命令行中显示。javac HelloWorld.java
- 运行Java程序:使用
java
命令来运行编译生成的字节码文件。在命令行中执行以下命令:
如果一切正常,你应该会在命令行中看到输出:java HelloWorld
Hello, World!
。
8. Java 转义符
在Java中,转义符用于在字符串或字符常量中表示特殊字符。
转义符总是以反斜杠 (\) 开头,后面跟着一个特殊字符。
下面一些常用的 Java 转义符:
- \n:换行符,用于将光标移到下一行开头。
- \t:制表符,用于在字符串中插入一个水平制表符。
- \r:回车符,用于将光标移到当前行的开头。
- \":双引号,用于在字符串中插入一个双引号。
- \':单引号,用于在字符常量中插入一个单引号。
- \\:反斜杠,用于在字符串或字符常量中插入一个反斜杠。
以下是一些示例:
- 换行符示例:
输出:String str = "Hello\nworld!"; System.out.println(str);
Hello world!
- 制表符示例:
输出:String str = "Hello\tworld!"; System.out.println(str);
Hello world!
- 回车符示例:
输出:String str = "Hello\rworld!"; System.out.println(str);
world!
- 双引号示例:
输出:String str = "Hello said, \"Hello world!\""; System.out.println(str); char c = '"'; System.out.println(c);
Hello said, "Hello world!" "
- 单引号示例:
输出:String str = "I'm happy."; System.out.println(str); char c = '\''; System.out.println(c);
I'm happy. '
- 反斜杠示例:
输出:String str = "This is a \\ character."; System.out.println(str);
This is a \ character.
转义符通常用于表示特殊字符,但有时也可以用于表示Unicode字符。
例如,\u后面跟着四个十六进制数字表示的Unicode编码。
示例:
String str = "\u4F60\u597D";
System.out.println(str);
输出:
你好
在Java中,有一些情况下是不必要进行转义的,包括:
- 在双引号内使用单引号:在双引号内使用单引号时,不需要转义。例如,String str = "I'm happy."; 是合法的,不需要转义单引号。
- 在单引号内使用双引号:在单引号内使用双引号时,也不需要转义。例如,char c = '"'; 是合法的,不需要转义双引号。
- 在字符串中使用普通字符:如果字符串中不包含特殊字符或需要转义的字符,就不需要进行转义。例如,String text = "Hello, world!"; 中的逗号和感叹号不需要转义。
总的来说,只有当需要表示特殊字符或转义符本身时,才需要进行转义。在其他情况下,可以直接在字符串中使用普通字符,而无需进行转义。
9. Java 注释
在Java中,注释是用于在代码中添加解释性文本的特殊语法。注释通常用于提供有关代码目的、功能和实现的信息,以便使代码更易于理解和维护。
在Java中,有三种类型的注释:单行注释、多行注释和文档注释。
-
单行注释:以双斜杠(//)开头,并且只能在同一行使用。单行注释一般用于对代码的某个部分进行解释或者进行临时的注解。
示例:
int x = 5; // 定义一个整数变量x,并将其值设置为5
-
多行注释:以斜杠和星号(/*)开始,以星号斜杆(*/)结束。多行注释可用于对多行代码进行注释。
示例:
/* 这是一个多行注释的示例 可以跨越多行 */ int y = 10; // 定义一个整数变量y,并将其值设置为10
-
文档注释:以斜杠和两个星号(/**)开始,以星号和斜杠(*/)结束。文档注释是一种特殊类型的注释,它可以被提取并用于生成程序的文档。文档注释通常用于对类、方法、接口等进行注释,并提供有关它们的详细信息,如用法、参数、返回值等。
示例:
/** * 这是一个示例类 * 用于演示文档注释的使用方法 */ public class Example { /** * 这是一个示例方法 * 用于演示文档注释的使用方法 * @param x 整数参数 * @return 参数的平方 */ public int square(int x) { return x * x; } }
注释的作用包括:
- 提供代码的解释和说明,方便后续维护和理解代码逻辑。
- 提示其他开发者在进行修改或添加功能时的注意事项。
- 暂时禁用一部分代码,以便进行调试或测试。
- 生成API文档,方便其他开发者使用和理解代码。
在编写代码时,注释是一个很重要的部分,良好的注释可以提高代码的可读性和可维护性,并且有助于团队协作。在编写注释时,最好保持简洁明了、准确具体的原则,注释应该解答“为什么这么做”而不是“怎么做”。
10. Java 代码规范
Java代码规范是一套用于编写Java代码的规范和标准,旨在提高代码的可读性、可维护性和可重用性。
以下是一些常见的Java代码规范:
-
命名规范:
- 类名使用首字母大写的驼峰命名法,例如:MyClass。
- 方法名、变量名使用首字母小写的驼峰命名法,例如:myMethod。
- 常量名使用全大写字母,单词之间用下划线分隔,例如:MAX_COUNT。
-
缩进和空格:
- 使用4个空格进行缩进。
- 适当的使用空格使代码更加易读,例如在运算符两边和逗号后面添加空格。
-
大括号:
- 左大括号在同一行并且与前一个语句在同一行。
- 右大括号单独起一行,除非是在if语句或循环中。
-
注释:
- 使用注释来解释代码的意图、功能和设计决策。
- 对于公共类、方法和属性,使用文档注释(JavaDoc)来生成API文档。
-
异常处理:
- 使用try-catch块来捕获和处理异常。
- 避免在catch块中使用空的catch语句,至少打印异常信息或者进行适当的处理。
-
类和方法:
- 类和方法的长度应该适中,避免过长的代码块。
- 方法的功能应该尽量单一,不要做过多的事情。
-
其他:
- 使用常量代替硬编码的值,提高代码的可维护性。
- 避免使用魔法数字,使用常量或枚举来替代。
以上仅是一些常见的Java代码规范,实际项目中可能还会有其他规范要求。在编写代码时,建议遵循团队或项目的代码规范,以保持代码的一致性和可读性。