1什么是程序
程序:
在计算机科学中,程序通常指的是一系列指令的集合,这些指令告诉计算机如何执行特定的任务。
在Java语言中,程序是按照面向对象的编程范式编写的,这意味着程序由类(Class)和对象(Object)组成。
2java技术平台
Java技术平台的三个主要分支:
Java SE(标准版)、Java EE(企业版)、Java ME(微型版)。
特性 | Java SE | Java EE | Java ME |
---|---|---|---|
定义 | Java平台的核心部分,提供了Java语言的基础功能。 | 为企业级应用提供服务,包含Java SE的所有功能,并增加了企业级应用开发所需的API和运行时环境。 | 为移动设备和嵌入式设备提供轻量级解决方案,包含Java SE的一部分功能。 |
用途 | 桌面应用、移动应用、小型服务器应用等。 | 大型企业级应用、分布式应用、Web服务等。 | 移动电话、电视、家用电器等嵌入式系统。 |
主要组件 | Java虚拟机(JVM)、Java核心类库、Java编译器等。 | Servlet API、JSP API、EJB API、JMS API、JPA API等。 | CDC(Configuration-dependent Device Class)、CLDC(Connected Limited Device Configuration)。 |
开发重点 | 面向个人和小型应用的开发。 | 面向大型分布式系统的企业级开发。 | 面向资源受限设备的轻量级开发。 |
API丰富度 | 基础API,适合大多数应用。 | 丰富的API,支持复杂的企业级需求。 | 精简的API,适应资源受限的环境。 |
性能 | 适中。 | 高性能,适合复杂的企业级应用。 | 低资源消耗,适合小型设备。 |
开发工具 | Eclipse、IntelliJ IDEA、NetBeans等。 | Eclipse、IntelliJ IDEA、NetBeans等,以及特定的企业级开发工具。 | EclipseME、JDE等。 |
学习曲线 | 初级到中级。 | 中级到高级。 | 初级。 |
社区支持 | 广泛。 | 广泛。 | 相对较少,但仍然有社区支持。 |
3Java重要特点
面向对象(Object-Oriented):
Java是一种面向对象的语言,这意味着它支持类和对象的概念,以及封装、继承和多态性。
健壮性:
Java的设计目标是减少错误,它提供了强类型检查、异常处理机制等,以增强程序的稳定性。
跨平台性(Write Once, Run Anywhere - WORA):
Java代码可以在任何支持Java虚拟机(JVM)的平台上运行,无需修改。
解释型:
Java是一种解释型语言,这意味着Java源代码不是直接编译成机器码来执行,而是首先编译成一种中间形式,称为字节码(bytecode)。字节码是一种与平台无关的代码,可以在任何安装了Java虚拟机(JVM)的设备上运行。
可移植性:
由于跨平台的特性,Java代码可以在多种操作系统和硬件平台上运行。
简单性:
Java设计时考虑到了简洁性,它去除了C++中的一些复杂特性,如指针运算、多重继承等。
安全性:
Java提供了一个安全的运行环境,它有一套安全管理器和安全特性,可以防止恶意代码的执行。
多线程:
Java内置了对多线程编程的支持,允许开发者编写能够同时执行多个任务的程序。
分布式:
Java提供了丰富的网络通信API,使得开发分布式应用变得容易。
动态性:
Java支持动态加载和链接,这意味着在运行时可以动态地添加和替换代码。
高性能:
虽然Java是一种解释型语言,但通过即时编译器(JIT)和优化技术,它可以达到接近编译型语言的性能。
国际化:
Java支持国际化,这意味着它可以很容易地适应不同的语言和地区设置。
可扩展性:
Java的内存管理和垃圾收集机制使得它能够处理大型和复杂的应用程序。
丰富的API:
Java提供了一个庞大的标准库,包括用于网络、数据库访问、数据结构、图形用户界面构建等的API。
社区和生态系统:
Java拥有一个庞大的开发者社区,提供了大量的框架、工具和库,支持开发者快速开发高质量的应用程序。
4Java运行机制
Java是一种跨平台的编程语言,它的运行机制主要基于Java虚拟机(JVM)。以下是Java运行机制的详细步骤:
-
编写源代码:
- 开发者使用文本编辑器或集成开发环境(IDE)编写Java源代码,并保存为
.java
文件。
- 开发者使用文本编辑器或集成开发环境(IDE)编写Java源代码,并保存为
-
编译源代码:
- 使用Java编译器(
javac
命令)将源代码编译成字节码。编译后的字节码保存为.class
文件。
- 使用Java编译器(
-
加载字节码:
- Java运行时环境(JRE)中的Java虚拟机(JVM)加载编译后的字节码文件。
-
解释执行:
- JVM中的解释器(Interpreter)逐行读取字节码并将其转换成特定平台的机器码执行。
-
即时编译(JIT):
- 为了提高性能,JVM可以使用即时编译器(Just-In-Time Compiler,JIT)将热点代码(频繁执行的代码)编译成机器码,存储在代码缓存中,以提高后续执行效率。
-
垃圾回收:
- JVM负责管理内存,包括自动垃圾回收,以释放不再使用的内存空间。
-
运行时类型检查:
- Java在运行时进行类型检查,确保类型安全。
-
异常处理:
- Java程序在执行过程中可能会抛出异常。JVM负责异常的捕获和处理。
-
多线程支持:
- JVM支持多线程执行,允许程序中的多个任务同时运行。
-
平台无关性:
- 由于Java源代码被编译成平台无关的字节码,因此可以在任何安装有JVM的平台上运行,实现了“一次编写,到处运行”(Write Once, Run Anywhere,WORA)的特性。
Java的这种运行机制使得Java程序具有良好的可移植性、安全性和性能。通过JVM,Java能够适应不同的操作系统和硬件平台,同时提供丰富的运行时服务,如内存管理、多线程支持等。
5什么是JDK,JRE
JDK(Java Development Kit)是Java开发工具包,它包含了Java开发所需的所有工具,如编译器、调试器以及Java运行时环境(JRE)。【 JDK=JRE+Java的开发工具[java,javac,javadocjavap等]】
JDK是面向开发者的,使他们能够编写、编译和运行Java程序。
JRE(Java Runtime Environment)是Java运行时环境,它包含了运行Java应用程序所需的核心组件,如Java虚拟机(JVM)和Java类库。【JRE=JVM+java的核心类库[类]】
JRE是面向最终用户的,他们只需要运行Java程序而不需要开发。
JDK和JRE的关系是包含关系:JDK中包含了JRE,因此安装了JDK就不需要单独安装JRE。简单来说,如果你要开发Java程序,需要JDK;如果你只是要运行Java程序,只需要JRE。
6下载安装JDK【空白】
7配置环境变量
为什么要配置环境变量?
下载并安装JDK后配置环境变量是一个重要的步骤,原因如下:
- 可执行路径:通过配置环境变量,可以确保操作系统知道在哪里找到JDK中包含的可执行文件,如
javac
(Java编译器)和java
(Java运行时)。 - 命令行访问:配置环境变量后,可以在命令行中直接运行Java命令,无需每次都指定JDK的完整路径。
- 脚本和自动化:当编写脚本或进行自动化操作时,环境变量确保了Java工具可以被正确调用。
- 开发工具集成:许多集成开发环境(IDE)和其他开发工具依赖于环境变量来定位JDK,以便进行代码编译和运行。
- 系统识别:配置环境变量后,系统可以识别Java文件类型,并将其与适当的工具关联。
- 简化路径:在编写脚本或命令时,可以简化路径,使用相对路径或环境变量代替绝对路径。
- 跨平台兼容性:环境变量提供了一种方式来适应不同操作系统的路径和配置差异。
配置方法:
配置环境变量通常涉及以下几个步骤:
- 更新系统路径:将JDK的
bin
目录添加到系统的PATH环境变量中。 - 设置JAVA_HOME:创建一个新的环境变量
JAVA_HOME
,其值为JDK的安装路径。 - 更新CLASSPATH(可选):虽然不是必需的,但有时可能需要设置或更新CLASSPATH环境变量,以便JVM能够找到用户类和库。
配置环境变量使得Java开发更加方便和高效,确保了开发工具和命令行都能够顺利地使用JDK提供的功能。
8快速入门【大胆的和Java语言过招吧!】
1编写Java源代码
- 使用文本编辑器(如Notepad++、Sublime Text、VS Code等)创建一个新的文本文件
public class HelloJava {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
//这段的代码就这么多,下面是为了详细解释
//详细解释这段代码
//定义一个公共类 HelloJava
// 类名应与文件名一致,这是Java的命名规范
public class HelloJava {
// 主方法的入口点,每个Java程序都从这里开始执行
// public static void main(String[] args) 是Java程序的主方法签名
public static void main(String[] args) {
// System.out 是Java的标准输出流
// println 是输出后换行的方法
// "Hello Java" 是要输出到控制台的字符串
System.out.println("Hello Java");
// 当 println 执行完毕后,程序结束
}
// HelloJava 类结束
}
- 注意:将文件保存为
HelloJava.java
,注意文件名必须与public类名匹配。
2编译Java程序:
-
打开命令提示符或终端,导航到HelloJava.java文件所在的目录。
-
运行命令javac HelloJava.java来编译Java程序。这将生成一个名为HelloJava.class的字节码文件。
3运行Java程序:
- 在同一个目录下,运行命令java HelloJava来执行编译后的字节码文件。
4查看输出:
控制台将输出"Hello Java"。
9Java开发注意事项和细节
- Java源文件以
.java
为扩展名。 - Java源文件的基本组成部分是类(class),例如Hello类。
- Java应用程序的执行入口是
main()
方法,它有固定的书写格式:
[ public static void main(String[] args) ] - Java语言严格区分大小写。
- Java方法由一条条语句构成,每个语句以分号
;
结束。 - 大括号
{}
都是成对出现的,缺一不可。编写习惯是先写大括号再写代码。 - 一个源文件中最多只能有一个
public
类。其他类的个数不限。 - 如果源文件包含一个
public
类,则文件名必须与该类名相同。 - 一个源文件中可以包含多个类,也可以将
main
方法写在非public
类中,然后通过指定运行非public
类来执行,这样入口方法就是非public
的main
方法。
10Java转义字符
在Java中,转义字符用于在字符串中包含那些通常有特殊含义的字符。以下是一些Java转义字符的使用案例及其作用:
-
换行符
\n
:-
案例:
System.out.println("Hello\nWorld!");
-
输出:
Hello World!
-
作用:在输出文本时创建一个新行。
-
-
制表符
\t
:-
案例:
System.out.println("Name\tAge\tCity"); System.out.println("Alice\t25\tNew York");
-
输出:
Name Age City Alice 25 New York
-
作用:创建一个水平制表位,通常用于对齐文本。
-
-
单引号
\'
:-
案例:
String quote = "It's a beautiful day."; System.out.println(quote);
-
输出:
It's a beautiful day.
-
作用:允许在字符串中包含单引号字符。
-
-
双引号
\"
:-
案例:
String quote = "He said, \"Hello World!\""; System.out.println(quote);
-
输出:
He said, "Hello World!"
-
作用:允许在字符串中包含双引号字符。
-
-
反斜杠
\\
:-
案例:
String path = "C:\\Users\\Username\\file.txt"; System.out.println(path);
-
输出:
C:\Users\Username\file.txt
-
作用:在字符串中包含实际的反斜杠字符,常用于表示文件路径。
等等
-
11注释
在Java中,注释用于解释代码,增强代码的可读性,并且不会被编译器执行。Java支持三种类型的注释:
1单行注释:
使用两个斜杠 //
开始,仅对该行有效。
案例:
// 这是一个单行注释
int number = 10; // 这行代码声明了一个变量number
作用:用于添加对单行代码的解释或备注。
2多行注释:
使用斜杠加星号 /*
开始,星号加斜杠 */
结束,可以跨越多行。
案例:
/* 这是一个
多行注释 */
int number = 10;
作用:用于添加跨越多行的解释或备注,但通常不推荐使用,因为它们可能会使代码难以阅读。
3文档注释:
使用两个星号 /**
开始,星号加斜杠 */
结束,用于生成API文档。
案例:
/**
* 这是一个文档注释
* @param args 命令行参数
*/
public static void main(String[] args) {
// ...
}
作用:用于生成API文档。文档注释通常包含方法的详细描述、参数说明、返回值说明以及可能抛出的异常等信息。
文档注释是Java中特有的一种注释方式,它被Javadoc工具解析,用来自动生成HTML格式的程序文档。这对于维护大型项目和团队协作开发非常有用,因为它提供了一种标准化的方式来记录和展示代码的公共API。
在实际开发中,应该根据需要选择合适的注释方式,以提高代码的可读性和可维护性。
12Java代码规范
Java的代码规范通常遵循一些行业标准和最佳实践,以确保代码的可读性、一致性和可维护性。以下是一些广泛接受的Java代码规范:
-
命名约定:
- 类名:通常是名词,首字母大写,如
MyClass
。 - 方法名和变量名:通常是小写字母和下划线(snake_case),如
myMethod
或my_variable
。 - 常量名:全部大写字母和下划线,如
MAX_VALUE
。
- 类名:通常是名词,首字母大写,如
-
代码格式化:
- 使用适当的缩进,通常是4个空格。
- 在大括号的使用上保持一致,可以是K&R风格或Allman风格。
- 在方法和变量声明之间,以及方法调用的参数之间添加空行。
-
注释:
- 使用文档注释来描述类、方法和复杂逻辑。
- 为复杂的代码段添加注释,以解释代码的意图。
-
避免长行:
- 保持代码行在合理的长度内,通常不超过80或120个字符。
-
避免复杂的表达式:
- 尽量使方法和逻辑保持简单,避免复杂的嵌套和长表达式。
-
使用访问修饰符:
- 明确使用
public
、protected
、private
等访问修饰符来控制成员变量和方法的可见性。
- 明确使用
-
避免使用
final
关键字的不一致性:- 如果一个类不是设计为被子类化,应该声明为
final
。
- 如果一个类不是设计为被子类化,应该声明为
-
异常处理:
- 恰当地使用try-catch块来处理异常,避免使用过于宽泛的异常捕获。
-
代码重用:
- 通过方法和类的继承来提高代码的重用性。
-
避免不必要的对象创建:
- 避免在循环内部创建可以在循环外部创建的对象。
-
使用泛型:
- 利用泛型来提高代码的类型安全性和灵活性。
-
使用断言:
- 利用断言来检查程序状态,特别是在开发和测试阶段。
-
避免魔法值:
- 将“魔法值”替换为命名常量,以提高代码的可读性。
-
遵循SOLID原则:
- 设计时遵循SOLID原则,使代码易于维护和扩展。
-
单元测试:
- 编写单元测试来验证代码的正确性。
-
使用版本控制系统:
- 使用如Git这样的版本控制系统来管理代码变更。
-
代码审查:
- 通过代码审查来提高代码质量。
-
避免全局状态:
- 尽量减少全局状态的使用,这会使代码更难于理解和维护。
总结
这些规范有助于保持代码的整洁和一致性,使得团队成员之间的协作更加顺畅。不同的团队和项目可能会有特定的编码标准,但上述规范是一个很好的起点。
13总结
至此,我的Java概述总结就就结束了,后面还会继续补充的。有什么错误还希望提出,帮我精进。感谢!