一、注释、标识符、关键字
1.注释
(1)单行注释
//单行注释
(2)多行注释
/*多行注释 多行注释 多行注释*/
(3)文档注释
用于生成API文档。可以使用JavaDoc工具将文档注释转换为HTML格式的API文档。
/** @描述词 介绍 */
2.标识符
(1)概述
一切能够命名的包名、类名、方法名、参数名、变量名等。
(2)规范
由字母(a-z/A-Z)、数字(0-9)、下划线_ 和 美元符号 $ 组成。(严格区分大小写!)
可以是中文,但不推荐。
三不:
-
不能以数字开头
-
不能与java中的关键字、保留字和特殊直接量重名
-
不能包含空格
3.关键字(48个关键字,3个特殊,2个保留关键字)
(1)48关键字
关键字不能作为变量名、类名和方法名来使用!
首字母 | 关键字 | 总计 |
---|---|---|
a | abstract、assert、 | 2 |
b | boolean、break、byte, | 3 |
c | case、continue、catch、char、class、 | 5 |
d | default、do、double | 3 |
e | enum、extends、else | 3 |
f | for、final、finally、float | 4 |
i | int、if、interface、implement、import、instanceof | 6 |
l | long | 1 |
n | new、native | 2 |
p | private、protect、public、package | 4 |
r | return | 1 |
s | switch、strictfp、synchronized、short、static、super | 6 |
t | transient、try、throw、throws、this | 5 |
v | void、volatile | 2 |
w | while | 1 |
总计 | 48 |
(2)保留关键字
goto、const
(3)特殊直接量(非关键字!)
true、false、null
二、数据类型
(一).基本类型
1.数值类型
(1)整数类
类型 | 占用字节 | 最小 | 最大 |
---|---|---|---|
byte | 1 | -128 | 127 |
short | 4 | -2^15 | 2^15-1 |
int(默认) | 4 | -2^31 | 2^31-1 |
long(数值需要在后面+L,如10L) | 8 | -2^63 | 2^63-1 |
整数拓展:进制
二进制:0到1,逢二进一
八进制:0到7,逢八进一,前缀0
十进制:0到9,逢十进一
十六进制:0-9,a到f,逢十六进一,前缀0x
(2)浮点类
类型 | 占用字节 |
---|---|
float(数值需要在后面+F,如10F)(有限,离散,有误差) | 4 |
double(默认) | 8 |
浮点拓展:银行类数字敏感业务(使用BigDecimal)
例01:0.1F == 0.1
结果为false
例02:
a = 12345678F ;
b = a + 1;
a == b ==>true/false
答案:false
a = 123456789F ;
b = a + 1;
a == b ==>true/false
答案:true
(3)字符类
占用字节 | |
---|---|
char | 2 |
字符类拓展:
例:
所有字符本质是数字
具体可看Unicode表
常用转义字符:
转义字符 | 意义 |
---|---|
\t | 水平制表符,相当于tab |
\n | 换行 |
\r | 回车,将当前位置移到本行开头 |
\ \ | 防止\被当成转义字符,\ |
\ ' | ' |
\ " | " |
2.布尔类型
占用字节 | 默认值 | |
---|---|---|
boolean | 1 | false |
只有true和false两个值
2.引用类型
剩下的全是引用类型,默认值为null
三、类型转换
大转小需要强转!
byte e = (byte)10;
注意点:
转时要注意小类型的取值范围,否则会报内存溢出或精度丢失
不能把对象类型转为不相干类型
小转大则不需要
四、变量,常量
1.变量
(1)概述:可以变化的量,在java中,每个变量都需要声明其类型!
(2)组成
变量名:必须符合标识符规范
变量类型:引用/基本
作用域:有三种
①类变量:类中方法外,需要加static
②实例变量:类中方法外,使用不需要初始化,未初始化会使用默认值
③局部变量:方法里,使用前必须声明和初始化
2.常量
(1)概述:初始化不会改变的量!
(2)书写方式:大写字母和下划线
(3)修饰符:final五、运算符
1.算术运算符
符号 | 意义 |
---|---|
+ | 加/字符串连接符 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余(模) |
++ | 加加,自增 |
-- | 减减,自减 |
+= | 简化写法用 |
-= | 简化写法用 |
*= | 简化写法用 |
/= | 简化写法用 |
++a和a++的区别:
++a先自增,输出a+1
a++后自增,输出a,在下一轮才会a+1
幂运算:Math.pow(a,b) a的b次方
具体根据需要可自行百度~
2.赋值运算符
=
3.关系运算符
符号 | 意义 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等等 |
!= | 不等于 |
instanceof | 左边是否为右边的实例 |
运算返回布尔值
4.逻辑运算符
& | 与,依次判断直到结束才给结果,全真为真,有假则假 |
| | 或,依次判断直到结束才给结果,有真则真 |
! | 非 |
&& | 短路与,从左到右开始判断,期间如果有一个条件不满足,就会结束判断并给出结果 |
|| | 短路或,从左到右开始判断,期间如果有一个条件满足,就会结束判断并给出结果 |
5.条件运算符(三元运算符)
意义 | |
---|---|
a?b:c | 条件a是否满足,满足执行b,否则执行c |
6.位运算符
>> | 二进制数右移 |
a>>b | a的二进制数向右移动b位 |
<< | 二进制左移 |
a<<b | a的二进制数向左移动b位 |
位运算效率极高
五、命名规范
具体参考
六、包机制
为了更好地组织类,java提供了包机制,用于区别类名的命名空间。
规范参考阿里开发规范
格式01:import 包名.类名|*
格式02:import 包名[.包名2].(类名|*)
可以只导入某类中的某个方法
import 包名.类名.方法名
本质:相当于一个文件夹
七、doc文档
配合文档注释使用生成该类的api文档
可自行百度搜索cmd/IDEA生成doc文档