一、命名规则
在Java中,各种标识符(类名、包名、方法名、变量名)的命名都有一个统一规范
- 只能数字、有字母、_、$组成,且开头不能是数字
- 不能是关键字
- 尽量见名知意
- 所有类名开头必须大写
- 所有包名都必须小写
- 所有常量名必须全部大写,可以用下划线作为分割
- 遵循驼峰命名法(单词首字母大写,名称开头可以小写)
二、注释
在Java文件中有三种注释
1. 单行注释
一般用于注释内容较少的地方,如代码逻辑注释
// 注释内容
2. 多行注释
用于注释内容较多的地方
/*
注释内容
*/
3. 文档注释
文档注释一般用在类、方法、变量上面,来描述其作用
/**
* 注释内容
*/
三、基本数据类型
Java有八大基本类型,除了这八大基本类型,其他的类型都是引用类型,并且所有的引用类型的默认值都是null。八大基本类型又分为整型、浮点型、字符型和布尔型。
1. 整型
类型 | 字节 | 大小范围 | 默认值 |
---|---|---|---|
byte | 1 | -27至27-1(-2(1*8-1)至2(1*8-1)-1) | 0 |
short | 2 | -215至215-1(-2(2*8-1)至2(2*8-1)-1) | 0 |
int | 4 | -231至231-1(-2(4*8-1)至2(4*8-1)-1) | 0 |
long | 8 | -263至263-1(-2(8*8-1)至2(8*8-1)-1) | 0 |
2. 浮点型
类型 | 字节 | 大小范围 | 默认值 |
---|---|---|---|
float(单精度) | 4 | 1.4E-45至3.4028235E38 | 0.0 |
double(双精度) | 8 | 4.9E-324至1.7976931348623157E308 | 0.0 |
3. 字符型
类型 | 字节 | 大小范围 | 默认值 |
---|---|---|---|
char | 2 | Unicode(0~2^16-1) | Unicode(0) |
4. 布尔型
类型 | 字节 | 大小范围 | 默认值 |
---|---|---|---|
boolean | 1 | false和true | false |
5. int类型的进制转换
a. 二进制
在Java中,可以直接用前缀0b
来表示二进制的int,如
int a = 0b111; // 结果:7
b. 八进制
可以用前缀0
来表示八进制的int,如
int a = 011; // 结果:9
c. 十六进制
可以用前缀0x
表示十六进制的int,如
int a = 0x11; // 结果:17
6. 进制转换
取值范围大的类型向取值范围小的类型转换需要强制转换,如
int age = (int)3.5; // 通过(int)把浮点型数据强转为int类型
取值范围小的类型可以直接向取值范围大的类型转换,如
double price = 2; // 2明显是int类型,但是可以直接赋值为浮点型
四、运算符
1. 算数运算符
用于数字的运算
符号 | 名称 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
2. 比较运算符
用于数字比较,结果为boolean类型
符号 | 名称 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
3. 逻辑运算符
符号 | 名称 | 逻辑 |
---|---|---|
&& | 逻辑与 | 前后都为true结果才为true |
|| | 逻辑或 | 前后只要有一个为true结果则为true |
! | 逻辑非 | 将true变为false,将false变为true |
短路现象
A&&B,A为false时结果为false,B不需要再判断
A||B,A为true时结果为true,B不需要再判断
4. 一元运算符
符号 | 逻辑 |
---|---|
++ | 自身加一 |
– | 自身减一 |
如
int a = 12;
++a; // 结果:13
a++; // 结果:14
--a; // 结果:13
a--; // 结果:12
5. 赋值运算符
符号 | 逻辑 |
---|---|
= | 等于 |
+= | 在自身上加… |
-= | 在自身上减… |
如
int a = 12;
a+=3; // 结果:15。与a = a + 3;不同,a = a + 3是先运算a + 3再赋值给a,而a+=3则是直接在a上加3
a-=4; // 结果:11。与a = a - 4;不同,a = a - 4是先运算a - 4再赋值给a,而a-=4则是直接在a上减4
6. 按位运算符
符号 | 名称 | 逻辑 |
---|---|---|
>> | 按位右移 | A>>B,将A转为二进制,然后二进制数字向右移动B位数,超出的部分截取掉,剩余的部分转为十进制就是结果 |
<< | 按位左移 | A<<B,将A转为二进制,然后二进制数字向左移动B位数,空出来的位置补0,然后转为十进制 |
>>> | 按位带符号位右移 | 与按位右移不同的是该运算符会带符号位位移 |
& | 按位与 | A&B,将A和B转为二进制,右对齐上下比较,两者都为1则为1,否则为0,再转为十进制 |
| | 按位或 | A|B,将A和B转为二进制,右对齐上下比较,两者有一个为1则为1,再转为十进制 |
^ | 按位异或 | A^B,将A和B转为二进制,右对齐上下比较,两者不同则为1,相同则为0,再转为十进制 |
如
7 >> 2; // 结果:1
7 << 2; // 结果:28
-1 >>> 1; // 结果:2147483647
7 & 8; // 结果:0
6 | 7; // 结果:7
7 ^ 8; // 结果:15
7. 三元运算符
A?B:C,判断A的结果,如果A为true,表达式就取B的值,如果是false,就取C的值
如
1>2?12:23; // 结果:23
注意
System.out.println(1>2?1.2:2);
// 直接输出时,后面两个值属性可以不同,类型取范围大的,结果为2.0
// 赋值的时候后面两个值类型必须相同
int a = 1>2?1.2:2//报错
8. 优先级
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-(正负)、~、++、– | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、-(加减) | 从左向右 |
5 | <<、>>、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、<<=、>>=、>>>= | 从右向左 |
五、转义符
转义字符 | 意义 |
---|---|
\n | 换行 |
\t | 横向跳格 |
\r | 回车 |
\ | \ |
" | " |
’ | ’ |