记一次天猫营销部面试(java)
接到面试电话太紧张是真的耽误事儿
昨天早上十点接的电话,约我今天晚上或者明天面试有时间吗,我一激动,就说今天有,就定到了晚上七点,现在想想,如果约的时候镇定点订到第二天可能准备的会更好一些··
开始面试
晚上七点准时开始面试,一开始,就让我自我介绍,这里其实我就介绍的太简单了,只是说了一下自己的学校,专业,主要搞java,还介绍了一下校内的课程,再简单说了一下自己决定选择java的理由,然后就有点不知道说什么了,对面等了一会会儿还问就这些了?我说嗯,,,然后就开始提问了。
总结了一下,按顺序是这么问的:
-
项目
我的简历上有两个项目,一个代码审计项目还有一个旅游航班管理系统,果然一上来就问我这两个项目的事情…先让我自己选一个项目进行介绍,我选的是代码审计,这个项目是集体项目我负责的是从GIT地址或者zip形式或者rar形式的压缩包中获取代码并且保存到本地,后需要完成扫描,判定是否有sql注入漏洞或者xss攻击漏洞。
他问了我这几个问题:1、什么是sql注入和xss攻击?这个答出来了,还举了例子,比较满意。
2、用到了什么架构知识?这个就回答的spring相关的,他没太仔细问
3、怎么实现这两个漏洞的扫描?这个没答出来,,,其他人负责部分的源码我都没好好看痛哭流涕
4、当我通过压缩包获取代码的时候怎么保证压缩包本身的安全问题?会不会有病毒?
答得不是很好
5、我负责的这一部分代码做的时候遇到了什么难题?怎么解决的?
说了一些关于内存占用的问题,,,想把他往线程那边引,成功了2333 -
项目完了直接开始Spring
1、介绍spring的两大特性,就是IOC和AOP,这个问题我只介绍完一个AOP他就说可以了不用往下说了,IOC就没说。因为这个地方还给他讲了一下动态代理的两种实现他可能觉得不错就没往下问。
2、介绍下Spring Cloud,说一说这种微服务和中心服务的区别,再介绍一下他的组件。这个有准备过所以答上来了不过不流畅吧,,, -
之后是多线程方面的
1、说一下线程池有哪些参数并且有什么用。
2、说一说实现多线程有几种方法。
这俩全靠死记硬背
3、问我什么时候会用到多线程,我就直接举例聊天室小程序给他说了一下,然后他就问到我我使用了什么技术来实现的呢?好吧顺利扯到了socket,然后就不可避免的到了网络协议。 -
网络
这个地方应为准备的充分所以说的比较多,他一开始只问了TCP协议在哪一个层,我回答完,他就接着问我三次握手具体讲一下,我讲完接着把四次挥手也说了一遍,还说了一下最后一个close_wait状态的作用,他挺满意的,之后问我在聊天室小在程序里用了udp马2,我说用了,然后就是TCP和UDP的区别,这些都答出来了。
-
数据库
说实话这个地方是真的不好回答,他问我对数据库的了解程度,我说我了解数据库的事务,回滚,内连接外连接左右连接,他问:
1、知不知道乐观锁和悲观锁?他们的具体实现,我只说出来乐观锁,悲观锁他问我是不是没用过我说是。。。
2、问我数据库的锁是加在什么上面,我给他说了表级锁,行级锁和页面锁的区别没结果把前两个记反了被他提醒了,,,,,, -
设计模式
1、先说出知道多少种设计模式;我说了好多他叫停了应该是可以
2、自己常用的设计模式?我说了单例模式和工厂模式
3、详细说一说单例模式的实现,我直接说的代码
4、Spring里用到的是什么模式?这个没答出来,,,
5、知不知道懒汉模式和饿汉模式?详细说一说,这个说出来
这时候突然会过去问我第二个项目的事,我说亮点是使用了Gradle来管理依赖,我以为他会问gradle的事结果没问
-
JVM
了解回收机制吗?
知道几种回收算法?熟悉集中?
怎么判定这个资源是要回收的还是不回收的?
灵魂三问,,,勉强答出来了,他看的出来我这不行也就没再问。。
然后我又说了一些新生代老生代的东西,就结束了。