1、标识符
- Java语言的标识符由任意顺序的字母、下划线
(_)
、美元符号$
和数字组成。 - 第一个字符不能是数字。
- 标识符不能是Java的保留关键字。
- Java的标识符严格区分大小写。
- Java语言使用unicode标准字符集,最多可以标识65535个字符。
2、关键字
Java中的关键字包括:
int | public | this | finally | boolean | abstract |
---|---|---|---|---|---|
continue | float | long | short | throw | throws |
return | break | for | static | new | interface |
if | goto | default | byte | do | case |
strictfp | package | super | void | try | switch |
else | catch | implements | private | final | class |
extends | volatile | while | synchronized | instanceof | char |
protecte | imported | transient | implements | defaule | double |
3、声明常量
在程序运行过程中一直不会改变的量称为常量(constant),通常称为“final 变量”,在整个程序运行中只能被赋值一次,常被用于为所有的对象共享值的时候。
声明常量需要指定常量的类型并用final关键字进行限定。语法如下:
final 数据类型 常量名称[=值]
为了方便程序阅读,常量名通常用大写。如:
final boolean BOOL=true;
inal double PI=3.1415;
Tips:
1、当声明的常量为成员变量时,必须在定义时就设定他的初值,否则会报错;
2、当声明的常量为局部变量时,不需要赋初值。
4、声明变量
声明变量的目的是告诉编译器这个变量的数据类型,从而方便编译器知道给这个变量分配多少空间,以及它能存储什么类型的数据。声明变量时可以直接赋值,也可以不赋值。如:
int age;
char char1='y';
Tips
- 变量名必须是一个有效的标识符
- 变量名不能用关键字
- 变量名不能重复
- 选择有意义的单词作为变量名
- java的变量名允许使用汉字,如
int 年龄=21;
,不会报错,但不建议这样写。
4.1、变量的有效范围
变量被定义之后只是暂时存在内存中,等程序执行到一定的点,变量就会被释放。变量的有效范围指的是程序代码能够访问该变量的区域,超出该区域,编译会出错。
(1)成员变量
- 成员变量在整个类中有效。
- 类的成员变量可分为静态变量和实例变量。
- 在变量前加
static
关键词,变成静态变量。 - 静态变量的有效范围可以跨类,甚至达到整个程序之内,可以通过
类型.静态变量
的方式在其他类中使用。
(2)局部变量
- 在类的方法体中声明的变量(包括方法的参数)称为局部变量,只在当前代码块有效,不能用于其他的方法;
- 局部变量的生命周期取决于方法,当方法被调用时,Java虚拟机为其分配内存,方法的调用结束后,内存被释放。
- 局部变量的名称可以和成员变量相同,此时成员变量被隐藏。
5、运算符
Java的运算符主要用于数学运算、赋值语句和逻辑比较。包括以下几种:
5.1、赋值运算符 =
- 二元运算符
- 左侧必须是一个变量
- 右侧可以是任意表达式,如变量、常量、有效表达式(
34\*12, a+b
) - 当一个表达式中包含多个
=
时,先从最右边一个赋值开始
5.2、算数运算
- 包括
+加, -减, *乘, \除, %求余
,都是二元运算符。 -
+。-
同时可以用于表示数字的正负,+2, -6
5.3、自增自减运算符
-
++ --
单目运算符; - 放在变量前,
++a, --a
表示在使用变量前,先使变量加1或者减1,再参与运算。 - 放在变量后,
a++, a--
表示先参与运算,在使变量加1或者减1;
如:
int a=1;
b=++a;
此时a=2,b=2;
a=1;
b=a++
此时a=2,b=1;
5.4、比较运算符
- 属于二元运算符
- 运算结果为boolean型
包括如下运算符
运算符 | 操作数据 | 备注 |
---|---|---|
> | 整形、浮点型、字符型 | |
< | 整形、浮点型、字符型 | |
== | 基本数据类型、引用型 | |
>= | 整形、浮点型、字符型 | |
<= | 整形、浮点型、字符型 | |
!= | 基本数据类型、引用型 |
5.5、逻辑运算符
- 逻辑运算符的操作单元必须是boolean型的数据
- 返回值为boolean型
包括如下几种:
运算符 | 含义 | 使用方法 | 结合方向 |
---|---|---|---|
&&, & | 逻辑与 | a&&b | 左到右 |
|| | 逻辑或 | a||b | 左到右 |
! | 逻辑非 | !a | 右到左 |
tips
-
&
会分别判断两边的表达式,从而做出判断。非短路运算符。 -
&&
如果判断左侧的表达式为false
那么就不会再判断右侧的表达式,直接输出结果。称为短路运算符。
5.6、位运算
操作符 | 含义 | 说明 | 备注 |
---|---|---|---|
& | 按位与 | 对应位都是1,输出1,否则0 | 双目 |
| | 按位或 | 对应位都是0,输出0,否则1; | 双目 |
~ | 按位取反 | 1改为0,0改为1 | 单目 |
^ | 按位异或 | 相同为0,否则为1 | 双目 |
<< | 左移 | 左侧操作数向左移动右侧操作数指示的位数,左侧空出的位数补0 | 双目 |
>> | 右移 | 左侧操作数向右移动右侧操作数指示的位数,如果最高位为1,右侧空出的位补1,否则补0 | 双目 |
>>> | 无符号右移 | 无论最高位为1或者0,右移空出的位置都补0 | 双目 |
tips
- 移位运算符适用的数据类型有byte、short、char、int、long。
5.7、三元运算符
三元运算符的格式如下:
条件式?值 1:值 2
如果条件式的值为true,则取值 1, 否则取值 2;效果相当于if else
5.8、运算符的优先级
通常的优先级次序为
- 增量和减量运算
- 算术运算
- 比较运算
- 逻辑运算
- 赋值运算
具体如下:
优先级 | 描述 | 运算符 |
---|---|---|
1 | 括号 | () |
2 | 正负号 | +、- |
3 | 一元运算符 | ++、--、! |
4 | 乘除 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | >>、<<、>>> |
7 | 比较大小 | <、>、>=、<= |
8 | 是否相等 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 三元运算 | ? : |
15 | 赋值运算 | = |
tips
- 写代码时尽量使用括号来限定运算顺序,避免出错。
6、数据类型转换
类型转换是将一个值从一种类型更改成另外一种类型。一般可以将任意类型的数据转换成String类型。如果从低精度的类型转换成高精度的类型,则永远不会溢出,而且总是成功的。反之则必然有信息丢失。
6.1、隐式转换
- 低等级向高等级转化时会自动进行,用户无需操作。转换顺序为:
byte<short<int<long<float<double
如:
int x=50;
float y=x;
则y=50.0;
- char和int转换为int。
6.2、显示转换
当把高精度的变量赋值给低精度的变量时,必须要用显示转换,又称强制类型转换。格式如下:
(类型名)要转换的值
如:
int a=(int)45.5;
long b=(long)456.6F;
则a=45;b=456;
- 当把整数赋值给一个byte、short、int、long型变量时,不可以超出这些变量的取值范围,否则必须进行强制类型转换。
7、注释方法
- 单行注释,如
// 注释内容
- 多行注释,如
/*
注释内容1
注释内容2
....
*/
- 文档注释
/**
注释内容
*/
Tips
- 多行注释中可以嵌套单行注释
- 多行注释中不能嵌套多行注释
- 当文档注释出现在声明(如类的声明、类的成员变量的声明、类的成员方法的声明等)之前时,会被Javadoc文档工具读取作为Javadoc文档内容。
- 注释可提高可读性和可维护性,程序中必须要添加适当的注释,一般占程序总量的20%-50%
此外写代码的规范:
- 每条语句单独占一行,句尾用;结束;
- 在声明变量时,尽管两个变量的类型相同,也尽量分两行声明,这样方面添加注释;
- 局部变量应在声明的同时进行初始化;
- Java代码中,关键字与关键字之间如果有多个空格都会被视为一个,因此控制空格数量。
- 添加适量的是、注释使程序可读性强,
- 在关键的方法处要添加合适的注释。