实习生面试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ssandl_123/article/details/88775508

2019-03-22 阿里电话面试(JAVA后台)

时间上稍微有点突然,因为刚刚在网上投了岗位,然后正在写阿里的素质测评的时候接到的电话。

首先问的是这两年的经验,因为是信号方向,所以大致问了研究方向的一些算法,然后被说就这么简单,惭愧。

然后问的是项目有关内容,介绍简历中最有特色的一个项目,有什么特点。我回答的是医院挂号系统中,数据库设计的时候有关医生的排班时间和挂号剩余数量在设计字段的时候稍微采取了一些小技巧,把每个医生的每日挂号剩余数目用特殊字符拼接成一个特殊字符,最后读出来以后再进行解析。然后又问了,如果使用的人很多,每次都要读取并且解析怎么办。想了一下,那就还是用一个缓存机制放在服务器中,然后被问用什么缓存机制,是放在内存、硬盘还是哪里。这个时候有点拿不准,本打算的是放在内存,但是也有点担心会不会数据量太大,然后大致算了一下,如果一个医生有20天的数据,每个数据是一个short,占2byte,有10万医生,大概会耗4mb左右,想起来不算很大,所以就这样回答了(有点想知道其他有没有好的解决方案)。

因为项目用过SpringMVC所以问了MVC代表什么,SpringMVC的核心(是什么内核让整个流程正常运转)。

聊到这两年没有写项目,而是在看书,所以问了有没有看effective系列的书。(没看,但是之后去了解了一下,有点意思,争取找时间看一看)。

问最熟悉的语言,我回答是Java和C++,然后让我选一个,我就抛弃c哥了(因为想想一些很基本的内容,记不起来了)。问了Java虚拟机了不了解,有哪些内存空间,new的对象放在哪个空间(完全不知道,事后已经补好),线程池的实现,IO操作(还有一些内容忘记了)。

算法问题,一,去除字符串中重复出现的字母,会产生消除后如果两边内容重复,继续消除的效果,所以和之前有一次机试的题还不太一样,我想的算法大概是:字符串从左到右一个遍历,然后在每个字符中通过向左的循环找到前一个有效的值,然后进行对比,情况最早的话就是O(N^2)。(以后再看看有没有更有效的算法)

算法问题二,给2N+1个整数值,其中有N个值是成对出现,有1个值是单独的,这些数值是乱序且没有大小要的。当时一听,觉得好意思的题,但是一点思路都没有。咋个办。我就开始天马行空胡思路想。然后想了个方法,先遍历一遍,每个内容放到一个hashSet中,如果有同样的key的时候,就把之前的HashSet的项删掉,如果没有就加入一个项,遍历一遍以后就可以知道哪个是多的了。但是这个对空间复杂度的要求是O(N)。然后面试官问有没有其他的思路,绞尽了脑汁,我就又走上了老套路,嗯,先进行一个排序,然后在比一下。(其实当时我也是在想,这样会占空间2N+1,但是面试官的意思是这个空间好像是之前存储这些数值的空间,也就不算在空间复杂度里了)(好奇有没有其他什么有意思的解法)。

2019-03-20 字节跳动(前端)

有些忘记了,首先开始也是项目介绍,然后问技术。

JS问了对es5/es6有没有了解(好像是不同版本的js,惭愧,我没有听过)。问了常见题,js的for循环里面有setTimeOut函数,使用了for循环的i值做参数,问输出会是什么,问为什么(var和let的区别),应该怎么改实现for循环的内容每隔100ms进行一次(想了想,没想起来看的解析,然后说用sleep函数,面试官告诉我js里面没有sleep函数,问了面试官以后说可以用promise函数或者回调的做法)。问了不了解正则,让写一个邮箱的正则表达式(天,我忘了正则元素的使用,只好说了一个大致的思路)。

问了css样式表的优先级。

算法问题一:斐波那契梳理的缓存实现,用了JAVA的ArrayList和一个静态对象,用了add(value)和get(index)函数

算法问题二:快排的实现,原理能理解,但是代码有点模糊,导致最后没有写好。

最后问了问面试官,他觉得我基础不扎实,停留在能够用的阶段,惭愧,我要好好去准备这些基础内容了。

其他需要看的内容:大数据(超过基本数据类型的范围)的运算;数据库连接池。

 

猜你喜欢

转载自blog.csdn.net/ssandl_123/article/details/88775508