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 说西安不入职实习生,北京的技术总监又加面了一次,挂了。