1.基本数据类型定义直接把值放在栈内存空间里
2.引用数据类型是在栈内存空间里存该数据类型值存放在堆内存中的首地址
3、8种基本数据类型
整形 byte 1字节 short 2字节 int 4字节 long 8字节 L结尾
浮点型 默认为double float 结尾加F
十进制数形式: 5.12 512.0F
科学计数法: 5.12e2 == 5.12*10^2
布尔型 boolean true false
不相同于C语言,不可用零和非零来代替true 和 false
字符类型 char 英文状态下的单引号括起来的单个字符
斜杠 / 反斜杠\
换行 \n
char类型是可以进行运算的,每个char字符都有一个对应的Unicode值
Unicode: a 97
数据类型容量大小排序
byte->short->int->long->float->double
char->int->long->float->double
自动类型转换(小杯子的水可以装进大杯子)
强制类型转换(大杯子里的水倒进小杯子):溢出,丢失精度
注意:直接给byte类型的变量赋值为一个合法范围内的数值,可以通过编译
直接给float类型的变量赋值一个合法范围内的浮点型,不能通过编译
多种数据类型混合运算时,系统首先自动将所有数据类型转换成容量最大的那种数据类型,然后进行运算
不兼容的类型之间不能转换
String字符串不能直接转换为基本类型 需要通过包装类的函数来进行转换
boolean类型不可转换为其他的数据类型
byte short char 之间不会相互转换,三者在计算时首先转换为int类型
4、引用数据类型
class 类
interface 接口
[] 数组
数据值存放在堆内存中 引用数据类型名称在栈内存存放堆内存中的首地址
5、进制
二进制 满二进一 0B
八进制
十进制
十进制转二进制 除于2取余
二进制转10进制 乘2的幂
15的二进制为1111转10进制,由后向前
1*2^3 + 1*2^2 + 1*2^1 + 1*2^0
十六进制
所有数字在计算机底层都以二进制形式存在
源码
反码:源码除最高位不变,其余位数取反
补码:反码加1
计算机以补码的形式保存所有的整数
5、算术运算符
% 取模 如果模数为负数,结果不考虑负号
被模数为负数,则先对其绝对值进行取模运算,结果加一个负号。
整数之间做除法时,结果只保留整数部分而舍弃小数部分
+ 号除了能将字符串相加外,还能把非字符串转换为字符串
6、比较运算符 结果返回的是boolean类型的值
instanceof 检查是否是类的对象
7、逻辑运算符
& 与 全真才真,有假则假
| 或 全假才假,有真才真
^ 异或 两边表达式不相同 为true否则为false
!非 boolean值取相反
&& 短路与 全真才真,有假则假 【出现false则不进行短路与后面表达式的值】
|| 短路或 全假才假,有真则真【出现true则不进行短路或后面表达式的值】
8、位运算符
<< 左移
int c = 5;
System.out.println(c << 2);
>> 右移
& 位运算符
1 & 1为1,否则为0
| 运算符
0 | 0 为0,否则为1
^ 运算符
异或 两边值不相等为1否则为0
9、三元运算符
条件表达式 ? 表达式2 : 表达式3;
条件表达式的值为boolean类型,true则返回表达式2 否则返回表达式3
更新时间:2016年9月10日