记录下第一次面试。面的是 Java开发实习生。
前些天注册了BOSS直聘,简单填了下资料。(其实还没准备找实习,就是上去看看行情~)
结果过了几天,(12月29号,星期五下午) ,突然有个招Java开发实习生的公司问我要简历。
(其实当时我都还没有准备简历,然后临时赶紧准备了个简历,连照片都是寝室里拍的,然后P成了证件照。)
(我这里的简历不够完善,比如项目经历什么的没写,记得把项目经历写上!获奖经历也加上!)
(最近好像秋招找简历的人比较多,这张简历太简陋了,这里提供了一张新的简历,虽然也还是一般,不过添加了项目经历,可以参考下 👉 点击查看简历 )
给了简历之后,那天晚上,就和我约了面试。约的是星期天(因为我想去准备两天)。
然后就加了微信,然后把我和另一个人(后来是他面的我,姑且叫他面试官,目测是个技术人员)拉了个群。
结果,面试官突然和我约第二天中午(12.30)面试。
然后我居然还答应了,没办法了,硬着头皮刚。
综上所述,这不仅是我第一次面试,还是个毫无准备的面试。不过还是收获了一些东西。
下面来看看面试过程:
(一些无关紧要的对话我就不记录了)
- 你先做个自我介绍,我看下你的简历。
- 你有没有写过什么项目?
- 什么是分布式系统,分布式系统有什么好处?
- SpringMVC 原理,执行过程。
- 后台怎么接收Json?
- Java 集合的类型。
- Nginx是什么 以及 Nginx集群负载均衡。
- Linux的常用命令,基本操作。
- Solr 介绍、基础使用。
- Redis支持的数据类型。
- Maven 是干什么的?
- Git的基本操作。
- 你有没有想问我的?
面试问的就这些。
因为一点都没准备,所以我答的很不好。( 没有意外,面试应该挂了。)
下面整理一下其中一些面试题目,下次再遇到的时候,就可以答上来了。
什么是分布式系统,分布式系统有什么好处?
分布式系统概念:分布式系统是由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统。具有高度的内聚性和透明性。
分布式系统的好处/优点:
- 可靠性高、容错性高
一台服务器的系统崩溃不会影响到其他服务器的运行。- 扩展性好
分布式系统中可以根据需要增加服务器。- 灵活性
容易添加新的服务。- 高性能
性能比传统架构好,且性价比高- 技术多样且开放。
顺便说一下缺点:
- 架构设计复杂。
- 管理和运维复杂。
- 部署复杂。
SpringMVC 原理,执行过程。
SpringMVC原理:SpringMVC以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。
执行过程:
- 客户端(浏览器)发送请求,请求提交到DispatcherServlet。
- DispatcherServlet调用HandlerMapping查询请求信息,找到对应的Controller。
- DispatcherServlet调用对应Controller
- Controller会根据请求信息来调用Service,Service会处理相应的业务逻辑。
- Service处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。
- DispatcherServlet调用ViewResolver,ViewResolver 会根据逻辑View查找实际的View。
- DispaterServlet把返回的Model传给View。
- 通过View返回处理结果给请求者客户端(浏览器)并显示
后台怎么接收Json?
- 通过HttpServletRequest接收
- 使用@RequestParam
- 使用@RequestVariable
- 使用@RequestBody
- 使用@ModelAttribute
Java 集合的类型。
这个看图比较清楚。
Nginx是什么 以及 Nginx集群负载均衡。
Nginx:Nginx 是一个高性能的HTTP和反向代理web服务器,也提供了电子邮件代理服务器功能。
Nginx集群负载均衡:当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群,然后使用nginx做反向代理,多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
Linux的常用命令,基本操作。
这个可以去找常用命令的文档,然后多敲敲,记得深刻些。
总结的一些常用Linux常用基础命令:Linux常用基础命令
Solr介绍以及基础使用。
solr是基于Lucene的,主要用作全文检索。全文检索技术还有ElasticSearch。
基础使用的话,后续会专门写一篇。
Redis支持的数据类型。
String(字符串)
hash(哈希)
- list(列表)
- set(集合)
- zset (sorted set:有序集合)
Maven 是干什么的?
Maven 是项目构建、版本和依赖管理工具。
Git的基本操作。
这个可以去看教程文档,然后也要多实操。
不过常用的操作也不是很多,后续也会专门写篇文章来总结下。
你有没有想问我的?
- 可以问问面试的部门是做什么的,技术栈是什么样的;既可以了解面试的部门,又表现出了求知欲。
- 别问薪资,私事,以及一些和面试职位无关的事。
- 当然,如果确实没有什么想问的,也可以客气礼貌地说“没有什么问题了”。
最后再给出一些我第一次面试的个人收获:
- 面试官会按照简历上的问,保证写在简历上的你都比较熟悉。
看下我写的简历,再看下面试官问的,应该能看出来,大部分问题是按照我的简历上写的来问的。
而且面试官当时也告诉我,他会按照我简历上写的来问我。
所以,这告诉了我们 : 你要保证你写在简历上的你都熟悉,能说个一二!不然就是给自己挖坑啊。 - 不打无准备之战,不面无准备之试;时刻准备好,机会随时会来。
我这一点都没准备就去面试了,后果就是问的虽然都学过,但都记不清楚了。
就有点像期末不复习就去考试,挂的可能性非常大,除非学的特别好的科目。 - 不用太紧张
我碰到这个面试官就挺好的,我想不起来的时候,还会给我提个醒。
后面还给了我一些学习的建议。 - 把基础打好
基础扎实了,学习东西来更快,理解的也会更深。