119 lines
6.4 KiB
Markdown
119 lines
6.4 KiB
Markdown
---
|
||
id: 基本语法
|
||
title: 基本语法
|
||
sidebar_position: 2
|
||
data: 2022年4月26日
|
||
---
|
||
|
||
## 数据类型
|
||
|
||
![数据类型](https://static.7wate.com/img/2022/04/26/e2015296349fd.png)
|
||
|
||
- 整数型:byte、short、int、long
|
||
- 浮点型:float、double
|
||
- 字符型:char
|
||
- 布尔型:boolean
|
||
|
||
Java 是对**大小写敏感**的语言,类的首字母**应该**大写,包名**尽量**小写。
|
||
|
||
## 运算符
|
||
|
||
### 赋值运算符
|
||
|
||
| 操作符 | 描述 | 例子 |
|
||
| :------ | :----------------------------------------------------------- | :--------------------------------------- |
|
||
| = | 简单的赋值运算符,将右操作数的值赋给左侧操作数 | C = A + B将把A + B得到的值赋给C |
|
||
| + = | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | C + = A等价于C = C + A |
|
||
| - = | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | C - = A等价于C = C - A |
|
||
| * = | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | C * = A等价于C = C * A |
|
||
| / = | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | C / = A,C 与 A 同类型时等价于 C = C / A |
|
||
| (%)= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 | C%= A等价于C = C%A |
|
||
| << = | 左移位赋值运算符 | C << = 2等价于C = C << 2 |
|
||
| >> = | 右移位赋值运算符 | C >> = 2等价于C = C >> 2 |
|
||
| &= | 按位与赋值运算符 | C&= 2等价于C = C&2 |
|
||
| ^ = | 按位异或赋值操作符 | C ^ = 2等价于C = C ^ 2 |
|
||
| \| = | 按位或赋值操作符 | C \| = 2等价于C = C \| 2 |
|
||
|
||
### 算数运算符
|
||
|
||
![算数运算符](https://static.7wate.com/img/2022/04/26/25fe089bb6d71.png)
|
||
|
||
算数运算符需要注意的就是**优先级问题**,当表达式中存在多个操作符时,**操作符的优先级顺序决定了计算顺序**,例如先乘除后加减,**()**的优先级最高。
|
||
|
||
### 自增、自减运算符
|
||
|
||
```java
|
||
int a = 1;
|
||
int b = ++a;
|
||
int c = a++;
|
||
```
|
||
|
||
### 比较运算符
|
||
|
||
![运算符](https://static.7wate.com/img/2022/04/26/9663777e364a1.png)
|
||
|
||
比较运算符的运算结果是 boolean 型,运算结果成立时,运算的结果为 true,否则为 false。
|
||
|
||
### 逻辑运算符
|
||
|
||
![逻辑运算符](https://static.7wate.com/img/2022/04/26/80929b128342d.png)
|
||
|
||
![运算结果](https://static.7wate.com/img/2022/04/26/edb8162f888c0.png)
|
||
|
||
### 位运算符
|
||
|
||
按位运算符用来操作整数基本类型中的每个**比特位**,按位操作符会对两个参数中对应的位执行**布尔代数运算**,并最终生成一个结果。假设整数变量 A 的值为 60 和变量 B 的值为 13:
|
||
|
||
| 操作符 | 描述 | 例子 |
|
||
| :----- | :----------------------------------------------------------- | :----------------------------- |
|
||
| & | 如果相对应位都是1,则结果为1,否则为0 | (A&B),得到12,即0000 1100 |
|
||
| \| | 如果相对应位都是 0,则结果为 0,否则为 1 | (A \| B)得到61,即 0011 1101 |
|
||
| ^ | 如果相对应位值相同,则结果为0,否则为1 | (A ^ B)得到49,即 0011 0001 |
|
||
| 〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即1100 0011 |
|
||
| << | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2得到240,即 1111 0000 |
|
||
| >> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2得到15即 1111 |
|
||
| >>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A>>>2得到15即0000 1111 |
|
||
|
||
### 三元运算符
|
||
|
||
语法为:条件表达式 ?表达式1:表达式2,如果条件表达式结果为 true 则执行表达式 1,否则执行表达式 2。
|
||
|
||
```java
|
||
variable x = (expression) ? value if true : value if false
|
||
```
|
||
|
||
## 关键字
|
||
|
||
| 类别 | | | | | | | |
|
||
| -------------------- | -------- | ---------- | -------- | ------------ | ---------- | --------- | ------ |
|
||
| 访问控制 | private | protected | public | | | | |
|
||
| 类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native |
|
||
| | new | static | strictfp | synchronized | transient | volatile | |
|
||
| 程序控制 | break | continue | return | do | while | if | else |
|
||
| | for | instanceof | switch | case | default | | |
|
||
| 错误处理 | try | catch | throw | throws | finally | | |
|
||
| 包相关 | import | package | | | | | |
|
||
| 基本类型 | boolean | byte | char | double | float | int | long |
|
||
| | short | null | true | false | | | |
|
||
| 变量引用 | super | this | void | | | | |
|
||
| 保留字 | goto | const | | | | | |
|
||
|
||
## 注释
|
||
|
||
```java
|
||
public class HelloWorld {
|
||
/*
|
||
* 这是第一个Java程序
|
||
* 它将打印Hello World
|
||
* 这是一个多行注释的示例
|
||
*
|
||
*/
|
||
public static void main(String[] args){
|
||
// 这是单行注释的示例
|
||
/* 这个也是单行注释的示例 */
|
||
System.out.println("Hello World");
|
||
}
|
||
}
|
||
```
|
||
|