Java语法
一、标识符
什么是标识符
常量、变量、函数、类、包的名称
标识符的命名规则
- 由字母、数字、下划线‘_’和美元符号‘$’组成,也可以是汉字。
- 不能以数字开头。
- 不能是关键字和保留字。
- Java是大小写敏感的语言,所以标识符区分大小写。
关键字:程序中有特别作用的单词。
保留字:现在没有使用到,但是保留下来作为以后的关键字使用的单词。
二、常量
- 常量的值是固定的,不可修改的
- 常量的定义方式:final
例:
final double PI=3.14; //PI是常量
- 常量的种类:
- 整型:123,0123(八进制),0x123(十六进制),123L(长整型)
- 浮点型:3.14f,3.14
- 布尔型:true,false
- 字符串:“中国”,“String”
- 引用类型:即对象
三、变量
在程序运行过程中,值是可以变化的,是内存中的最小单元
1.变量的特点
- 变量名:参照标识符
- 初始值:变量在使用前必须赋值
- 作用域:在不同代码块中的生命周期
- 数据类型
- 基本数据类型
父类型 | 子类型 | 名称 | 长度 | 取值范围 |
---|---|---|---|---|
整型 | byte | 字节型 | 1字节(8位) | -128~127 |
整形 | short | 短整形 | 2字节 | -32768~32767 |
整型 | int | 整型 | 4字节 | -231~231 |
整形 | long | 长整型 | 8字节 | -263~263 |
浮点型 | float | 单精度浮点型 | 4字节 | -231~231 |
浮点型 | double | 双精度浮点型 | 8字节 | -263~263 |
字符型 | char | 字符型 | 2字节 | -215~215 |
布尔型 | boolean | 布尔型 | 1字节 | true/false |
-
- 引用数据类型:对象类型,一般存放在堆内存中
例:数组,对象
- 引用数据类型:对象类型,一般存放在堆内存中
2.数据类型的相互转化
- 强制类型转换
由高级向低级转换,可能丢失精度
(int)3.14
- 自动类型转换
计算时低级类型向高级类型转换
10+'A';//75
5/2.5;//2.5
5/2;//2
3.进制转换
4.运算符
算术运算符
符号 | 含义 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 求模、求余 |
++ | 自增 |
-- | 自减 |
求余运算
9%4=1
9%5=4
-9%-4=-1
9%-4=1//求余运算的符号由第一个数决定
自增自减运算
a++与a=a+1相同
自增自减运算符在前,先执行自增,然后执行赋值
自增自减运算符在后,先执行赋值,再执行自增
int a=10;
int b=a++; //a=11,b=10
int a=10;
int b=++a; //a=11,b=11
字符串加减
"Hello"+",world"
"Hello"+123
"1"+1
结果
Hello,world
Hello123
11
赋值运算符
符号 | 含义 |
---|---|
= | 加法 |
+= | 减法 |
-= | 乘法 |
*= | 除法 |
/= | 求模、求余 |
%= | 自增 |
赋值运算结果与先运算后赋值结果相同,只是算作一次运算
int b=10;
b+=12;
/*---------*/
int b=10;
b=b+12;
结果是相同的
b=22
关系运算符
符号 | 含义 |
---|---|
< | 大于 |
> | 小于 |
== | 等于 |
<= | 小于等于 |
>= | 大于等于 |
!= | 不等于 |
逻辑运算符
符号 | 含义 | 结果 |
---|---|---|
& | 与 | 左右相同结果为真 |
| | 或 | 左右有一端为真,则为真 |
! | 非 | 遇真为假,遇假为真 |
^ | 异或 | 左右相同为假,左右不同为真 |
&& | 短路与 | 第一个条件为假时,不判断第二个条件,结果直接为假 |
|| | 短路或 | 第一个条件为真时,不判断第二个条件,结果为真 |
位运算符
以2进制形式运算
符号 | 含义 | 结果 |
---|---|---|
& | 与 | 左右两边第n位,同时为1时,结果为1,否则为0 |
| | 或 | 左右两边第n为,有一位为1,结果为1,否则为0 |
~ | 非 | 原来的1变成0,原来为0变成1 |
^ | 异或 | 两边的第n位,相同为0,不同为1 |
>> | 右移 | 右移n位相当于除以2的n次幂 |
<< | 左移 | 左移n位相当于乘以2的n次幂 |
>>> | 无符号右移 |
5.三元表达式
表达式1?表达式2:表达式3
判断表达式1的结果,若为true结果为表达式2,否则为表达式3
10<9?1:2
//结果 2
10>9?1:2
//结果 1