南昌Android培训
达内南昌中心

13732203138

热门课程

数据类型和 Java 基础面试问题

  • 时间:2018-01-17
  • 发布:南昌达内
  • 来源:达内教育

17)Java中应该使用什么数据类型来代表价格?
如果不是特别关心内存和性能的话,使用BigDecimal,否则使用预定义精度的double类型。

18)怎么将byte转换为String?
可以使用String接收byte[]参数的构造器来进行转换,需要注意的点是要使用的正确的编码,否则会使用平台默认编码,这个编码可能跟原来的编码相同,也可能不同。

19)Java中怎样将bytes转换为long类型?
这个问题你来回答:-)

20)我们能将int强制转换为byte类型的变量吗?如果该值大于byte类型的范围,将会出现什么现象?
是的,我们可以做强制转换,但是Java中int是32位的,而byte是8位的,所以,如果强制转化是,int类型的高24位将会被丢弃,byte类型的范围是从-128到128。

21)存在两个类,B继承A,C继承B,我们能将B转换为C么?如C = (C) B;


22)哪个类包含clone方法?是Cloneable还是Object?
java.lang.Cloneable是一个标示性接口,不包含任何方法,clone方法在object类中定义。并且需要知道clone()方法是一个本地方法,这意味着它是由c或c++或其他本地语言实现的。

23)Java中++操作符是线程安全的吗?(答案)
23)不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差。

24)a = a + b与a += b的区别(答案)
+=隐式的将加操作的结果类型强制转换为持有结果的类型。如果两这个整型相加,如byte、short或者int,首先会将它们提升到int类型,然后在执行加法操作。如果加法操作的结果比a的最大值要大,则a+b会出现编译错误,但是a += b没问题,如下:
byte a = 127;
byte b = 127;
b = a + b; // error : cannot convert from int to byte
b += a; // ok
(译者注:这个地方应该表述的有误,其实无论a+b的值为多少,编译器都会报错,因为a+b操作会将a、b提升为int类型,所以将int类型赋值给byte就会编译出错)

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

26)3*0.1 == 0.3将会返回什么?true还是false?(答案)
false,因为有些浮点数不能完全精确的表示出来。

27)int和Integer哪个会占用更多的内存?(答案)
Integer对象会占用更多的内存。Integer是一个对象,需要存储对象的元数据。但是int是一个原始类型的数据,所以占用的空间更少。

28)为什么Java中的String是不可变的(Immutable)?
Java中的String不可变是因为Java的设计者认为字符串使用非常频繁,将字符串设置为不可变可以允许多个客户端之间共享相同的字符串。更详细的内容参见答案。

29)我们能在Switch中使用String吗?
从Java 7开始,我们可以在switch case中使用字符串,但这仅仅是一个语法糖。内部实现在switch中使用字符串的hash code。

30)Java中的构造器链是什么?
当你从一个构造器中调用另一个构造器,就是Java中的构造器链。这种情况只在重载了类的构造器的时候才会出现。

上一篇:JVM 底层 与 GC(Garbage Collection) 的面试问题
下一篇:Java 面试中的重要话题

CSS基础面试题,前端收

搞定9个Java面试技巧帮你稳拿年薪20W

简历这样写,面试电话接到手软 ?

速收!12道Linux运维必备经典面试题

选择城市和中心
贵州省

广西省

海南省