java基础盲点归纳
Java中的字符可以存储一个汉字吗?为什么呢?
char两个字节,用Unicode编码 汉字在unicode码中就可存储
定义long类型数据的时候,建议加上L或者l。推荐L
定义float类型数据的时候,建议加上F或者f。推荐F
long l=1000000L; float f=1000000F;
隐式转换:从小到大
byte,short,char --> int --> long --> float --> double
long为什么可以到float呢?
A:因为long和float的底层存储结构不同。
B:数据范围
long: 2^63
float: 3.410^38
3.4*10^38 > 3.4*8^38 = 3.4*2^3^38 = 3.4*2^114 > 2^63*
short s = 1; s = s + 1; short s = 1, s +=1;
隐式转换:把左边和右边的结果赋值给左边,并强制转换为左边的类型。
+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换所以将一个int类型赋给short就会出错,
s+=1不同,由于是+=操作符,在解析时候s+=1就等价于s = (short)(s+1),反过来讲就是 s+=1 等价于 s = (s的类型)
请用最有效率的方式计算2乘以8的值
2<<3
switch()中支持的类型
表达式的取值
byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
default可以放中间,但是要加break;只有最后一句可以省略break;
default放中间不影响逻辑,但是放最后看着最舒服(:з」∠)
boolean b=true;//只有当b是boolean类型时 才可以用=号 此时if内始终为false if(b=false)//b被赋值false并且此括号内始终为false