19/3/27下午参加了博彦(西安)的Java技术岗笔试
题目比较简单,不过对我来说有些难,Java好久没碰过了。
根据后序和中序序列重建树,本来会的,但是做错了(遗憾)。
数据库操作有一个统计平均值并升序排序)(ordered by ... asc)选错了。
最后有一个
写结果的题(java版本,下面是c++版本)
int count = 0;
for(int i =0; i<5; i++)
{
count = count++;
}
cout << count << endl;
结果是1,因为后置自增是先赋值再自增,
所以,count先赋值0,在自增为1,但是它是作为一个右值(将亡值或者成为临时值),然后就被销毁了,count还是原来的0,循环5次还是0;
在C++中,会变成count++,所以结果会是5;而Java是0;
//结果:晚上打电话我关机了,没接到,打到我同学那里了(这点我觉得还是很好的),定第二天早上面试。
19/3/28参加了博彦(西安)的面试
我很怵,毕竟我是C++而不是Java。但还是硬着头皮上了。
上来先做自我介绍,我介绍了我自己,还有做过的一些小东西(俄罗斯方块,TCP的演示软件讲了下微软TTS语音合成引擎还有一个微信小程序);
聊了聊我做的基于微信小程序和百度云接口的密码管理器;问我怎么人脸识别怎么实现的,我大致说了一下用了百度云的接口;
为什么图片要base64编码?我不知道,说了安全性和大小;
了解base64编码吗?不知道
(后来查了查,优点:二进制转换成可打印的字符,方便进行传输;对数据进行简单加密;缺点:编码后(图片)体积会变大,会加大解码工作量)
接着问我本地的人脸库是怎么设计的?我说是后端的,本地只是存的一个对象,又问后端是怎么设计的,我说是百度云已经做好的,不用自己设计;
看了下我是20届实习的,就开始问基础了。
看你写单例模式了,讲讲单例模式吧,我讲了下单线程、多线程以及多线程怎么加索、加双重检查
没回答到点子上,又问了我单例怎么实现,我迟疑了一会,想到了懒汉和饿汉,讲了讲;
那抽象工厂呢?我不太熟,但是把自己的理解讲了讲。
又开始问数据结构,讲讲树吧,讲一种你熟悉的,我讲了红黑树还把它和AVL平衡二叉树比较了一下
又问算法,讲讲排序算法吧,我讲了将常用排序算法和复杂度(如冒泡、选择、简单、希尔、归并排序、堆排序)又补充了一下快排,和面试官借笔写了一下快排(一轮)的过程。
然后,最后一个问题是我对博彦了解多少?
我说了下大概,博彦是提供全球交付的服务的公司,主要是做微软的外包,面试官插我话说他们部门不是外包,是一个研发部门。感觉有点说错话了,所以赶紧往回拉了一下,说了创始人是北航的几个“老学长”,这里面试官也笑了。然后说了下博彦总部在北京,日本、美国的几个基地。
然后,他说“行”,然后......没了。
。。。黑人问号,不是该问我还有什么想问的吗?然后给我建议推荐书吗?怎么不按照剧本来呀......
后记:今天没抱什么没希望,我是C++选手,而博彦要的是Java的。第二次面试,第一次面对面面试,比较稳!但是答得还不错,比上次好。也算是有收获吧。
最后结果:
隔了好久打电话给我,说我过了面试。又过了好多天 hr 说西安不入职实习生,北京的技术总监又加面了一次,挂了。