提交 38c07996 编写于 作者: 沉默王二's avatar 沉默王二 💬

Java 语法基础

上级 7768fa46
......@@ -97,9 +97,9 @@
## Java基础语法
- [Java中常用的48个关键字 & 2个保留字](docs/basic-extra-meal/48-keywords.md)
- [Java注释:单行、多行和文档注释](docs/basic-grammar/javadoc.md)
- [Java 中的数据类型(8 种基本数据类型和引用数据类型)](docs/basic-grammar/basic-data-type.md)
- [Java 数据类型转换(强制类型转换+自动类型转换)](docs/basic-grammar/type-cast.md)
- [Java注释](docs/basic-grammar/javadoc.md)
- [Java中的数据类型](docs/basic-grammar/basic-data-type.md)
- [Java 数据类型转换](docs/basic-grammar/type-cast.md)
- [Java流程控制语句](docs/basic-grammar/flow-control.md)
- [Java运算符](docs/basic-grammar/operator.md)
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Java保留字,Java关键字,关键字,保留字
---
# 3.1 Java中常用的48个关键字和2个保留字
## 3.1 Java中常用的48个关键字和2个保留字
“二哥,就之前你给我展示的 Java 代码中,有 public、static、void、main 等等,它们应该都是关键字吧?”三妹的脸上泛着甜甜的笑容,我想她在学习 Java 方面已经变得越来越自信了。
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Java 简介,Java数据类型,基本数据类型,引用数据类型,数据类型
---
# 2.3 Java中的数据类型(8种基本数据类型和引用数据类型)
## 3.3 Java中的数据类型
“Java 是一种静态类型的编程语言,这意味着所有变量必须在使用之前声明好,也就是必须得先指定变量的类型和名称。”我吸了一口麦香可可奶茶后对三妹说。
......@@ -372,6 +372,8 @@ public class ArrayList<E> extends AbstractList<E>
- 1、变量名指向的是存储对象的内存地址,在栈上。
- 2、内存地址指向的对象存储在堆上。
### 堆和栈
看到这,三妹是不是又要问,“堆是什么,栈又是什么?”
堆是堆(heap),栈是栈(stack),如果看到“堆栈”的话,请不要怀疑自己,那是翻译的错,堆栈也是栈,反正我很不喜欢“堆栈”这种叫法,容易让新人掉坑里。
......
......@@ -12,17 +12,18 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Java流程控制语句,Java判断语句,Java循环语句,if,switch,while,do-while,for
---
## 3.5 Java流程控制语句
“二哥,流程控制语句都有哪些呢?”三妹的脸上泛着甜甜的笑容,她开始对接下来要学习的内容充满期待了,这正是我感到欣慰的地方。
“比如说 if-else、switch、for、while、do-while、return、break、continue 等等,接下来,我们一个个来了解下。”
## 01、if-else 相关
### 01、if-else 相关
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/control/thirteen-01.png)
**1)if 语句**
#### **1)if 语句**
if 语句的格式如下:
......@@ -56,7 +57,7 @@ public class IfExample {
青春年华
```
**2)if-else 语句**
#### **2)if-else 语句**
if-else 语句的格式如下:
......@@ -133,7 +134,7 @@ public class IfElseTernaryExample {
奇数
```
**3)if-else-if 语句**
#### **3)if-else-if 语句**
if-else-if 语句的格式如下:
......@@ -182,7 +183,7 @@ public class IfElseIfExample {
而立之年
```
**4)if 嵌套语句**
#### **4)if 嵌套语句**
if 嵌套语句的格式如下:
......@@ -222,7 +223,7 @@ public class NestedIfExample {
女生法定结婚年龄
```
## 02、switch 语句
### 02、switch 语句
switch 语句用来判断变量与多个值之间的相等性。变量的类型可以是 byte、short、int、long,或者对应的包装器类型 Byte、Short、Integer、Long,以及字符串和枚举。
......@@ -363,11 +364,11 @@ public class SwitchEnumDemo {
篮球运动员詹姆斯
```
## 03、for 循环
### 03、for 循环
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/control/thirteen-07.png)
**1)普通 for 循环**
#### **1)普通 for 循环**
普通的 for 循环可以分为 4 个部分:
......@@ -379,27 +380,19 @@ public class SwitchEnumDemo {
4)自增/自减:初始变量变化的方式。
来看一下普通 for 循环的格式:
```java
for(初始变量;条件;自增/自减){
// 循环体
}
```
画个流程图:
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/control/thirteen-08.png)
来个示例:
```java
......@@ -457,7 +450,7 @@ public class PyramidForExample {
“嘿嘿。”
**2)for-each**
#### **2)for-each**
for-each 循环通常用于遍历数组和集合,它的使用规则比普通的 for 循环还要简单,不需要初始变量,不需要条件,不需要下标来自增或者自减。来看一下语法:
......@@ -493,7 +486,7 @@ public class ForEachExample {
“嘿嘿,三妹,你这样说哥会脸红的。”
**3)无限 for 循环**
#### **3)无限 for 循环**
“三妹,你想不想体验一下无限 for 循环的威力,也就是死循环。”
......@@ -522,28 +515,20 @@ public class InfinitiveForExample {
一旦运行起来,就停不下来了,除非强制停止。
## 04、while 循环
### 04、while 循环
来看一下 while 循环的格式:
```java
while(条件){
//循环体
}
```
画个流程图:
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/control/thirteen-09.png)
来个示例:
```java
......@@ -575,8 +560,6 @@ public class WhileExample {
沉默王三
```
“三妹,你想不想体验一下无限 while 循环的威力,也就是死循环。”
“二哥,那会有什么样的后果啊?”
......@@ -604,29 +587,20 @@ public class InfinitiveWhileExample {
把 while 的条件设置为 true,并且循环体中没有 break 关键字的话,程序一旦运行起来,就根本停不下来了,除非强制停止。
## 05、do-while 循环
### 05、do-while 循环
来看一下 do-while 循环的格式:
```java
do{
// 循环体
}while(提交);
```
画个流程图:
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/control/thirteen-10.png)
来个示例:
```java
......@@ -658,8 +632,6 @@ public class DoWhileExample {
沉默王三
```
“三妹,你想不想体验一下无限 do-while 循环的威力......”
“二哥,又来啊,我都腻了。”
......@@ -689,7 +661,7 @@ public class InfinitiveDoWhileExample {
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/control/thirteen-11.png)
## 06、break
### 06、break
break 关键字通常用于中断循环或 switch 语句,它在指定条件下中断程序的当前流程。如果是内部循环,则仅中断内部循环。
......@@ -772,7 +744,7 @@ switch (age) {
}
```
## 07、continue
### 07、continue
当我们需要在 for 循环或者 (do)while 循环中立即跳转到下一个循环时,就可以使用 continue 关键字,通常用于跳过指定条件下的循环体,如果循环是嵌套的,仅跳过当前循环。
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Java 注释,javadoc,注释
---
# 2.2 Java注释:单行、多行和文档注释
## 3.2 Java注释
“二哥,Java 中的注释好像真没什么可讲的,我已经提前预习了,不过是单行注释,多行注释,还有文档注释。”三妹的脸上泛着甜甜的笑容,她竟然提前预习了接下来要学习的知识,有一种“士别三日,当刮目相看”的感觉。
......
......@@ -9,9 +9,11 @@ description: Java程序员进阶之路,小白的零基础Java教程,本文
head:
- - meta
- name: keywords
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,运算符
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,运算符,java运算符
---
## 3.6 Java运算符
“二哥,让我盲猜一下哈,运算符是不是指的就是加减乘除啊?”三妹的脸上泛着甜甜的笑容,我想她一定对提出的问题很有自信。
“是的,三妹。运算符在 Java 中占据着重要的位置,对程序的执行有着很大的帮助。除了常见的加减乘除,还有许多其他类型的运算符,来看下面这张思维导图。”
......@@ -19,7 +21,7 @@ head:
![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/core-grammar/eleven-01.png)
## 01、算数运算符
### 01、算数运算符
算术运算符除了最常见的加减乘除,还有一个取余的运算符,用于得到除法运算后的余数,来串代码感受下。
......@@ -119,7 +121,7 @@ System.out.println(y + " " + x);// 10 11
对于前自减和后自减来说,同学们可以自己试一把。
## 02、关系运算符
### 02、关系运算符
关系运算符用来比较两个操作数,返回结果为 true 或者 false。
......@@ -144,7 +146,7 @@ public class RelationOperator {
}
```
## 03、位运算符
### 03、位运算符
在学习位运算符之前,需要先学习一下二进制,因为位运算符操作的不是整型数值(int、long、short、char、byte)本身,而是整型数值对应的二进制。
......@@ -244,7 +246,7 @@ public class RightShiftOperator {
`10>>2` 等于 10 除以 2 的 2 次方;`20>>2` 等于 20 除以 2 的 2 次方。
## 04、逻辑运算符
### 04、逻辑运算符
逻辑与运算符(&&):多个条件中只要有一个为 false 结果就为 false。
......@@ -284,7 +286,7 @@ public class LogicalOperator1 {
}
```
## 05、赋值运算符
### 05、赋值运算符
赋值操作符恐怕是 Java 中使用最频繁的操作符了,它就是把操作符右侧的值赋值给左侧的变量。来看示例:
......@@ -360,7 +362,7 @@ long c = a * b;
System.out.println(c); // 21474836460000
```
## 06、三元运算符
### 06、三元运算符
三元运算符用于替代 if-else,可以使用一行代码完成条件判断的要求。来看示例:
......
---
title: Java 数据类型转换(强制类型转换+自动类型转换)
title: Java数据类型转换(强制类型转换+自动类型转换)
shortTitle: Java数据类型转换
category:
- Java核心
......@@ -9,12 +9,14 @@ description: Java程序员进阶之路,小白的零基础Java教程,Java 数
head:
- - meta
- name: keywords
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Java 简介,数据类型转换,j强制数据类型转换,自动类型转换
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Java 简介,数据类型转换,强制数据类型转换,自动类型转换,java类型转换
---
## 3.4 Java数据类型转换(强制类型转换+自动类型转换)
数据类型转换发生在所赋值的数值类型和接收数据的变量类型不一致的时候,它需要从一种数据类型转换成另一种数据类型。数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。
## 自动类型转换
### 自动类型转换
如果以下 2 个条件都满足,那么将一种类型的数据赋给另外一种类型的变量的时候,将会发生自动类型转换(automatic type conversion)。
......@@ -28,8 +30,6 @@ head:
* 数值型数据的转换:byte→short→int→long→float→double。
* 字符型转换为整型:char→int。
以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。
顾客到超市购物,购买牙膏 2 盒,面巾纸 4 盒。其中牙膏的价格是 10.9 元,面巾纸的价格是 5.8 元,求商品总价格。实现代码如下:
......@@ -66,8 +66,6 @@ b = b * 2; // Type mismatch: cannot convert from int to byte
该程序试图将一个完全合法的 byte 型的值 `50*2` 存储给一个 byte 型的变量。但是当表达式求值的时候,操作数被自动的提升为 int 型,计算结果也被提升为 int 型。这样表达式的结果现在是 int 型,不强制转换它就不能被赋为 byte 型。
所以应该使用一个显示的强制类型转换,例如:
```java
......@@ -78,17 +76,14 @@ b = (byte)(b*2);
这样就能产生正确的值 100。
注意:char 类型比较特殊,char 自动转换成 int、long、float 和 double,但 byte 和 short 不能自动转换为 char,而且 char 也不能自动转换为 byte 或 short。
## 强制类型转换
### 强制类型转换
尽管自动类型转换是很有帮助的,但并不能满足所有的编程需要。例如,如果你需要将 double 型的值赋给一个 int 型的变量,你将怎么办?
这种转换不会自动进行,因为 double 型的变化范围比 int 型的要小。这种转换有使成为“缩小转换”,因为你肯定要将源数据类型的值变小才能适合目标数据类型。
所以当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。其语法格式如下:
```java
......
......@@ -106,9 +106,9 @@ head:
### Java基础语法
- [Java中常用的48个关键字 & 2个保留字](basic-extra-meal/48-keywords.md)
- [Java注释:单行、多行和文档注释](basic-grammar/javadoc.md)
- [Java 中的数据类型(8 种基本数据类型和引用数据类型)](basic-grammar/basic-data-type.md)
- [Java 数据类型转换(强制类型转换+自动类型转换)](basic-grammar/type-cast.md)
- [Java注释](basic-grammar/javadoc.md)
- [Java 中的数据类型](basic-grammar/basic-data-type.md)
- [Java 数据类型转换](basic-grammar/type-cast.md)
- [Java流程控制语句](basic-grammar/flow-control.md)
- [Java运算符](basic-grammar/operator.md)
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Intellij IDEA安装,IDEA安装,idea,Intellij IDEA
---
# 2.5 安装集成开发环境Intellij IDEA
## 2.5 安装集成开发环境Intellij IDEA
IntelliJ IDEA 简称 IDEA,是业界公认为最好的 Java 集成开发工具,尤其是在代码自动提示、代码重构、代码版本管理、单元测试、代码分析等方面有着亮眼的发挥。
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Hello World
---
# 2.6 编写第一个Java程序:Hello World
## 2.6 编写第一个Java程序:Hello World
“三妹,今天,我们来编写第一个 Java 程序,Hello World 期待吗?”
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Java 优势,特点,java前途
---
# 2.3 学 Java 还有前途吗?
## 2.3 学 Java 还有前途吗?
尽管 Java 已经 25 岁了,但仍然“宝刀未老”。在 Stack Overflow 2019 年流行编程语言调查报告中,Java 位居第 5 位,有 41% 的受调开发者认为 Java 仍然是一门受欢迎的编程语言。
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,Java简史
---
# 2.2 Java发展简史
## 2.2 Java发展简史
20 世纪 90 年代,单片式计算机系统诞生。单片式计算机系统不仅廉价(之前的计算机非常庞大,并且昂贵),而且功能强大,可以大幅度提升消费性电子产品的智能化程度。
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,JDK 安装,jdk
---
# 2.4 安装Java开发工具包JDK
## 2.4 安装Java开发工具包JDK
因为Java程序必须运行在 JVM 之上,所以我们 Java 程序员在学习 Java 之前,要做的第一件事情就是安装JDK。
......
......@@ -12,7 +12,7 @@ head:
content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,Java简介
---
# 2.1 Java简介,什么是 Java?
## 2.1 Java简介,什么是 Java?
“二哥,到底什么是 Java?给我说说呗。”
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册