上期面试题:
第一题是对于Java运算符的考核,位运算符主要是针对二进制,整型(byte、char、short、int、long)数据类型的二进制进行的移位操作。运算符其中有以下几种:
在Java基础中,位运算符可能是比较难理解的且可读性不强,但是在Java一些源码中,我们会发现很多这样的操作,因为普遍认为基于二进制的运算会比数字直接进行运算要快
第二题是对于Java内存考核,说起内存和性能的优化可能有点唬人,但是我们要从根源考虑就会有思路,内存的优化一般会跟对象有关系,所以我们需要避免建立无用的对象,而性能更多的就是代码层面上体现,比如异常机制,自动拆装箱。所以我们想合理利用内存和CPU来提高性能和节约成本,就需要在使用Java开发的过程中,尽量写出合理的代码,比如减少对象的创建,能使用基本数据类型就尽量不要用对象,弃用一些Java类(比如HashTable)......
第三题是对集合框架的考核,回答这个问题需要我们对于ArrayList的扩容机制有一定的了解,在ArrayList中扩容只是一个表象,在内部实际上但是实际上我们是改变了数组的引用,换句话说就是用新容量的数组替代旧的数组,我们可以通过grow()方法进行源码追踪
第四题考察的是JS,对于Java开发来说了解前端的东西是非常正常的一件事情,实际上Java和JavaScript语法是相似的,在JS中我们想获得日期,new Date()得到的格式是:Mar 31 10:10:43 UTC+0800 2012。Java中提供格式化的类,但是JavaScript没有现成的方法,如果想要指定的格式就需要我们自己去写一个方法进行转换。
面试题答案
面试题详细答案都在题库里面,如果不是最新的题目,大家可以使用题库的搜索功能,来看看吧......