面试问题整理

2017-08-04  本文已影响13人  爱言语论

面试题来源:http://www.jianshu.com/p/97c279db3c34

1.Java基本的数据类型有哪些?

自己的回答: byte short int long boolean float double

标准答案 http://www.cnblogs.com/123hll/p/5805040.html

一种字符类型(char):    char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。    注意事项:    不能为 0个字符。

2.给一段你认为计算 2 * 8 最高效的代码

使用移位算法:2<<3。在计算机里 2表示为 10。移位的话就是2进制在后面加0,当然比较快。楼主想想看,2进制后面+0,就是等于*2了。所以+3个0就是*8

3.final,finally,finalize的区别?

参考答案:http://blog.csdn.net/lichaohn/article/details/5424519

总结:final,如果一个变量或方法参数被final修饰,就表示它只能被赋值一次;fially只能用在try/catch语句中,并且附带着一个语句块,表示这段语句最终总是被执行;finalize,它是一个方法,属于java.lang.Object类,finalize()方法是GC(garbage collector)运行机制的一部分。

4.short s1= 1; s1 = s1 + 1; 该段代码是否有错,有的话怎么改?

   short s1= 1; s1 += 1; 该段代码是否有错,有的话怎么改?

参考:https://zhidao.baidu.com/question/495519235579419364.html

前面一句中,s1=s1+ 1需要进行强转,写成s1= (short)(s1 + 1)。

后面一句没错。

上一篇 下一篇

猜你喜欢

热点阅读