文章目录
一、标识符
标识符:
标识符就是指在程序中,我们自己定义的内容。
比如类名,变量名,方法名等等。。。
1、命名规则:(必须遵守)
1、不能数字开头
2、不能是java中的关键字和保留字
3、可以包含数字,字母(区分大小写),$和_
2、命名规范:(行内要求)
1、类名:首字母必须大写,后面每个单词首字母大写(大驼峰),类名必须与文件名一致。
2、变量名:首字母小写,后面每个单词首字母大写(小驼峰)。
3、方法名:与变量名规范一样。
推荐:尽量做到见名知意
二、八大原生类型
java中八大原生类型 首字母都是小写
1 、整数类型
- byte 所占字节:1 所占位数:8 存储范围-128~127
- short 所占字节:2 所占位数:16
- int 所占字节:4 所占位数:32
- long 所占字节:8 所占位数:64
推荐long类型结尾加大写L
2、浮点类型
- float所占字节:4 所占位数:32
推荐float类型结尾加大写F - double 所占字节:8 所占位数:64
3、字符类型
- char所占字节:2 所占位数:16
必须单引号包裹,并且只能写一个字母
4、布尔类型
- boolean 所占字节:1/4 所占位数:8/32
5、总结
- 创建多个变量时,变量名不能重复
- 使用发咯安徒生和long,记得添加F或L后缀
- 使用byte和short时,赋值范围不要超过限制
- 变量的使用不能超过其作用域
作用域:从定义变量开始到当前所属大括号结束 - 可以通过一个语句来创建多个变量,但是不推荐
三、类型转换
1、自动转换
- 小转大,小类型往大类型提升,随便用
- float ==> long 不允许,因为大类型不一致
- long ==> float 允许,不推荐使用。可能数据溢出,精度丢失
2、强制转换
//short ==> byte
long myLong = 10000L;
short myShort = (short)myLong;
//float ==> long
long myLong2 = (long)8.8F;
- 注意:在java在中数字类型常量
整数默认类型:int
浮点数默认类型:double
注意!!!定义byte和short时,右侧常量如果没有超过其定义范围会隐式强制转换成左侧类型 - 常量:在程序运行过程中不会发生改变值
- 强制转换:需要谨慎使用,可能造成精度丢失,数据溢出
- byte/short/ 进行运算过程时自动转型成int
- char 底层使用阿斯克码 只要值匹配 阿斯克码就会自动转换
- int类型的值,只要满足char范围会隐式强制转换
3、总结
- 强制转换需要谨慎使用,因为有可能发生数据溢出,精度丢失
- Byte/short/char 这三种类型会转换成int类型进行数字运算
- Boolean不能进行任何类型转换
四、运算符号
1、算数运算符(+ - * / %)
- 如果整型运算结果必定整型
- 如果运算中有浮点类型结果必定是浮点类型
- 小范围和大范围进行运算结果会自动提升至大范围
2、赋值运算符(= += -= *= /=)
- 赋值运算 左侧只能使用变量
- 无论结果是否超过左侧类型范围都会进行强制转换
3、逻辑运算符(或|| 与&& 非!)
- 单独使用时 & 和 | 做的是运算,如果两侧为boolean时,&两侧为true则为true,|两侧有一个为true则为true
- 注意:&& 和 || 有短路的作用,&&如果左侧为false右侧不执行,||左侧为true右侧不执行
4、++和- -
- ++:自增1
–:自减1
注:符号使用必须为变量 - a++:先操作再运算
++a:先运算再操作
(–一样)
5、三元运算
判断关系式?操作1(true):操作2(false)
五、常用引用类型介绍
1、Scanner(Scanner类)
扫描类,可以扫描指定位置的内容
目前而言,我们可以借助扫描类让用户使用控制台交互
Scanner sc = new Scanner(new);
.next() 获取控制台输入的字符串 返回String
.nextByte() 获取控制台输入的byte数值 返回byte
只能接收符合byte类型的值
hasNextInt()判断用户输入的值是否符合其类型
2、String
用于存储字符串,只要被双引号包裹都是字符串
3、Math
Math.random() 返回[0,1)随机小数,包括0 不包括1
六、结构语句
1、选择结构
1.1、if
- If(判断条件){
//逻辑代码
} - If(判断条件){
//逻辑代码
}else{
//逻辑代码
} - If(判断条件){
//逻辑代码
}else if(判断条件){
//逻辑代码
}else{
//逻辑代码
}
注:多个if和多个else if区别:多个if会逐个判断,只要满足就会执行其中代码多个else if因为是一个整体,所以当其中一个满足时后续不执行
1.2、switch
-
传入值要求:jdk1.7之前支持byte/short/int/enum
Jdk1.7之后支持byte/short/int/String/enum -
Switch的穿透性,如果条件匹配其中一个case时,会执行其中代码,如果末尾没有break(),会继续执行下一个case,不论值是否匹配
-
总结:
如果是对范围值的判断推荐使用if
如果是对精准值的判断推荐使用switch
2、循环结构
2.1、for
for(操作一①;判断条件②;操作三④){
操作二③;
}
第一次循环:① =》②=》③=》④
第二次循环:②=》③=》④=》②=》③=》。。。
最后一次:②(判断条件不成立循环结束)
2.2、while
-
while(判断条件){
//逻辑代码
} -
do{
//逻辑代码
}while(判断条件) -
循环中的关键字
Break:退出当前循环,后续代码不执行
Continue:跳出本次循环,后续代码本次循环不执行 -
总结:
如果已知循环次数,推荐使用for循环
如果循环次数未知,推荐使用while循环
单纯的执行效率而言while远远高于for