1 Java语言基础
约 1941 字大约 6 分钟
2025-08-22
语言发展史与简介
// todo
JDK下载与安装
下载地址:www.oracle.com
配置Path环境变量
配置目的(以 windows 为例子):让操作系统能够在全局找到 JDK 所需的一些脚本,执行时直接输入相关程序名字即可,无需使用程序的全部绝对路径

初步开发尝试
开发步骤:
- 编写程序
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld!");
}
}- 编译程序
javac HelloWorld.java- 运行程序
java HelloWorld从编写、编译再到执行的整体流程:

可能的错误以及注意事项
- 代码拼写错误
- 编译、运行路径问题
- 语法问题
- 其他
- 声明为
public的类应该与文件名一致,否则会编译失败 - 编译失败后注意错误出现的行数,从而定位到具体的错误
- 字符编码问题(中文显示异常),结合操作系统和程序使用的默认编码
- 代码格式规范,方便维护
- Java程序的入口是
main方法
- 声明为
- 源文件与类名
- 如果定义的类是
public类,那么要求源文件名必须和类名一致,否则编译出错 - 一个源文件可以有多个类,编译后会生成多个字节码文件
.class,但是只能有一个public类
- 如果定义的类是
- 单行注释
int a = 10; // 这是一个变量a,初始值为10- 多行注释
/*
这是一个多行注释的示例
这里可以写很多行说明
甚至可以包含代码片段
*/
int b = 20;- 文档注释
/**
* 这是一个计算两个整数之和的方法
* @param a 第一个整数
* @param b 第二个整数
* @return 两个整数的和
*/
public int add(int a, int b) {
return a + b;
}常用的DOS命令
- 列出当前目录
dir- 切换目录
cd- 返回上一级
cd ..- 返回到盘符目录
cd \
// 或
cd /- 创建目录
md 文件目录名- 删除目录
rd 文件目录名- 清屏
cls- 退出命令行窗口
exit几个比较重要的JDK版本
- Java 5.0
- Java 8.0 继 5.0 之后变化最大的版本,是长期支持的版本
- Java 11.0 JDK安装包取消独立JRE安装包,是长期支持的版本
- Java 17.0 版本号21.9,是长期支持的版本
Java SE、Java EE、Java ME 三个的区别
Java SE ( Java Standard Edition )
支持面向桌面级应用的 Java 平台,包括用户界面接口 AWT/SwingJava EE ( Java Enterprise Edition )
为开发企业环境下的应用程序提供的一套解决方案,定位在服务器的 Web 应用开发Java ME ( Java Micro Edition )
支持Java程序运行在移动终端(手机、机顶盒)上的平台,定位在消费性电子产品的应用开发

JVM、JRE、JDK 有什么关系
JDK
JDK ( Java Development Kit ) 是 Java 程序开发工具包,包含 JRE 和开发人员使用的工具
JRE
JRE ( Java Runtime Environment ) 是 Java 程序的运行时环境,包含 JVM 和运行时所需的核心类库

JVM

总结
JDK = JRE + 开发工具集 (如:Javac 编译工具)JRE = JVM + JavaSE标准类库
Java语言的特性
面向对象
简单性
Java 为开发者提供了简单易用的用户体验,与其他面向对象编程语言相比,Java 的设计和生态库具有巨大的优势。Java 剔除了 C++ 中很少使用、难以理解、易混淆的特别,比如说指针运算、操作符重载,内存管理等。
Java 可以做到堆栈分配、垃圾回收和自动内存管理,在一定程度上为开发者减轻了入门的难度。
- 可移植性、跨平台(基于 JVM)
如果 Java 直接编译成操作系统能识的二进制码,可能一个标识在 Windows 操作系统下是1100,而 Linux 下是 1001,这样的话,在 Windows 操作系统下可以运行的程序到了 Linux 环境下就无法运行。
为了解决这个问题,Java 先编译生成字节码,再由 JVM(Java 虚拟机)来解释执行,目的就是将统一的字节码转成操作系统可以识别的二进制码,然后执行。而针对不同的操作系统,都有相应版本的 JVM,所以 Java 就实现了可移植性。
- 安全性、健壮
Java 适用于网络/分布式环境,为了达到这个目标,在安全方面投入了巨大的精力。使用 Java 可以构建防病毒、防篡改的程序。
从一开始,Java 就设计了很多可以防范攻击的机制,比如说:
运行时堆栈溢出,这是蠕虫病毒常用的攻击手段。
字节码验证,可以确保代码符合 JVM 规范并防止恶意代码破坏运行时环境。
安全的类加载,可以防止不受信任的代码干扰 Java 程序的运行。
全面的 API 支持广泛的加密服务,包括数字签名、消息摘要、(对称、非对称)密码、密钥生成器。
安全通信,支持 HTTPS、SSL,保护传输的数据完整性和隐私性。
- 并发性
Java 在多线程方面做得非常突出,只要操作系统支持,Java 中的线程就可以利用多个处理器,带来了更好的交互响应和实时行为。
JVM功能说明
JVM ( Java Virtual Machine ) 即:Java 虚拟机,是一个虚拟机的计算机,是 Java 程序的运行环境。JVM 具有自己的指令集并使用不同的存储区域,它负责执行指令、管理数据、管理内存、寄存器等。

实现 Java 程序的跨平台性
Java 程序都运行在 JVM 之上,正是有了 JVM ,才使得 Java 程序具备了跨平台性。

使用 JVM 前后对比:

自动内存管理 (内存分配、内存回收)
Java 程序在运行过程中,涉及到运算的数据的分配、存储等都由 JVM 来完成
Java 消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况, 在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。
GC 的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄漏。
