一场让我持续懵比的面试
今天面试回来,已经是10点。突然想去网吧写这一篇面试总结。今天面了3家,感觉还不错。同时也感谢掘金Java交流群、Android开发就业交流群、图灵Java技术交流群里面的大佬对我的鼓励。
第一家 XX科技
今天一大早就起来了,去洪山广场去面试。面试官拿着我的简历匆匆看了几眼,问我能不能上手做项目。于是乎,他指着苹果手机上类似一元云购的软件,问我能不能加个第三方登录和注册的功能。我说,给我时间看一下官方文档,应该是可以的。然后他把我带到了一个办公室,办公室有一张宽敞的桌子,上面摆着4台电脑,窗外的风景很是美丽。
他给我介绍团队,一共有3个人,一个是前端,另一个是美工,还有一个是运营。他先让我看一下项目的代码,看我是否能胜任。于是,我花了大概10分钟粗率的看了项目源码,大致的技术框架是SpringMVC,Spring,MyBatis,JPA,Mapper,PageHelper,Shiro,WebSocket等等。项目构架是用的Maven,部署用的服务器是阿里云。说实话,项目还是挺大的。对于实习生的我,在没有人跟我交接的情况下,理清这个项目的业务逻辑还是很吃力,但这也是时间问题。还有一些技术框架我也没有用过,但是我还是有信心能胜任。
对了,美工妹子长的还是不错的。可是我的女朋友比她还要漂亮。在观看源码的时候,我闻到了一股很严重的脚臭味。不知道是美工的脚还是前端的脚臭,简直熏死我了。
在这里说一下,面试官很年轻,是个小鲜肉,好像不懂技术,只在乎你能不能动手写项目。后来我叫面试官出来,想和他聊一下。我说了我的困惑,然后我拒绝了他。
那个不懂技术的面试官,给我开的薪资是4k,转正5K + 项目提成。第一,我感觉薪资有点低了。 第二,团队没有Java开发人员,看源码的时候,发现最早创建日期是2016初,看来项目有点历史了,我也不知道源码从哪来的。 第三,办公室有脚臭味。 第四,我希望团队里面有几个Java开发人员,能一起讨论技术,共同成长。 第五,我感觉这是一个黑外包,做的一元云购其实是游走在灰色地带了。百度一元云购可以搜索出来很多家破人亡的新闻。第六,我在观看源码的时候,发现有一个命名为Robot的包,里面的代码主要的逻辑是随机生成一定数量的机器人、机器人竞拍商品、机器人中奖该商品。第七,我感觉我技术还是很菜,还需要学习,目前还不能胜任独立开发。
第二家 XX科技
这家XX科技好像是去年成立的公司。公司整体装潢还是很不错,但是墙面有点开裂,甲醛味很重。公司里没有几个员工,留的空位子还是很多,看来很是缺人。
和我一起面试的有4个小伙伴,他们陆陆续续被HR叫出来面试了。和小伙伴的谈话中,了解到实习2.5K,转正3.5K,不包吃不包住,日常的任务是写静态页面,纯HTML那种。
我一直想不明白,为什么去面试的时候HR总是让你填写无关紧要的信息表。比如家属名字电话工作,身份证号等。
回归主题,当HR把我叫出来面试时,HR说,我看到你的自我介绍条理很清晰,不错。接着,HR就说公司的业务方向,噼里啪啦讲了好几句。然后我就开门见山的说,实习工资最低4K,转正工资最低6K。HR听了我的要求后,一言不发,默默的记了下笔记。离开的最后,我跟几位HR说了几句谢谢,然后开心的走出了大门。
于是乎,第二次面试就这样结束了。
第三家 XXXX电子股份有限公司
首先说笔试吧,笔试卷子上面写的是Java中高级题目,但是我做起来发现基本都是牛客网的原题。做起来,也没有什么压力。编程题做的不是特别好,答题的区域太小了,容不下我修修改改的代码。
还有就是Java核心库中一些方法名,参数顺序记得不是很清楚,总体来说编程题还是很基础的。
另外,我也希望这家公司能好好出笔试题,不要拿牛客网的原题敷衍了事。
接着说面试吧,感觉面试官准备的很充分,问的知识点很细很细,把我问懵逼了。(这里也呼应了主题,首尾呼应,升华主题)面试下来,大大小小的问题有几十个把。有些问题,我回答的意犹未尽,但是面试官却暗示我停下来。让我感觉有点不痛快啊!
下面就是面试官问我的一些问题
- Java语言的特性。
- Java语言的鲁棒性、和C++的区别。
- 说出基本数据类型,封装类型。
- 基本数据类型和封装类型的区别。
- int、byte,short占几个字节,取值范围是多少?
- 关键字Volatile的作用。
- final,finalize,finally 的作用和区别。
- 你所知道的单例模式,说一说优缺点。
- 实现多线程的方式,以及优缺点。
- 说一说线程中的状态。
- sleep()和wait()的作用和区别。
- 线程同步的方式。
- 说一说ThreadLocal。
- 说一说你知道的Java中数据结构有哪些?以及它们继承什么,之间的关系是什么。
- LinkedList是什么, ArrayList是什么,它们使用场景以及区别,它们的底层实现是什么。
- HashMap 和 Hashtable的区别。
- 讲一下AOP。
- 什么是IOC,DI?
- 动态代理的源码。
- 讲一下什么是Spring,以及实现的原理,源码。
- 讲一下什么是SpringMVC,以及实现的原理,源码。
- 讲一下SpringMVC处理请求流程。
- JDK代理和CGLIB代理的区别。
- 讲一下MVC,MVP,MVVM模式
- MyBatis调用存储过程,返回什么?
- 在一个类里面,如果一个方法没有加任何访问修饰符,它是什么?它的作用域?
- 讲一下堆区和栈区?
- 讲一下JVM中年轻代、年老代、方法代。说一说分别存放着什么?
- 有没有使用一些工具检测JVM中内存的分配。
- 讲一下垃圾回收机制。
- jQuery有哪些选择器。
- 说一说单链表的实现方式。
- 顺序存储结构和随机存储结构。
- SpringBoot是什么? 它和SpringMVC的区别是什么? 它有什么优点?
- 你做了什么项目,聊一下你最熟悉的项目。
- 你在以前公司干了什么,为什么要辞职?
- Http状态码
我只记得这些问题了。这些面试问题,我基本也回答上来了(其中不乏瞎扯),知识点问的很全面。这些笔试问题我都有所总结,回答上来自然水到渠成。我回答这些问题,都是尽我可能的去回答详细,表达清楚。因为我想在每一次面试中,锻炼自己的表达能力,同时也温故一下基础知识,查漏补缺。说了这么多,其实我在吹逼。
手写代码有点蛋疼,但是题目还是很基础的。
编程题目
- 基于泛型的Map实现10个英文单词的汉语翻译,即通过单词得到它的中文含义。考察泛型和Map的用法
- 字符串的一些处理。主要考察equals(),StringBuffer,replace()的用法。
- java中怎么计算两个日期之间的天数。主要考察getTime(),SimpleDateFormat,parse()的用法。