Java基础语法

# 变量与运算符

## 关键字与保留字

### 关键字:

被Java赋予特殊意义,有专门的用途的字符串,关键字所有字母都是小写

**用于定义数据类型的关键字**

class

interface

enum

byte

short

int

long

float

double

char

boolean

void

**用于定义流程控制的关键字**

if

else

switch

case

default

while

do

for

break

continue

return

**用于定义访问权限修饰符的关键字**

private

protected

public

**用于定义类,函数,变量修饰符的关键字**

abstract

final

static

synchronized

**用于定义类与类之间关系的关键字**

extends

implements

**用于定义建立实例及引用实例,判断实例的关键字**

new

this

super

instanceof

**用于异常处理的关键字**

try

catch

finally

throw

throws

**用于包的关键字**

package

import

**其他修饰符关键字**

native

strictfp

transient

volatile

assert

***** **用于定义数据类型值的字面值**

true

false

null

### 保留字

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使

用。自己命名标识符时要避免使用这些保留字

goto 、const

## 标识符

- Java 对各种**变量**、**方法**和**类**等要素命名时使用的字符序列称为标识符
- **技巧:凡是自己可以起名字的地方都叫标识符**。

### 标识符定义规则

- 由**英文字母**,**0-9**,**_下划线**,或者**$**组成
- **数字不可以开头。**
- **不可以使用关键字和保留字,但能包含关键字和保留字。**
- **Java** **中严格区分大小写,长度无限制。**
- **标识符不能包含空格。**

### Java中的名称命名规范

- **包名**:多单词组成时所有字母都小写:xxxyyyzzz

- **类名、接口名**:多单词组成时,所有单词的首字母大写:XxxYyyZzz

- **变量名、方法名**:多单词组成时,第一个单词首字母小写,第二个单词开始每个

​ 单词首字母大写:xxxYyyZzz

- **常量名**:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

- 注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。

- 注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。

## 变量

### 注意:

- Java中每个变量必须先声明,后使用

- 使用变量名来访问这块区域的数据

- 变量的作用域:其定义所在的一对{ }内

- 变量只有在其作用域内才有效

- 同一个作用域内,不能定义重名的变量

### 声明和赋值变量

<变量类型>+<变量名>=<值>

eg: int a =10

## 数据类型

### 基本数据类型

#### 数值型

##### 整数型

- int:4字节 -2 ^31 ~ 2^31 -1 (约21亿)
- short:2字节 -2 ^15 ~2^15 - 1
- long:8字节 -2 6^63~ 2^63 -1
- byte:一字节(8bit位)

##### 字符型

- double
- float

#### 字符型

- char

#### 布尔类型

- boolean

### 引用数据类型

- 类(class),字符串也在这里
- 接口(interface)
- 数组([])

## 变量类型

### 成员变量

- **在方法体外,类体内声明的变量称为 ** **成员变量**
- 实例变量(不用static修饰)
- 类变量(用static修饰)

### 局部变量

- **在方法体内部声明的变量称为** **局部变量**
- 形参(方法、构造器中定义的变量)
- 方法局部变量(在方法内定义)
- 代码块局部变量(在代码块内定义)

## 运算符

- 算数运算符:+ - * / %

- 赋值运算符: = += -= *= /= %=

- 比较运算符: < > <= >= !=

- 逻辑运算符:& | ! &&(短路与) ||(短路或)

- 位运算符:A:0011 1100

​ B:0000 1101

----------------------------------------------------------------------------------------------------

​ A&b:0000 1100(上下两位进行比较,全1则1,有0就0)

​ A|B:0011 1101(上下两位进行比较,全0则0,有1就1)

​ A^B(异或):0011 0001(上下两位进行比较,相同则0,不同则1)

​ ~B(取反):1111 0010

​ <<(左移):左移一位相当于*2

​ >>(右移):右移一位相当于/2

​ 例:2*8=16的最快算法:2<<3 效率及高

- 三元运算符:a+=b相当于a = a+b

​ a-=b相当于a = a-b

​ x?y:z(如果x为true则输出y否则输出z)

 

## Scanner

Scanner用来获取用户的输入

基础语法:Scanner scanner = new Scanner(System.in);

通过Scanner类的next()或nextline判断是否还有字符串的输入,使用nextline后输入的字符串中间可以加空格或者回车

```
使用next方式的

```

public class Base {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收");
if(scanner.hasNext()){
String next = scanner.next();
System.out.println("输入的字符串为:"+next);
}
scanner.close();
}
}

```


![image-20210512162925235](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210512162925235.png)

```

使用nextline方式接收

```
public class Base {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextline方式接收");
if(scanner.hasNext()){
String next = scanner.nextLine();
System.out.println("输入的字符串为:"+next);
}
scanner.close();
}
}
```

![image-20210512163433638](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210512163433638.png)

 

## 程序流程控制

- 顺序结构\

​ 程序从上到下逐行地执行,中间没有任何判断和跳转。

- 分支结构

​ 根据条件,选择性地执行某段代码。

有if…else和switch-case两种分支语句

- 循环结构

​ 根据循环条件,重复性的执行某段代码

有while、do…while、for三种循环语句

​ 注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素

### swich-case结构

```
含有case穿透

```

public class Base01 {
public static void main(String[] args) {
char grade = 'C';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
case 'C':
System.out.println("及格");
case 'D':
System.out.println("不及格");
case 'E':
System.out.println("太次了");
}
}
}

```


![image-20210512165132185](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210512165132185.png)

**case穿透:**若是case后不加break,则不会停止到当前case的位置,会一直向下执行

注:case后面要加冒号

### while-do while

while是先判断后执行

dowhile是先执行后判断 总是会保证循环会被先执行一次

 

 

 

 

 

 

 

 

 

 

 

 


```

posted @ 2021-05-13 15:05  代码小天才阿松  阅读(84)  评论(0)    收藏  举报