-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
liuyanbo
committed
Jan 30, 2023
1 parent
a8f5ebe
commit bb7f414
Showing
5 changed files
with
435 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,193 @@ | ||
--- | ||
home: true | ||
title: Java基础 - 面向对象和基础 | ||
heroImage: /logo.svg | ||
heroText: Java 知识体系 | ||
tagline: 主要介绍 Java 语言基础、集合、JUC、IO 和 Java 的一些特性。 | ||
features: | ||
- title: Java 基础语言 | ||
# icon: http://img.mgd2008.com/icons8-java-48.png | ||
details: Java 基础语法、 面向对象(封装、继承、多态) | ||
link: oop-encapsulation.md | ||
copyright: false | ||
footer: | ||
title: Java基础 - 面向对象和基础 | ||
--- | ||
|
||
# Java 基础语言知识体系 | ||
![基础语言知识体系](../../.vuepress/public/img/Java基础.svg) | ||
## Java 基础语言知识体系 | ||
![基础语言知识体系.png](../../.vuepress/public/img/Java基础.svg) | ||
|
||
|
||
## 0. 概述 | ||
|
||
> 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 | ||
> | ||
> - **对象**:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 | ||
> - **类**:类是一个模板,它描述一类对象的行为和状态。 | ||
> - **方法**:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 | ||
> - **实例变量**:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。 | ||
## 1. 基础语言 | ||
|
||
### 1.1 核心语言 | ||
|
||
- 语言元素 | ||
|
||
- [关键字](http://img.mgd2008.com/Java%20%E5%85%B3%E9%94%AE%E5%AD%97.png) | ||
|
||
- 关键字不能用于常量、变量、和任何标识符的名称 | ||
- Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。 | ||
|
||
- 标识符 | ||
|
||
Java 所有组成部分都需要名字。类名、变量名以及方法名都被称为标识符。 | ||
|
||
- 以字母、$、下划线开头 | ||
- 首字母之后可以使用 以字母、数字、$、下划线任意几种 | ||
- 关键字不能作为标识符 | ||
- 标识符对大小敏感 | ||
|
||
- [修饰符](java-basic-lang.md) | ||
|
||
- 访问修饰符 | ||
|
||
> Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。 | ||
- **default** (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 | ||
- **public** 对所有类可见。使用对象:类、接口、变量、方法 | ||
- **private** 在同一类内可见。使用对象:变量、方法。 **注意:不能修饰类(外部类)** | ||
- **protected** 对同一包内的类和所有子类可见。使用对象:变量、方法。 **注意:不能修饰类(外部类)**。 | ||
|
||
- 非访问修饰符 | ||
|
||
- static | ||
- final | ||
- abstract | ||
- synchronized | ||
- transient | ||
- volatile | ||
|
||
- 运算符 | ||
|
||
- 算数运算符 | ||
- 关系运算符 | ||
- 位运算符 | ||
- 逻辑运算符 | ||
- 赋值运算符 | ||
- 其它运算符 | ||
|
||
- 分隔符 | ||
|
||
- 变量、常量和字面量 | ||
|
||
- 变量 | ||
- 常量 | ||
- 字面量(直接量) | ||
|
||
- 整型字面量 | ||
|
||
- 100 | ||
- 123L 整型字面量 | ||
|
||
- 实型字面量 | ||
|
||
- 9.8F 浮点型 | ||
- 3.14 | ||
- 3.2E-3 | ||
|
||
- 字符字面量 | ||
|
||
- 'a' | ||
- '\t' | ||
- '\105' 大写字母E | ||
|
||
- 字符串字面量 | ||
|
||
- "hello" | ||
|
||
- 布尔字面量 | ||
|
||
- true | ||
- false | ||
|
||
- 引用字面量 | ||
|
||
- null | ||
|
||
- 类型字面量 | ||
|
||
- int.class | ||
- String.class | ||
|
||
- 数据类型 | ||
|
||
- 基本类型 | ||
|
||
- 数值类型 | ||
|
||
- 整型 | ||
|
||
- byte (1字节) | ||
- short (2字节) | ||
- int (4字节) | ||
- long(8字节) | ||
|
||
- 浮点型 | ||
|
||
- float(4字节) | ||
|
||
- double(8字节) | ||
|
||
- 布尔型 | ||
|
||
- boolean | ||
|
||
- 字符型 | ||
|
||
- 2字节 | ||
|
||
- Unicode | ||
|
||
- 枚举类型 | ||
|
||
- 符号常量 | ||
|
||
- 引用类型 | ||
|
||
- 对象 | ||
|
||
### 1.2 字符串 | ||
|
||
- 创建字符串 | ||
|
||
- String Str =“hello”; str 引用静态区的字符串字面量 | ||
- String str = new String("hello"); str引用堆上的字符串字面量 | ||
|
||
- 操作字符串 | ||
|
||
### 1.3 数组 | ||
|
||
- 一维数组 | ||
- 二维数组 | ||
|
||
### 1.4 循环结构 | ||
|
||
- while | ||
- do...while | ||
- for | ||
|
||
### 1.5 分支结构 | ||
|
||
- if..else | ||
- switch...case..default | ||
|
||
## 3. 基础机制 | ||
|
||
1. 泛型 | ||
|
||
2. 注解 | ||
|
||
3. 注释 | ||
|
||
4. 反射 | ||
|
||
5. 异常 | ||
|
||
6. SPI | ||
|
||
## 2. 面向对象 | ||
|
||
- [封装](oop-encapsulation.md) | ||
|
||
- [继承](oop-inheritance.md) && [详解 Java 继承](oop-inheritance-details.md) | ||
|
||
- [多态](oop-polymorphism.md) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,79 @@ | ||
Java 基础语言 | ||
--- | ||
title: Java 基础语言 | ||
--- | ||
|
||
## Java 关键字 | ||
|
||
> 关键字是电脑语言里事先定义的,有特别意义的标识符。 | ||
> | ||
> 程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。 | ||
> | ||
> 关键字不能用作变量名、方法名、类名、包名和参数。 | ||
**Java 中的关键字如下** | ||
|
||
| 关键字 | 描述 | | ||
| ------------ | ------------------------------------------------------------ | | ||
| abstract | 抽象方法,抽象类的修饰符 | | ||
| assert | 断言条件是否满足 | | ||
| boolean | 布尔数据类型 | | ||
| break | 跳出循环或者label代码段 | | ||
| byte | 8-bit 有符号数据类型 | | ||
| case | switch语句的一个条件 | | ||
| catch | 和try搭配捕捉异常信息 | | ||
| char | 16-bit Unicode字符数据类型 | | ||
| class | 定义类 | | ||
| const | 未使用 | | ||
| continue | 不执行循环体剩余部分 | | ||
| default | switch语句中的默认分支 | | ||
| do | 循环语句,循环体至少会执行一次 | | ||
| double | 64-bit双精度浮点数 | | ||
| else | if条件不成立时执行的分支 | | ||
| enum | 枚举类型 | | ||
| extends | 表示一个类是另一个类的子类 | | ||
| final | 表示一个值在初始化之后就不能再改变了 表示方法不能被重写,或者一个类不能有子类 | | ||
| finally | 为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。 | | ||
| float | 32-bit单精度浮点数 | | ||
| for | for循环语句 | | ||
| goto | 未使用 | | ||
| if | 条件语句 | | ||
| implements | 表示一个类实现了接口 | | ||
| import | 导入类 | | ||
| instanceof | 测试一个对象是否是某个类的实例 | | ||
| int | 32位整型数 | | ||
| interface | 接口,一种抽象的类型,仅有方法和常量的定义 | | ||
| long | 64位整型数 | | ||
| native | 表示方法用非java代码实现 | | ||
| new | 分配新的类实例 | | ||
| package | 一系列相关类组成一个包 | | ||
| private | 表示私有字段,或者方法等,只能从类内部访问 | | ||
| protected | 表示字段只能通过类或者其子类访问 子类或者在同一个包内的其他类 | | ||
| public | 表示共有属性或者方法 | | ||
| return | 方法返回值 | | ||
| short | 16位数字 | | ||
| static | 表示在类级别定义,所有实例共享的 | | ||
| strictfp | 浮点数比较使用严格的规则 | | ||
| super | 表示基类 | | ||
| switch | 选择语句 | | ||
| synchronized | 表示同一时间只能由一个线程访问的代码块 | | ||
| this | 表示调用当前实例 或者调用另一个构造函数 | | ||
| throw | 抛出异常 | | ||
| throws | 定义方法可能抛出的异常 | | ||
| transient | 修饰不要序列化的字段 | | ||
| try | 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码 | | ||
| void | 标记方法不返回任何值 | | ||
| volatile | 标记字段可能会被多个线程同时访问,而不做同步 | | ||
| while | while循环 | | ||
|
||
## Java 修饰符 | ||
|
||
> Java 语言提供了许多修饰符,主要分为两种 | ||
> | ||
> - 访问修饰符 | ||
> - 非访问修饰符 | ||
### 访问控制修饰符 | ||
|
||
> Java 中可以使用访问控制修饰符来保护对类、变量、方法和构造方法的访问。Java支持4中不同的访问权限。 | ||
### 非访问控制修饰符 |
Oops, something went wrong.