思维导图:
前言:
# 第2章 Java编程基础
## 学习目标
- 掌握Java的基本语法,熟悉Java程序基本格式、注释、关键字、常量与标识符的定义。
- 理解和使用Java中的变量及其数据类型,进行数据类型转换。
- 使用Java的各类运算符如算术、赋值、比较和逻辑运算符。
- 熟练使用选择结构语句如if、三元运算符和switch。
- 掌握Java循环结构如while、do-while、for循环及其嵌套和跳转。
- 定义和调用Java方法,了解方法的重载。
- 使用Java数组,对批量数据进行操作。
2.1 Java基本语法
## 2.1.1 Java基本语法
Java,与其他编程语言一样,具有一套特定的语法规则,例如代码格式、标识符定义和关键字使用等。
### 2.1.1 Java程序的基本格式
一个Java程序需要放在类中。类通过`class`关键字来定义,并可以使用修饰符进行修饰。
修饰符 class 类名 {
程序代码
}
**注意事项**:
1. Java代码包括结构定义语句和功能执行语句。每个功能执行语句后必须使用分号(`;`)结束。
例如:
System.out.println("这是第一个Java程序!");
2. Java是大小写敏感的。
3. 尽管Java的代码排版格式不严格,出于可读性的考虑,应编写整齐的代码。
常见格式:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("这是第一个Java程序!");
}
}
4. 在Java中,一个连续的字符串不可以分为两行书写。如果需要分行,可以使用`+`连接字符串。
错误的写法:
System.out.println("这是第一个
Java程序!”);
正确的写法:
System.out.println("这是第一个" +
"Java程序!");
# 2.1.2 Java中的注释
在Java编程中,为了提高代码的可读性和维护性,注释是不可或缺的。注释能够帮助其他开发者快速理解代码的逻辑、功能和用途。
## Java注释的作用
- **描述代码**:注释是对代码的简单描述,可以使得其他开发者更快速地理解代码的逻辑和功能。
- **不参与编译**:Java注释只存在于源文件中,编译时会被忽略,不会被编译到字节码文件中。
## Java中的注释类型
### 1. 单行注释
- 使用`//`来标识。
- 主要用于解释单行代码,如变量的定义。
int c = 10; // 定义一个整型变量
### 2. 多行注释
- 使用`/*` 开始和 `*/` 结束。
- 用于注释多行代码,可以是一段逻辑或者一个代码块。
/*
int c = 10;
int x = 5;
*/
### 3. 文档注释
- 使用`/**` 开始和 `*/` 结束。
- 主要用于为代码生成文档,可以通过`javadoc`命令提取出来,生成API文档。
/**
* @author 黑马程序员
* @version 1.0
*/
**常用javadoc标签**:
- `@author`: 标识作者
- `@deprecated`: 标识过期的类或方法
- `@exception`: 标识抛出的异常
- `@param`: 标识方法的参数
- `@return`: 标识方法的返回值
- `@see`: 标识参考链接或相关内容
- `@serial`: 标识序列化属性
- `@version`: 标识版本
- `@throws`: 标识抛出的异常
## 注释的嵌套
- 单行注释可以嵌套在多行注释中。
/*
int c = 10;
// 定义一个整型的c
int x = 5;
*/
- 多行注释不可以嵌套。如下例子会导致编译错误,因为第一个 `/*` 和第一个 `*/` 会匹配,而第二个 `*/` 无法找到匹配的 `/*`。
/* int c = 10; */
int x = 5;
/* ... */
注释可能导致的编译错误,在实际编程中应该避免多行注释的嵌套使用。
---
以上就是2.1.2关于Java中的注释的笔记内容,详细介绍了Java中的三种注释方式及其使用方法,以及注释嵌套的规则和注意事项。
2.1.3 Java中的标识符
在Java编程中,标识符是对程序中的元素,如变量、方法、类等,给予的名称。这些名称帮助程序员理解和组织代码。
## 基础规则
1. **组成**:标识符可以由字母、数字、下画线(_)和美元符号($)组成。
2. **开始**:标识符不能以数字开头。
3. **关键字**:标识符不能是Java中的关键字。
### 合法的标识符示例
- `username`
- `username123`
- `userName`
- `Susername`
### 不合法的标识符示例
- `123username`:不能以数字开头
- `Class`:不能是关键字
- `98.3`:不能以数字开头,且不可包含`.`这种特殊符号
- `Hello World`:不可包含空格或其他特殊字符
## 命名规范
为了使代码更具可读性和统一性,Java有一套广泛接受的命名规范,如下:
1. **包名**:全部小写,例如:`cn.itcast.test`。
2. **类名和接口名**:每个单词的首字母都大写,例如:`ArrayList`、`Iterator`。
3. **常量名**:全部大写,单词间用下划线(_)连接,例如:`DAY_OF_MONTH`。
4. **变量名和方法名**:
- 第一个单词首字母小写。
- 从第二个单词开始,每个单词的首字母大写,例如:`lineNumber`、`getLineNumber`。
5. **有意义的命名**:尽量使用有意义的英文单词或缩写来定义标识符,使得程序便于理解。如,用`userName`定义用户名,`password`定义密码等。
---
以上便是2.1.3节关于Java中的标识符的内容概述,其中详细介绍了标识符的定义、合法与不合法的示例以及命名规范建议。
2.1.4 Java中的关键字
# 2.1.4 Java中的关键字
在Java编程中,关键字是预先定义的具有特殊含义的词汇。它们是编程语言的基础元素,用于定义、组织和操作数据,控制流程等。
## 关键字列表
以下是Java中的关键字:
注意:
true
、false
和null
虽然在某些上下文中表现得像关键字,但它们实际上是字面值,不被视为关键字。const
和goto
被视为保留关键字,尽管在当前版本的Java中它们没有特定的功能。
这个分类是基于关键字的主要用途和功能进行的,但需要注意的是,有些关键字可能适用于多个类别。
## 关键点
1. **关键字特点**:Java中的关键字都是小写。
2. **关键字与标识符**:不能使用关键字作为标识符来命名变量、类等。
3. **保留的关键字**:`const`和`goto`都是Java中的保留关键字,尽管它们目前在Java中没有任何意义,但仍不应该用作标识符。
4. **特殊值**:`true`、`false`和`null`虽然技术上不是关键字,但它们在Java中有特殊的含义,因此也不应当作为标识符使用。
---
以上为2.1.4节关于Java中的关键字的内容概要。这部分主要介绍了Java的关键字及其重要性,并提供了关键字的完整列表和使用时需要注意的要点。
2.1.5 Java中的常量
## 2.1.5 Java中的常量
常量是在程序中不可变的数据值。例如数字`1`,字符`'a'`,浮点数`3.2`等。Java中的常量可以分类为以下几种:
### 1.整型常量
整型常量是整数类型的数据,可通过以下四种方式表示:
- **二进制**:以`0b`或`0B`开头的数字序列。例如:`0b01101100`,`0B10110101`
- **八进制**:以数字`0`开头的数字序列。例如:`0342`
- **十进制**:由数字`0-9`组成的数字序列。例如:`198`
- **十六进制**:以`0x`或`0X`开头,后接数字`0-9`或`A-F`的数字序列。例如:`0x25AF`
### 2.浮点数常量
浮点数常量用于表示小数。它们可以是单精度(`float`)或双精度(`double`):
- 单精度浮点数以`F`或`f`结尾。例如:`2e3f`
- 双精度浮点数以`D`或`d`结尾或无后缀。例如:`3.6d`, `3.84`
- 浮点数还可以用指数形式表示。例如:`5.022e+23f`
### 3.字符常量
字符常量用于表示单一字符,需用单引号(`'`)括起来。例如:`'a'`, `'1'`, `'\u0000'`
### 4.字符串常量
字符串常量用于表示字符序列,需用双引号(`"`)括起来。例如:`"HelloWorld"`, `"123"`, `"Welcome \n Xxx"`
### 5.布尔常量
布尔常量有两个值:`true` 和 `false`。
### 6.null常量
`null` 常量代表一个空的对象引用。
---
**附加知识**:**十进制数与二进制数的转换**
- **十进制转二进制**:这是一个连续除以2并取余的过程。每一步的余数构成了二进制表示。
例如:十进制的`6` 转为二进制是 `110`.
- **二进制转十进制**:从右到左,每个二进制位乘以`2`的相应次方,然后加起来。
例如:二进制的 `01100100` 转为十进制是 `100`.
此部分内容为对Java常量的基本介绍。在实际应用中,常量的使用和理解都是基础,为后续的编程工作提供了基础和支持。
总结:
### Java基本语法的重点:
1. **数据类型**:
- 原始数据类型:`int`, `float`, `char`, `boolean`等
- 引用数据类型:对象、数组等
2. **变量声明与初始化**:
- 局部变量
- 成员变量
- 类变量(静态变量)
3. **运算符**:
- 算术、关系、逻辑、位、赋值和其他运算符
4. **控制结构**:
- 条件语句:`if`, `switch`
- 循环结构:`for`, `while`, `do-while`
5. **数组**:
- 声明、初始化、多维数组
6. **方法**:
- 定义、调用、参数传递、返回值
7. **面向对象**:
- 类和对象的基础
- 继承、多态、封装
8. **异常处理**:
- `try`, `catch`, `finally`, `throw`, `throws`
9. **Java API**:内置库、类和方法的使用。
### Java基本语法的难点:
1. **面向对象的概念**:尤其是多态、抽象类和接口的概念及应用
2. **泛型**:类型参数的使用和泛型方法、类的定义
3. **异常处理**:如何正确处理异常、自定义异常
4. **多线程**:同步、死锁和线程通信的概念和处理
5. **Lambda表达式**:函数式编程在Java中的实现和用途
### Java基本语法的易错点:
1. **变量的作用域和生命周期**:局部变量和成员变量的区别和使用
2. **空指针异常**:在使用对象之前没有进行初始化
3. **数组越界**:在访问数组时,使用了非法索引
4. **方法重载与重写**:混淆两者的概念和规则
5. **访问修饰符**:不正确地使用`public`, `private`, `protected`, 和默认访问修饰符
6. **类型转换**:尤其是在原始数据类型和它们的包装类之间,或在不兼容的类型之间进行转换
7. **并发问题**:在多线程环境中,没有正确地同步代码,导致数据不一致或其他并发错误
在学习Java时,要特别注意上述的难点和易错点,并通过实践和编写代码加深对这些概念的理解。