一份简单的Java基本数据类型基础面试题

开课吧开课吧锤锤2021-06-25 14:41

    自Java于1996年发布以来,基本数据类型就是Java语言的一部分。通过对使用基本类型而不使用基本类型做Java基准测试,JohnMoore对为什么Java中要保持基本数据类型做了很好的解释。随后,他将Java与Scala、C++和JavaScript进行了比较,并将其应用于特定的应用类型。使用基本数据类型对这些应用程序的性能有很大的不同。

Java

    问:如下程序语句有什么问题吗?

shorts1 =1;
s1 = s1 +1;      //1
short s2 = 1;
s2 +=1;    //2

    答:对于注释1来说,在s1+1运算时会自动提升表达式的类型为int,所以将int赋予给short类型的变量s1会出现类型转换错误(无法编译,IDE提示错误),除非主动加上强转。对于注释2来说+=是Java语法规定的运算符,所以Java编译器会对它进行转换特殊处理,故可以正确编译执行。

    问:Java中char类型变量能不能储存一个中文的汉字,为什么?

    答:Java的char类型变量是用来储存Unicode编码字符的,Unicode字符集包含了汉字,所以char类型自然就能存储汉字,但是在某些特殊情况下某个生僻汉字可能没有包含在Unicode编码字符集中,这种情况下char类型就不能存储该生僻汉字了。

    问:Java的Integer和int有什么区别?

    答:int是Java内置基本数据类型之一,Java为每个基本类型都提供了一个封装类,Integer就是int的封装类(也叫包装类型);int变量的默认值为0,Integer变量的默认值为null,所以Integer可以区分出未赋值和值为0的区别;Integer类内部提供了一些关于整数操作的方法,例如上文用到的表示整数的最大值和最小值。

    问:Java的switch语句能否作用在byte类型变量上,能否作用在long类型变量上,能否作用在String类型变量上?

    答:由于byte的存储范围小于int,可以向int类型进行隐式转换,所以switch可以作用在byte类型变量上;由于long的存储范围大于int,不能向int进行隐式转换,只能强制转换,所以switch不可以作用在long类型变量上;对于String类型变量在Java1.7版本之前不可以,1.7版本之后是可以的。

    问:能否在不进行强制转换的情况下将一个double值赋值给long类型的变量?

    答:不行,我们不能在没有强制类型转换的前提下将一个double值赋值给long类型的变量,因为double类型的范围比long类型更广,所以必须要进行强制转换。

    问:Java中3*0.1==0.3将会返回什么?true还是false?

    答:false,因为浮点数不能完全精确的表示出来,一般都会损失精度。

    问:Java中floatf=3.4;是否正确?

    答:不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换floatf=(float)3.4;或者写成floatf=3.4F;才可以。

    以上就是开课吧广场小编为大家整理发布的“一份简单的Java基本数据类型基础面试题”一文,更多Java面试相关内容尽在开课吧广场Java面试频道!

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享