day02 -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)
java基础总结
day02:变量,运算符
为啥要使用变量和数据类型?
变量
变量方便存储数据,减少常量的复用
表示存储空间,可用来存放某一类型的常量,没有固定值,并可以重复使用。变量是内存中一块区域,可以往该区域存储数据,修改里面的数据,也可以获取里面的数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YMBBuCST-1596870013449)(img\图片 23.png)]
变量的特点:
-
占据着内存中的某一块存储区域
-
该区域有自己的名称(变量名)和类型(数据类型)
-
可以被重复使用
-
该区域的数据可以在同一类型范围内不断变化
数据类型
节省存储空间,提高系统运行效率,告诉jvm内存模型在内存中创建所需的内存大小
生活中,数据都是有类型这个概念的,比如张三18岁,18这个数字就是整型的,买了2.5斤菜,2.5就是小数类型的,在Java中每一个数据也有数据类型。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TmFwYRuT-1596870013451)(img\图片 24.png)]
常用的整数类型是int和long,byte和short基本不用,常用的小数类型是double,float基本不用。因为double是不精确的,在实际开发中表示精确的小数我们使用BigDecimal类(后面学)。
运算符 ?
对常量和变量进行操作的符号称为运算符
常用运算符:
-
算术运算符
-
赋值运算符
-
比较运算符
-
逻辑运算符
-
三元运算符
逻辑运算符如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vNrSc8dc-1596870013453)(img\图片 36.png)]
规律:
-
非:取反,!true则false,!false则true
-
与:有false则false
-
或:有true则true
-
异或:^ 相同则false,不同则true
1. 自动类型提升
当一个算术表达式中,包含多个基本数据类型的常量或变量(boolean除外)时,整个算术表达式的结果类型将在出现自动提升,其规则是:
-
所有的byte、short、char类型被自动提升到int类型,再参与运算
-
整个表达式的最终结果类型,被提升到表达式中类型最高的类型
-
byte,char,short这三个类型一般不相互转化
-
数据类型,自动转换的顺序如下:
byte(1),char(2),short(2),int(4),long(8),float(4),double(8),boolean
-128-127 -215-215-1 后面一样类似推理
2.强制类型转换
小类型 ->大类型—自动转换,大类型转 - > 小类型—强制转换
范围小的数据类型 变量 = (范围小的数据类型)范围大的数据类型值;
3.前置++,与后置++,以及a+=1和a=a+1的区别
++前置:
先计算后赋值,a=10,++a=11,a=11
后置++:
先赋值后计算, a=10, a++=10,a=11
总结:
两者的最终结果一样,只是表达式的值不同
重点:
a+=1和a=a+1的区别:
a为byte类型,a=a+1,大类型转化小类型报错
a为byte类型,a+=1,底层实现相当于:a=(byte)(a+1)
4.数据的默认类型
整数的默认类型为int,小数的默认类型为double
float a=1.0,1.0为默认类型double,大类型转小类型报错,修改为float a=1.0F
5.数据类型与变量产生的原因
为啥要有数据类型:节省内存空间,方便数据的存储
为啥要有变量:用于方便数据的存储,修改和获取,方便数据的重复使用,
6.&与&&,|与||的区别以及优势,^逻辑运算符的作用
&,左右两边不管对错都会执行
&&,如果左边为false,则不会判断右边,造成短路
|,左右两边不管对错都会执行
||,如果左边为true,则不会执行右边
&&,||相比于&,|优势:遇到复杂的逻辑运算时执行效率高,提高了数据的运算速度以及性能
^逻辑运算符的作用:当左右两边的结果相同时为flase,反之为true