Skip to content

Commit

Permalink
Java 基础语法 Java 概述内容调整
Browse files Browse the repository at this point in the history
  • Loading branch information
itwanger committed Jul 14, 2022
1 parent ab04089 commit d8bb827
Show file tree
Hide file tree
Showing 15 changed files with 177 additions and 100 deletions.
37 changes: 8 additions & 29 deletions docs/.vuepress/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,33 +72,15 @@ export const sidebarConfig = sidebar({
],
},
{
text: "2.2 Java基础语法",
text: "2.2 Java语法基础",
collapsable: true,
children: [
{
text: "基本数据类型",
link: "basic-grammar/basic-data-type",
},
{
text: "流程控制语句",
link: "basic-grammar/flow-control",
},
{
text: "运算符",
link: "basic-grammar/operator",
},
{
text: "注释",
link: "basic-grammar/javadoc",
},
{
text: "关键字",
link: "basic-extra-meal/48-keywords",
},
{
text: "命名规范",
link: "basic-extra-meal/java-naming",
},
"basic-extra-meal/48-keywords",
"basic-extra-meal/java-naming",
"basic-grammar/javadoc",
"basic-grammar/basic-data-type",
"basic-grammar/operator",
"basic-grammar/flow-control",
],
},
{
Expand All @@ -109,10 +91,7 @@ export const sidebarConfig = sidebar({
text: "对象和类",
link: "oo/object-class",
},
{
text: "变量",
link: "oo/var",
},
"oo/var",
{
text: "方法",
link: "oo/method",
Expand Down
29 changes: 25 additions & 4 deletions docs/basic-extra-meal/48-keywords.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
---
title: Java中常用的48个关键字和2个保留字
shortTitle: 48个关键字和2个保留字
category:
- Java核心
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
- Java 保留字
- Java 关键字
description: Java中常用的48个关键字和2个保留字
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介,Java 保留字,Java 关键字
- name: description
content: Java中常用的48个关键字和2个保留字
---

# Java中常用的48个关键字

“二哥,就我之前学过的这些 Java 代码中,有 public、static、void、main 等等,它们应该都是关键字吧?”三妹的脸上泛着甜甜的笑容,我想她在学习 Java 方面已经变得越来越自信了。

“是的,三妹。Java 中的关键字可不少呢!你一下子可能记不了那么多,不过,先保留个印象吧,对以后的学习会很有帮助。”
Expand Down Expand Up @@ -112,7 +127,13 @@ PS:按照首字母的自然顺序排列。

“好了,三妹,关于 Java 中的关键字就先说这 48 个吧,这只是一个大概的介绍,后面还会对一些特殊的关键字单独拎出来详细地讲,比如说重要的 static、final 等。”转动了一下僵硬的脖子后,我对三妹说。

“二哥,你辛苦了,足足 48 个啊,容我好好消化一下。”
“除了这些关键字,Java 中还有两个非常特殊的保留字(goto 和 const),它们不能在程序中使用。”

“goto 在 C语言中叫做‘无限跳转’语句,在 Java 中,不再使用 goto 语句,因为无限跳转会破坏程序结构。”

“const 在 C语言中是声明常量的关键字,在 Java 中可以使用 public static final 三个关键字的组合来达到常量的效果。”

“好的二哥,我了解了,您辛苦了。”

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)

45 changes: 18 additions & 27 deletions docs/basic-extra-meal/java-naming.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,26 @@
---
title: Java命名规范,告别编码 5 分钟,命名 2 小时
shortTitle: Java命名规范
category:
- Java核心
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
- Java 命名规范
description: Java命名规范,告别编码 5 分钟,命名 2 小时
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介,Java 命名规范
- name: description
content: Java命名规范,告别编码 5 分钟,命名 2 小时
---

# Java命名规范(非常全面,可以收藏)

“二哥,Java 中的命名约定都有哪些呢?”三妹的脸上泛着甜甜的笑容,她开始对接下来要学习的内容充满期待了,这正是我感到欣慰的地方。

“对于我们中国人来说,名字也是有讲究的,比如说我叫沉默王二,你就叫沉默王三,哈哈。”我笑着对三妹说。
Expand All @@ -24,11 +38,8 @@ tag:
包的命名应该遵守以下规则:

- 应该全部是小写字母

- 点分隔符之间有且仅有一个自然语义的英语单词

- 包名统一使用单数形式,比如说 `com.itwanger.util` 不能是 `com.itwanger.utils`

- 在最新的 Java 编程规范中,要求开发人员在自己定义的包名前加上唯一的前缀。由于互联网上的域名是不会重复的,所以多数开发人员采用自己公司(或者个人博客)在互联网上的域名称作为包的唯一前缀。比如我文章中出现的代码示例的包名就是 `package com.itwanger`


Expand All @@ -37,12 +48,9 @@ tag:
类的命名应该遵守以下规则:

- 必须以大写字母开头

- 最好是一个名词,比如说 System

- 类名使用 UpperCamelCase(驼峰式命名)风格

- 尽量不要省略成单词的首字母,但以下情形例外:DO/BO/DTO/VO/AO/ PO / UID 等
- 尽量不要省略成单词的首字母,但以下情形例外:DO/BO/DTO/VO/AO/PO/UID 等

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/core-grammar/fifteen-01.png)

Expand All @@ -53,9 +61,7 @@ tag:
接口的命名应该遵守以下规则:

- 必须以大写字母开头

- 最好是一个形容词,比如说 Runnable

- 尽量不要省略成单词的首字母

来看个例子:
Expand All @@ -67,23 +73,17 @@ interface Printable {}
接口和实现类之间也有一些规则:

- 实现类用 Impl 的后缀与接口区别,比如说 CacheServiceImpl 实现 CacheService 接口

- 或者,AbstractTranslator 实现 Translatable 接口

### 04、字段(field)和变量(variable)

字段和变量的命名应该遵守以下规则:

- 必须以小写字母开头

- 可以包含多个单词,第一个单词的首字母小写,其他的单词首字母大写,比如说 `firstName`

- 最好不要使用单个字符,比如说 `int a`,除非是局部变量

- 类型与中括号紧挨相连来表示数组,比如说 `int[] arrayDemo`,main 方法中字符串数组参数不应该写成 `String args[]`

- POJO 类中的任何布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列化错误,我自己知道的有 fastjson

- 避免在子类和父类的成员变量之间、或者不同代码块的局部变量之间采用完全相同的命名,使可理解性降低。子类、父类成员变量名相同,即使是 public 类型的变量也能够通过编译,另外,局部变量在同一方法内的不同代码块中同名也是合法的,这些情况都要避免。

反例:
Expand Down Expand Up @@ -115,9 +115,7 @@ class Son extends ConfusingName {
常量的命名应该遵守以下规则:

- 应该全部是大写字母

- 可以包含多个单词,单词之间使用“_”连接,比如说 `MAX_PRIORITY`,力求语义表达完整清楚,不要嫌名字长

- 可以包含数字,但不能以数字开头

来看个例子:
Expand All @@ -132,9 +130,7 @@ static final int MIN_AGE = 18;
方法的命名应该遵守以下规则:

- 必须以小写字母开头

- 最好是一个动词,比如说 `print()`

- 可以包含多个单词,第一个单词的首字母小写,其他的单词首字母大写,比如说 `actionPerformed()`

来看个例子:
Expand All @@ -146,15 +142,10 @@ void writeBook(){}
Service/DAO 层的方法命名规约:

- 获取单个对象的方法用 get 做前缀

- 获取多个对象的方法用 list 做前缀,复数结尾,如:listObjects

- 获取统计值的方法用 count 做前缀

- 插入的方法用 save/insert 做前缀

- 删除的方法用 remove/delete 做前缀

- 修改的方法用 update 做前缀


Expand Down
38 changes: 27 additions & 11 deletions docs/basic-grammar/basic-data-type.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,29 @@
---
title: Java 中的数据类型(8 种基本数据类型和引用数据类型)
shortTitle: Java 中的数据类型
category:
- Java核心
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
- Java 数据类型
- 基本数据类型
- 引用数据类型
description: Java 中的数据类型(8 种基本数据类型和引用数据类型)
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介,Java 数据类型,基本数据类型,引用数据类型
- name: description
content: Java 中的数据类型(8 种基本数据类型和引用数据类型)
---

# Java 支持的 8 种基本数据类型

“二哥,[上一节](https://mp.weixin.qq.com/s/IgBpLGn0L1HZymgI4hWGVA)提到了 Java 变量的数据类型,是不是指定了类型就限定了变量的取值范围啊?”三妹吸了一口麦香可可奶茶后对我说。

“三妹,你不得了啊,长进很大嘛,都学会推理判断了。Java 是一种静态类型的编程语言,这意味着所有变量必须在使用之前声明好,也就是必须得先指定变量的类型和名称。”
“Java 是一种静态类型的编程语言,这意味着所有变量必须在使用之前声明好,也就是必须得先指定变量的类型和名称。”我吸了一口麦香可可奶茶后对三妹说。

Java 中的数据类型可分为 2 种:

Expand All @@ -19,13 +33,13 @@ Java 中的数据类型可分为 2 种:

2)**引用数据类型**

除了基本数据类型以外的类型,都是所谓的引用类型。常见的有数组(对,没错,数组是引用类型)、class(也就是类),以及接口(指向的是实现接口的类的对象)。
除了基本数据类型以外的类型,都是所谓的引用类型。常见的有[数组](https://tobebetterjavaer.com/array/array.html)(对,没错,数组是引用类型)、class(也就是[](https://tobebetterjavaer.com/oo/object-class.html)),以及[接口](https://tobebetterjavaer.com/oo/interface.html)(指向的是实现接口的类的对象)。

来个思维导图,感受下。

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/core-grammar/nine-01.png)

通过[上一节](https://mp.weixin.qq.com/s/IgBpLGn0L1HZymgI4hWGVA)的学习,我们知道变量可以分为局部变量、成员变量、静态变量。
[变量](https://tobebetterjavaer.com/oo/var.html)可以分为局部变量、成员变量、静态变量。

当变量是局部变量的时候,必须得先初始化,否则编译器不允许你使用它。拿 int 来举例吧,看下图。

Expand Down Expand Up @@ -89,6 +103,8 @@ public class LocalVar {

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/core-grammar/nine-03.png)

## 基本数据类型

接下来,我们再来详细地了解一下 8 种基本数据类型。

### 01、布尔
Expand Down Expand Up @@ -189,9 +205,9 @@ char letterA = 'A'; // 用英文的单引号包裹住。

那三妹可能要问,“char 既然只有一个字符,为什么占 2 个字节呢?”

“主要是因为 Java 使用的是 Unicode 字符集而不是 ASCII 字符集。”
“主要是因为 Java 使用的是 Unicode 字符集而不是 ASCII 字符集。字符集也可以叫编码,编码不同,实际占用的字节就会不同。

这又是为什么呢?我们留到下一节再讲。
## 引用数据类型

基本数据类型在作为成员变量和静态变量的时候有默认值,引用数据类型也有的。

Expand Down Expand Up @@ -325,6 +341,6 @@ public class ArrayList<E> extends AbstractList<E>

这么说就理解了吧?

“好了,三妹,关于 Java 中的数据类型就先说这么多吧,你是不是已经清楚了?”转动了一下僵硬的脖子后,我对三妹说。
“好了,三妹,关于 Java 中的数据类型就先说这么多吧,你是不是已经清楚了?”转动了一下僵硬的脖子后,我对三妹说。

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)
20 changes: 18 additions & 2 deletions docs/basic-grammar/flow-control.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
---
title: Java流程控制语句(if/switch判断语句和while/do-while/for循环语句)
shortTitle: Java流程控制语句
category:
- Java核心
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 流程控制语句
- Java 判断语句
- Java 循环语句
description: Java流程控制语句(if/switch判断语句和while/do-while/for循环语句)
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 流程控制语句,Java 判断语句,Java 循环语句
- name: description
content: Java流程控制语句(if/switch判断语句和while/do-while/for循环语句)
---

# Java流程控制语句

“二哥,流程控制语句都有哪些呢?”三妹的脸上泛着甜甜的笑容,她开始对接下来要学习的内容充满期待了,这正是我感到欣慰的地方。

Expand Down
24 changes: 20 additions & 4 deletions docs/basic-grammar/javadoc.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
---
title: Java注释:单行、多行和文档注释
shortTitle: Java注释
category:
- Java核心
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 注释
description: Java注释:单行、多行和文档注释
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 注释
- name: description
content: Java注释:单行、多行和文档注释
---

# Java注释:单行、多行和文档注释

“二哥,Java 中的注释好像真没什么可讲的,我已经提前预习了,不过是单行注释,多行注释,还有文档注释。”三妹的脸上泛着甜甜的笑容,她竟然提前预习了接下来要学习的知识,有一种“士别三日,当刮目相看”的感觉。

“注释的种类确实不多,但还是挺有意思的,且听哥来给你说道说道。”
Expand Down Expand Up @@ -172,7 +185,10 @@ public class Test {

“好了,三妹,关于 Java 中的注释就先说这么多吧。”转动了一下僵硬的脖子后,我对三妹说。“记住一点,注释是程序固有的一部分。”

>第一、注释要能够准确反映设计思想和代码逻辑;第二、注释要能够描述业务含 义,使别的程序员能够迅速了解到代码背后的信息。完全没有注释的大段代码对于阅读者形同 天书,注释是给自己看的,即使隔很长时间,也能清晰理解当时的思路;注释也是给继任者看 的,使其能够快速接替自己的工作。
- 第一、注释要能够准确反映设计思想和代码逻辑;
- 第二、注释要能够描述业务含 义,使别的程序员能够迅速了解到代码背后的信息。

完全没有注释的大段代码对于阅读者形同 天书,注释是给自己看的,即使隔很长时间,也能清晰理解当时的思路;注释也是给继任者看 的,使其能够快速接替自己的工作。

-----

Expand Down
Loading

0 comments on commit d8bb827

Please sign in to comment.