Java基础随笔总结1-基本数据类型相关
基础记录,有备无患。
一、基础类型相关
1、八大基本类型图解

2、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
答:前者有错,s1是短整型,1是整型,s1+1也是整型,整型赋值给短整型需要做类型强制转换;
后者没错,因为+=操作有隐含的强制类型转换,s1 += 1相当于s1 = (short)(s1 + 1)。
3、float f=3.4;是否正确?
答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型会造成精度损失,因此需要强制类型转换float f =(float)3.4;或者写成float f =3.4F;。
4、swtich作用范围
答:早期的JDK中,switch(expr)中,expr可以是byte、short、char、int。从1.5版开始,Java中引入了枚举类型(enum),expr也可以是枚举,从JDK 1.7版开始,还可以是字符串(String)。长整型(long)是不可以的。
5、int 和Integer 有什么区别?
答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入不是对象的基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从JDK 1.5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。同时int的默认值是0,而Integer的默认值是null。
6、自动装箱相关问题
答:(1)
(2)
(看源码)简单的说,如果Integer字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象,所以上面的面试题中f1==f2的结果是true,而f3==f4的结果是false。越是貌似简单的面试题其中的玄机就越多。
7、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少?Math.round(-11.6)等于多少?
答:分别是12;-11;-12;四舍五入的原理是+0.5然后向下取整。

浙公网安备 33010602011771号