public static void main(String[] args) { String[] args的作用是什么?运行时命令行参数
浮点数float精度表示在小数点后6位。同时,小数与整数在内存中储存时,储存方式是不一样的。小数是没有精确值的。java是一种强类型语言,C语言是一种弱类型语言。
布尔类型是没有明确的大小的。
1 | 2 | 2 | 4 | 8 | 4 | 8 | 没有规定 | 字节数 |
---|---|---|---|---|---|---|---|---|
byte | char | short | int | long | float | double | boolean | 数据类型 |
Byte | Character | Short | Integer | Long | Float | Double | Boolean | 包装类 |
小于4个字节的数据类型在运算时会发生类型的提升。
类型的变换分为两种:
隐式类型变换:把一个小类型数据给大类型数据
显式类型转换:把一个大类型数据给小类型数据,需要强制转换
总结:
1.
不同数字类型的变量之间赋值
,
表示范围更小的类型能隐式转换成范围较大的类型
.
2.
如果需要把范围大的类型赋值给范围小的
,
需要强制类型转换
,
但是
可能精度丢失
.
3.
将一个字面值常量进行赋值的时候
, Java
会自动针对数字范围进行检查
.
移位运算:
位运算的速度是大于*的。
1.左移:补0就好。左移相当于乘法。
0000 1011 1*2^3+1*2^1+1*2^0=11
0001 0110
1*2^4+1*2^2+1*2^1=22
0010 1100 1*2^5+1*2^3+1*2^2=44
2.右移:补符号位。右移相当于除法。
0000 1011 11
0000 0101 5
0000 0010 2
3.无符号右移。只补0.
注意,没有无符号左移
nextLine()与next()的区别是什么?
next()遇到空格就会结束掉。
面试问题:不能做switch参数的类型有哪些?
long、float、double、boolean(整数|枚举|字符|字符串)