Java基本定义与概念
摘要
本文档详细介绍Java编程语言的基本概念,包括关键字、标识符、运算符、常量、变量、函数和类对象等核心知识点,为Java学习者提供全面的基础知识参考。
目录
关键字
关键字是被Java语言赋予了特殊含义的单词,所有关键字的字母都是小写。
按功能分类的关键字
1. 用于定义数据类型的关键字
class、interface、byte、short、int、long、float、double、char、boolean、void
2. 用于定义数据类型值的关键字
true、false、null
3. 用于定义流程控制的关键字
if、else、switch、case、default、while、do、for、break、continue、return
4. 用于定义访问权限修饰符的关键字
private、protected、public
5. 用于定义类、函数、变量修饰符的关键字
abstract、final、static、synchronized
6. 用于定义类与类之间关系的关键字
extends、implements
7. 用于定义建立实例及引用实例,判断实例的关键字
new、this、super、instanceof
8. 用于异常处理的关键字
try、catch、finally、throw、throws
9. 用于包的关键字
package、import
10. 其他修饰符及关键字
native、strictfp、transient、volatile、assert
标识符
标识符是在程序中自定义的一些名称。
组成规则
- 字母
- 数字
- 符号
_和$
定义规则
- 开头不能是数字
- 不能使用关键字
Java命名规范
| 类型 | 命名规范 | 示例 |
|---|---|---|
| 包名 | 多个单词组成时所有字母都小写 | com.example.util |
| 类和接口名 | 多个单词组成时,所有单词的首字母大写 | StudentManager |
| 变量和函数名 | 多个单词组成时,第一个单词首字母小写,其他单词首字母大写 | getUserName() |
| 常量名 | 所有字母都大写,多个单词用下划线连接 | MAX_VALUE |
运算符
1. 算术运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
+ | 加法 | a + b |
- | 减法 | a - b |
* | 乘法 | a * b |
/ | 除法 | a / b |
% | 取余 | a % b |
++ | 自增 | a++ 或 ++a |
-- | 自减 | a-- 或 --a |
转义字符
\n- 换行\b- 退格\r- 回车(Windows系统中回车符是\r\n)\t- 制表符(Tab)
2. 赋值运算符
| 运算符 | 说明 | 等价形式 |
|---|---|---|
= | 赋值 | a = b |
+= | 加等 | a += b ≡ a = a + b |
-= | 减等 | a -= b ≡ a = a - b |
*= | 乘等 | a *= b ≡ a = a * b |
/= | 除等 | a /= b ≡ a = a / b |
%= | 取余等 | a %= b ≡ a = a % b |
3. 比较运算符
| 运算符 | 说明 | 返回值 |
|---|---|---|
== | 等于 | boolean |
!= | 不等于 | boolean |
> | 大于 | boolean |
< | 小于 | boolean |
>= | 大于等于 | boolean |
<= | 小于等于 | boolean |
4. 逻辑运算符
| 运算符 | 说明 | 特点 |
|---|---|---|
& | 逻辑与(并且) | 两边都会执行 |
| | 逻辑或(或者) | 两边都会执行 |
^ | 异或 | true ^ true = false |
! | 逻辑非 | 取反 |
&& | 短路与 | 左边为false时,右边不执行 |
|| | 短路或 | 左边为true时,右边不执行 |
5. 位运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
<< | 左移 | n << x ≡ n * 2^x |
>> | 右移 | n >> x ≡ n / 2^x |
>>> | 无符号右移 | 高位总是补0 |
& | 位与 | 按位与操作 |
| | 位或 | 按位或操作 |
^ | 位异或 | 一个数异或同一个数两次,结果还是原数 |
~ | 位取反 | 按位取反 |
6. 三元运算符
格式:
(条件表达式) ? 表达式1 : 表达式2;
说明:
- 条件表达式为
true时,运算结果是表达式1 - 条件表达式为
false时,运算结果是表达式2
示例:
int max = (a > b) ? a : b; // 取a和b中的较大值
常量
常量表示不能改变的数值。
Java中的常量类型
-
整数常量
- 十进制:
123 - 八进制:
0123(以0开头) - 十六进制:
0x123(以0x开头)
- 十进制:
-
小数常量
3.14、2.5f、1.0d
-
布尔型常量
true、false
-
字符常量
- 用单引号标识:
'a'、'1'、'中'
- 用单引号标识:
-
字符串常量
- 用双引号标识:
"Hello"、"Java"
- 用双引号标识:
-
null常量
null
变量
变量用于将不确定的数据进行存储,它会在栈内存中开辟空间。
定义变量
数据类型 变量名;
示例:
int x;
赋值变量
变量名 = 初始化值;
示例:
x = 5;
变量的分类
按作用域分类
| 变量类型 | 作用域 | 内存位置 | 说明 |
|---|---|---|---|
| 成员变量(全局变量) | 整个类 | 堆内存 | 跟随对象的创建而产生 |
| 局部变量 | 函数或语句块内 | 栈内存 | 作用范围有限 |
函数
函数(也叫方法)是定义在类中具有特定功能的一段独立小程序。函数可以将功能代码进行封装,便于复用,提高代码的复用性。
函数的格式
修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2, ...) {
执行语句;
return 返回值;
}
注意事项
- 函数内不可以定义函数,只能调用函数
- 如果函数没有返回值,返回值类型定义为
void,return语句可以省略
函数重载(Overload)
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或参数类型不同即可,与返回值类型无关。
示例:
public int add(int a, int b) { return a + b; }
public double add(double a, double b) { return a + b; }
public int add(int a, int b, int c) { return a + b + c; }
函数的分类
1. 主函数
- 作用:程序的入口
- 格式:
public static void main(String[] args)
2. 构造函数
- 特点:
- 不需定义返回值类型
- 函数名和类名相同
- 不能写
return - 对象创建时自动调用,用于对象初始化
3. 普通函数
- 特点:调用时才执行
构造代码块
- 作用:给对象进行初始化
- 特点:对象创建时运行,优先于构造函数执行
类与对象
类
类是Java程序的基本单位,是对现实生活中事物的描述,是对象的模板。
定义类
public class 类名 {
// 类的内容
}
对象
对象是类通过 new 关键字创建出来的一个实体,是可被操作的具体实例。
创建对象
类名 对象名 = new 类名();
对象初始化过程
以 Object o = new Object(); 为例:
- 因为使用了
new,所以先找到Object.class文件并加载到内存 - 执行该类中的静态代码块,给
Object.class类进行初始化 - 在堆内存中开辟空间,分配内存地址
- 在堆内存中建立对象的特有属性,并进行默认初始化
- 对属性进行显式初始化
- 对对象进行构造代码块初始化
- 对对象进行与之对应的构造函数初始化
- 将内存地址赋给栈内存中的变量
o
匿名对象
当对象的方法只调用一次时,可以使用匿名对象。
特点:
- 没有引用变量
- 可以作为实际参数进行传递
- 使用完毕后立即成为垃圾
示例:
// 普通对象
Person p = new Person();
p.show();
// 匿名对象
new Person().show();
// 匿名对象作为参数
method(new Person());
总结
Java基础概念体系
Java基础
├── 语法基础
│ ├── 关键字(52个保留字)
│ ├── 标识符(命名规则和规范)
│ └── 运算符(6大类运算符)
├── 数据存储
│ ├── 常量(6种常量类型)
│ └── 变量(成员变量vs局部变量)
└── 程序结构
├── 函数(方法定义和重载)
└── 类与对象(面向对象基础)
学习要点
- 关键字:理解各类关键字的用途和分类
- 命名规范:遵循Java标准命名约定
- 运算符优先级:掌握各种运算符的使用和优先级
- 内存分配:理解栈内存和堆内存的区别
- 对象生命周期:掌握对象的创建和初始化过程
最佳实践
- 代码规范:严格遵循Java命名规范
- 内存管理:合理使用局部变量和成员变量
- 方法设计:合理使用方法重载,提高代码复用性
- 对象使用:在适当场景下使用匿名对象
通过掌握这些Java基础概念,为深入学习Java面向对象编程和高级特性打下坚实的基础。