一、数据类型
1、基本数据类型
类型: byte short int long float double boolean char
空间 : 1 2 4 8 4 8 1 2 (单位:byte)
需要精确度极高的--钱---decimal类型
1byte=8bit---8个二进制位 00000000
2、引用数据类型
(1)字符串String
(2)基本数据类型之外的---各种类型的对象
二、运算符
需要注意的点:
1、逻辑运算符---bolean类型
&---并且----同ture为true----无论什么结结果,两边都执行
|---或-------同false为false
!---取反
&&---短路与---当左边为false,右边就不执行了(短路现象)
||---短路或
&和&&执行结果不变,只是&&会出现短路现象,没必要的就不执行了,更高效
2、赋值运算符
a=a+b---不会数据类型转换
a+=b =(强转)a+b-----回自动进行数据类型转换
3、位运算符----二进制
(1)按位与&-----同为1才为1,其它为0 二进制按位与相当于十进制的取余--hash算法
(2)按位或|-----同为0才为0,其它为1
(3)按位异或^------同为0,异为1 --- a^b=|a-b| 按位相减取绝对值
(4)~按位取反 ---0变1
<< 左移 所有位左移---末尾补0
>> 右移 所有位右移---末尾去掉
4、对象强转之前一般会用到instanceof---判断两个对象是否可以转换(多态处会用到)
5、一直会混的i++和++i
只需要记住一点:先运算还是先加1主要取决于++的位置
(1)++在前----先+1,再运算:
a=1; b=2;
c=++a+b; //a先+1,a=a+1=2,再运算c=a+b=2+2=4,所以c=4
(2)++在后----先运算,再+1:
a=1; b=2;
c=a+b++; //先运算,c=a+b=1+2=3,b再加1,b=b+1=3;,所以c=3
6、关系运算符==和equal区别:
(1)一个是运算符,一个是方法
(2)两者用法:
==:一般用来比较一般数据类型的值,引用数据类型比较的是堆内存地址
equal:一般用来比较字符串 和对象----未重写,比较的都是地址
字符串比较的是值-----String类官方重写了equal方法
对象比较的是地址---- 通过自行重写equal方法后----可比较对象的值