面试问题整理

面试题来源: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)。

后面一句没错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容