首页 > 大华Java开发电话面经
头像
内推荐秒回
编辑于 2020-09-22 16:25
+ 关注

大华Java开发电话面经

只记录了影响印象深刻的或者没有回答好的问题
一面(20分钟)
项目
Redis删除机制
其实有三种不同的删除策略:
(1):立即删除。在设置键的过期时间时,创建一个回调事件,当过期时间达到时,由时间处理器自动执行键的删除操作。
(2):惰性删除。键过期了就过期了,不管。每次从dict字典中按key取值时,先检查此key是否已经过期,如果过期了就删除它,并返回nil,如果没过期,就返回键值。
(3):定时删除。每隔一段时间,对expires字典进行检查,删除里面的过期键。
可以看到,第二种为被动删除,第一种和第三种为主动删除,且第一种实时性更高。下面对这三种删除策略进行具体分析。

for while替换:
for循环适用于已知循环次数,while循环适用于未知循环次数。
那么在已知循环次数时,最好选择for循环;
如果循环次数是未知的。最好选择while循环.
从内存角度考虑:
局部变量在栈内存中存在,当for循环语句结束,那么变量会及时被gc(垃圾回收器)及时的释放掉,不浪费空间;
如果使用循环之后还想去访问循环语句中控制那个变量,使用while循环。

三目运算符和ifelse
有无返回值
ifelse时间是三目运算符的2.6倍

switch类型
byte、String、int、char、short
java7以后,switch语句可以用在string类型上,从本质上讲switch对字符串的支持,其实底层也是int类型的匹配。它的原理如下:
通过对case后面的string对象调用hashcode()方法,得到一个int类型的hash值,然后用这个hash值来唯一标识这个case。
在匹配的时候,首先调用这个字符串的hashcode方法,得到一个hash值(int型),用这个hash值来匹配所有的case。
如果没有匹配成功,说明不存在;如果匹配成功了,接着会调用字符串的equals()方法来进行匹配。
由此看出,string变量不能是null,同时,switch的case子句中使用的字符串也不能为null。
这种方法可以使用string类型的变量也就是我们常说的语法糖。

中间件

大华二面(27分钟)
这个题当时木有做出来
整型转字节
public int Byte2Int(Byte[]bytes) {
return (bytes[0]&0xff)<<24
| (bytes[1]&0xff)<<16
| (bytes[2]&0xff)<<8
| (bytes[3]&0xff);
}


HR面(5分钟)哭了
因为个人在教室然后学校旁边在施工很吵,有点影响面试体验,但是HR小姐姐人很好,不知道五分钟还有没有希望
木有谈薪资啥的
许愿offer


更多模拟面试

全部评论

(5) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐