Skip to content

Commit

Permalink
更新 Java 基础和 UML 类图画法
Browse files Browse the repository at this point in the history
  • Loading branch information
liuyanbo committed Jan 30, 2023
1 parent a8f5ebe commit bb7f414
Show file tree
Hide file tree
Showing 5 changed files with 435 additions and 31 deletions.
30 changes: 15 additions & 15 deletions src/.vuepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,21 @@ export default defineUserConfig({
description: "橘涂拾捌的wiki, 搭建自己的知识库",
theme,
plugins: [
searchProPlugin({
// 索引全部内容
indexContent: true,
// 为分类和标签添加索引
customFields: [
{
getter: (page) => page.frontmatter.category,
formatter: "分类:$content",
},
{
getter: (page) => page.frontmatter.tag,
formatter: "标签:$content",
},
],
}),
// searchProPlugin({
// // 索引全部内容
// indexContent: true,
// // 为分类和标签添加索引
// customFields: [
// {
// getter: (page) => page.frontmatter.category,
// formatter: "分类:$content",
// },
// {
// getter: (page) => page.frontmatter.tag,
// formatter: "标签:$content",
// },
// ],
// }),
],
shouldPrefetch: false,
});
5 changes: 4 additions & 1 deletion src/.vuepress/sidebar/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,10 @@ export const zhSidebar = sidebar({
text: "Java static关键字是什么",
link: "static.md",
},

{
text: "类图中各个类之间的关系",
link: "类图中各个类之间的关系.md",
},
],
},
{
Expand Down
204 changes: 190 additions & 14 deletions src/java/oop/README.md
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)

80 changes: 79 additions & 1 deletion src/java/oop/java-basic-lang.md
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中不同的访问权限。
### 非访问控制修饰符
Loading

0 comments on commit bb7f414

Please sign in to comment.