Java 速成
关于 Java
Java 是一种广泛使用的计算机编程语言,拥有 跨平台 、面向对象 、泛型编程 的特性,广泛应用于企业级 Web 应用开发和移动应用开发.
环境安装
参见 JDK.
基本语法
主函数
Java 类似 C/C++ 语言,需要一个函数(在面向对象中,这被称为方法)作为程序执行的入口点.
Java 的主函数的格式是固定的,形如:
---|---
一个打包的 Java 程序(名称一般是 `*.jar`)中可以有很多个类似的函数,但是当运行这个程序的时候,只有其中一个函数会被运行,这是定义在 `Jar` 的 `Manifest` 文件中的,在 OI 比赛中一般用不到关于它的知识.
### 注释
和 C/C++ 一样,Java 使用 `//` 和 `/* */` 分别注释单行和多行.
### 基本数据类型
类型名| 意义
---|---
boolean| 布尔类型
byte| 字节类型
char| 字符型
double| 双精度浮点
float| 单精度浮点
int| 整型
long| 长整型
short| 短整型
null| 空
### 声明变量
---|---
final 关键字
final 含义是这是最终的、不可更改的结果,被 final 修饰的变量只能被赋值一次,赋值后不再改变.
---|---
### 数组
---|---
字符串
- 字符串是 Java 一个内置的类.
---|---
### 包和导入包
Java 中的类(`Class`)都被放在一个个包(`package`)里面.在一个包里面不允许有同名的类.在类的第一行通常要说明这个类是属于哪个包的.例如:
---|---
包的命名规范一般是:项目所有者的顶级域.项目所有者的二级域.项目名称.
通过 import 关键字来导入不在本类所属的包下面的类.例如下面要用到的 Scanner:
---|---
如果想要导入某包下面所有的类,只需要把这个语句最后的分号前的类名换成 `*`.
### 输入
可以通过 `Scanner` 类来处理命令行输入.
---|---
输出
可以对变量进行格式化输出.
| 符号 | 意义 |
|---|---|
%f | 浮点类型 |
%s | 字符串类型 |
%d | 整数类型 |
%c | 字符类型 |
---|---
### 控制语句
Java 的流程控制语句与 C++ 是基本相同的.
#### 选择
* if
---|---
- if...else
---|---
* if...else if...else
---|---
- switch...case
---|---
#### 循环
* for
`for` 关键字有两种使用方法,其中第一种是普通的 `for` 循环,形式如下:
---|---
第二种是类似 C++ 的 foreach 使用方法,用于循环数组或者集合中的数据,相当于把上一种方式中的循环变量隐藏起来了,形式如下:
---|---
* while
---|---
- do...while
---|---
## 注意事项
### 类名与文件名一致
创建 Java 源程序需要类名和文件名一致才能编译通过,否则编译器会提示找不到类.通常该文件名会在具体 OJ 中指定.
例:
`Add.java`
---|---
在该文件中需使用 Add 为类名方可编译通过.
本页面最近更新: 2026/1/7 08:56:54,更新历史 发现错误?想一起完善?在 GitHub 上编辑此页! 本页面贡献者:jingyuexing, ksyx, qyl27, Ir1d, H-J-Granger, StudyingFather, countercurrent-time, Enter-tainer, mgt, NachtgeistW, billchenchina, diauweb, Konano, Suyun514, Tiphereth-A, AngelKitty, CCXXXI, cjsoft, CoelacanthusHex, Early0v0, ezoixx130, GekkaSaori, LovelyBuggies, Makkiy, minghu6, P-Y-Y, PotassiumWings, Qubik65536, SamZhangQingChuan, sshwy, weiyong1024, 1804040636, clansty, GavinZhengOI, Gesrua, gtn1024, Henry-ZHR, kxccc, lychees, orzAtalod, Peanut-Tang, shuzhouliu, SukkaW, Xeonacid, yusancky, ZnPdCo 本页面的全部内容在CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用