Java 基本数据类型、运算符及赋值运算
一、基本数据类型
1、整数类型:byte、short、int、long(从左到有按照精度从小到大顺序排列)
整数类型的默认类型是int;同时精度从低到高是隐式转换,精度从高到底是强制转换
声明变量的格式:数据类型 变量名 = 值;
也可以先声明变量不赋值,到需要用的时候再赋值(但是需要注意成员变量使用的时候可以先不用赋值,但是局部变量必须赋值在使用)
声明变量的注意事项:
1)声明变量的数据类型是否小于该数据类型的默认值,赋值是否小于超出该数据类型的范围
2)声明变量的数据类型如果精度小于默认类型就需要注意值的大小
2、浮点类型:
float、double(从左到右精度从小到大,注意浮点类型的精度是大于整数类型的)声明变量的方式还是一样的,浮点类型的默认值:double
3、了解科学计数法:
这里就直接举一个列子演示就可以了:
double dou = 0.1E3;
这个表示0.1 乘以10的3次方,如果E 后面跟的是负数那么就是除以10的几次方。
强制类型转换:
方法:数据类型 变量 = (数据类型)变量名;
特点:有溢出风险,值大于转换类型最大值的时候,会以二进制的形式进行循环进位,直到可以装下为止。
二、引用数据类型
字符串类型:String
注意有字符串类型的数据参与运算的时候,在字符串类型之前就进行算术运算,在字符串类型之后就进行字符串的拼接操作。
三、运算符
1、运算符:+、-、*、/、%、++、--
加减乘除都和数学里面的一模一样,%表示取余,除以一个数取它的余数
重点讲解++和--:
两个的理念是一样的所以举一个列子就是:
1)a++:
第一步是将a 值取出来赋值给a++ 这个整体
第二步将a 的值自增1
2)++a:
第一步是将a 的值先自增1
第二步是将a 的值赋值给++a 这个整体
理解:
这里必须将a++ 或++a 看成一个整体,
a++:这里a 的值会加1,a++的值和之前a 的值一样
++a:这里a 的值会加以,++a 的值也会在以前a 的基础上加1
四、赋值运算
赋值运算包括:=、+=、-=、/=、%=
最简单的就是=,就是将右边的值赋值给左边
+=:(其他原理相同)举例说明:
int a = 1;
a += 5;//相当于a = a+5
+=:的意思就是把左边变量的值加上右边的值,在赋值给左边的变量。
注意:如果运算的结果没有溢出该变量的数据类型范围,就正常运算,否则就会以二进制循环进位,直到该数据类型可以装下这个值为止。
五、比较运算
比较两个基本数据类型就是比较两个变量的值是否相等,比较两个引用数据类型就是它们在堆中的地址。
instanceof :用于引用数据类型,一般用于做多态的转换。
使用:
a instanceof b;
a:变量
b:引用数据类型
六、逻辑运算:
符号 | 名称 | 表示 | 操作 | 特点 |
---|---|---|---|---|
& | 逻辑与 | 表示并且 | 有假即假 | 位运算作用,没有短路功能 |
&& | 逻辑双与 | 表示并且 | 有假即假 | 没有位运算作用,有短路功能 |
| | 逻辑或 | 表示或者 | 有真即真 | 有位运算作用,没有短路功能 |
|| | 逻辑双与 | 表示或者 | 有真即真 | 没有位运算作用,有短路功能 |
^ | 异或 | 同假异真 | ||
! | 逻辑非 | 非真即假,非假即真 |
演示&&或者|| 的短路功能:
根据这里面的++a,没有执行,我们知道|| 具有短路功能,这样程序的运行会更加的具有高效率。
优先级说明:!>&&(&)>||(|)
位运算:(转换位二进制计算)
&:按位与:有0即0
| :按位或:有1即1
^:按位异或:同0异1
`:按位取反:1变为0,0变为1
七、三目运算
表达式:X?Y:Z;
X:表示为一个值为boolean 的表达式,如果X为true 那么值就取Y,如果X为false 那么值就取Z,三目运算可以嵌套。
如果表达式的值使用一个变量接受,那么Y和Z 的变量类型必须一致,如果直接打印输出,那么Y和Z 的值可以不一样。
欢迎指点-----------------------------luo