数据类型和运算符
数据类型和运算符
标志符
java 对各种变量、方法和类等要素命名时使用的字符序列成为标志符。
Java标识符有如下命名规则:
- 标识符由字母、数字、下划线“_”、美元符号“$”组成,并且首字符不能是数字。
- 不能把Java关键字作为标识符。
- 标识符没有长度限制。
- 标识符对大小写敏感。
关键字
Java关键字对Java编译器有特殊的意义,它们用来表示一种数据类型或者表示程序的结构等,关键字不能用作变量名、方法名、类名和包名。
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | continue |
default | do | double | else | enum |
extends | final | finally | float | for |
if | implements | import | instanceof | int |
interface | long | native | new | package |
private | protected | public | return | strictfp |
short | static | super | switch | synchronized |
this | throw | throws | transient | try |
void | volatile | while |
变量和常量
变量
// 数据类型 变量名 = 初始化值; (声明、赋值)
int num = 123;
注意
- 同一作用域内同一变量不可重复声明
- 变量必须初始化后才能使用(即必须有值才能使用),否则编译报错
- 变量的值可在同一类型不断变化
- 变量命名符合标识符规范,使用驼峰命名法,首字母小写
- 就近原则
常量
Java语言中,利用final关键字来定义Java常量,其本质为值不可变的变量。
因为Java常量的本质是值不可变的变量,所以在声明的时候,就必须要进行初始化。和变量不同的是,Java常量在程序中将无法再进行赋值,如果强行赋值,程序会抛出错误信息,并拒绝接受这一个新的值
数据类型
Java数据类型分为两大类,即基本数据类型和引用数据类型
Java基本数据类型分为4种,分别是整型、浮点型、字符型和布尔型
数据类型 | 字节数 | 位数 | 使 用 说 明 |
---|---|---|---|
byte | 1 | 8 | 取值范围:-27~27-1 |
short | 2 | 16 | 取值范围:-215~215-1 |
int | 4 | 32 | 取值范围:-231~231-1 |
long | 8 | 64 | 取值范围:-263~263-1,直接赋值时必须在数字后加上l或L |
float | 4 | 32 | 取值范围:1.4E-45~3.4E38,直接赋值时必须在数字后加上f或F |
double | 8 | 64 | 取值范围:4.9E-324~1.8E308 |
char | 2 | 16 | 使用Unicode编码(2个字节),可存汉字 |
boolean | — | — | 只有true和false两个取值 |
java运算符
对常量和变量进行操作的符号称为运算符
运算符的优先级(高到低)
优先级 | 描述 | 运算符 |
---|---|---|
1 | 括号 | (),[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、--、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |
算符运算符
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
++ | 自增 |
-- | 自减 |
赋值运算符
基本的赋值运算符:=,把=右边的数据赋值给左边。
扩展的赋值运算符:+=、-=,*=,/=,%=,+= 把左边和右边做加法,然后赋值给左边。
关系运算符
运算符 | 描述 |
---|---|
== | 相等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
instanceof | 检查是否是类的对象 |
逻辑运算符
运算符 | 描述 |
---|---|
& | 与,都为 true,结果才为 true,否则结果是 false |
&& | 短路与,如果左边的操作数是 false,结果一定为 false,且不再计算右边的操作数 |
| | 或,都为 false,结果才为 false,只要有一个是 true,结果就是 true |
|| | 短路或,如果左边的操作数是 true,结果一定为 true,且不再计算右边的操作数 |
^ | 异或,判断两个操作数是否不同,不同则为 true,相同则为 false |
! | 取反,!true 结果是 false,!fasle 结果是 true |
位运算符
运算符 | 运算 | 示例 |
---|---|---|
<< | 左移 | 3<<2=12 |
>> | 右移 | 3>>1=1 |
>>> | 无符号右移 | 3>>>1=1 |
& | 与运算 | 6&3=2 |
| | 或运算 | 6|3=7 |
^ | 与或运算 | 6^3=5 |
~ | 反码 | ~6=-7 |
三目运算符
格式:(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;