JAVA数据类型,大致分为两类:基本数据类型和引用数据类型
基本数据类型:数值型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
引用数据类型:类,接口,数组
数据类型的使用:整型中十进制:int a=10; 八进制:int a=011; 十六进制:int a=0x34;
转移符:把有意义的字符转换为无意义的字符 如:char k='\\';
八种数据类型除了布尔型都可以自由转换,自动类型转换:低精度到高精度
强制类型转换:高精度到低精度(可能损失精度)
变量
变量:可以更改的数据,有名字的内存空间,可以复用该内存空间
变量分为全局变量,局部变量,静态变量,成员变量
而Java中用到的是局部变量,静态变量,成员变量
静态变量,成员变量定义在类中方法外(所以在类中都可以访问),局部变量定义在方法中
局部变量:当前方法中,直接写变量名调用
静态变量:类名、静态变量名,调用当前类中的静态变量,类名可省略
成员变量:对象.成员变量名
局部变量没有默认值,静态/成员变量有默认值
此外,今天也学习了算数运算符,关系运算符和位运算符,
算术运算符
+ , - * , / , %
++ : 自身加1,把值拿出来,+1 再放回去
-- : 自身-1
i++ 和 ++i 的区别
i++ : 先赋值 后+1
++i : 先+1 后赋值
优先级 :
单目运算符 > 双目 > 三目
i++ : 只有一个操作数 i 就是单目
i+b : 两个操作数 , i和b 就是双目
关系运算符:返回的都是boolean类型(true/false)
> , >= , < , <=
== : 判断两个值是否相等,
如果是基本类型则比较数值大小,
如果是引用类型则比较内存地址
!= : 不等于
位运算符:
& : 位与 两边都是true 结果才是true
| : 位或 , 一边为true 结果就是true
! : 位非 , 取反,true就是false, false就是true
^ : 位异或 , 两边不一样 就是true
&& : 短路与,且,和 & 一样,只不过 如果第一个就是false,结果一定是false,那么第二个条件就不执行
|| : 短路或,或, 和 | 一样, 只不过 如果第一个就是true,结果一定是true,那么第二个条件就不执行了
关于位运算符,我们要知道这道JAVA面试题:请问如何可以更快的计算出2的3次方 2<<2
>> : 右移运算(考虑符号位,就是再怎么移位,符号位不受影响)
<< : 左移运算(考虑符号位,就是再怎么移位,符号位不受影响)
>>> : 右移运算(不考虑符号位),只向最左边补0