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然后向下取整。

posted @ 2017-07-26 15:55  没有理想的人不伤心  阅读(86)  评论(0)    收藏  举报