Java开发实习生面试—附简历以及面试题

记录下第一次面试。面的是 Java开发实习生。

前些天注册了BOSS直聘,简单填了下资料。(其实还没准备找实习,就是上去看看行情~)

结果过了几天,(12月29号,星期五下午) ,突然有个招Java开发实习生的公司问我要简历。

(其实当时我都还没有准备简历,然后临时赶紧准备了个简历,连照片都是寝室里拍的,然后P成了证件照。)

(我这里的简历不够完善,比如项目经历什么的没写,记得把项目经历写上!获奖经历也加上!)

(最近好像秋招找简历的人比较多,这张简历太简陋了,这里提供了一张新的简历,虽然也还是一般,不过添加了项目经历,可以参考下 ?? 点击查看简历****)

给了简历之后,那天晚上,就和我约了面试。约的是星期天(因为我想去准备两天)。

然后就加了微信,然后把我和另一个人(后来是他面的我,姑且叫他面试官,目测是个技术人员)拉了个群。

结果,面试官突然和我约第二天中午(12.30)面试。

然后我居然还答应了,没办法了,硬着头皮刚。

综上所述,这不仅是我第一次面试,还是个毫无准备的面试。不过还是收获了一些东西。

下面来看看面试过程:

(一些无关紧要的对话我就不记录了)

  1. 你先做个自我介绍,我看下你的简历。
  2. 你有没有写过什么项目?
  3. 什么是分布式系统,分布式系统有什么好处?
  4. SpringMVC 原理,执行过程。
  5. 后台怎么接收Json?
  6. Java 集合的类型。
  7. Nginx是什么 以及 Nginx集群负载均衡。
  8. Linux的常用命令,基本操作。
  9. Solr 介绍、基础使用。
  10. Redis支持的数据类型。
  11. Maven 是干什么的?
  12. Git的基本操作。
  13. 你有没有想问我的?

面试问的就这些。

因为一点都没准备,所以我答的很不好。( 没有意外,面试应该挂了。)

下面整理一下其中一些面试题目,下次再遇到的时候,就可以答上来了。

什么是分布式系统,分布式系统有什么好处?

分布式系统概念:分布式系统是由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统。具有高度的内聚性和透明性。

分布式系统的好处/优点:

  1. 可靠性高、容错性高
    一台服务器的系统崩溃不会影响到其他服务器的运行。
  2. 扩展性好
    分布式系统中可以根据需要增加服务器。
  3. 灵活性
    容易添加新的服务。
  4. 高性能
    性能比传统架构好,且性价比高
  5. 技术多样且开放。

顺便说一下缺点:

  1. 架构设计复杂。
  2. 管理和运维复杂。
  3. 部署复杂。

SpringMVC 原理,执行过程。

SpringMVC原理:SpringMVC以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。

执行过程:

  1. 客户端(浏览器)发送请求,请求提交到DispatcherServlet。
  2. DispatcherServlet调用HandlerMapping查询请求信息,找到对应的Controller。
  3. DispatcherServlet调用对应Controller
  4. Controller会根据请求信息来调用Service,Service会处理相应的业务逻辑。
  5. Service处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。
  6. DispatcherServlet调用ViewResolver,ViewResolver 会根据逻辑View查找实际的View。
  7. DispaterServlet把返回的Model传给View。
  8. 通过View返回处理结果给请求者客户端(浏览器)并显示

后台怎么接收Json?

  1. 通过HttpServletRequest接收
  2. 使用@RequestParam
  3. 使用@RequestVariable
  4. 使用@RequestBody
  5. 使用@ModelAttribute

Java 集合的类型。

这个看图比较清楚。

Nginx是什么 以及 Nginx集群负载均衡。

Nginx:Nginx是一个高性能的HTTP和反向代理web服务器,也提供了电子邮件代理服务器功能。

Nginx集群负载均衡:当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群,然后使用nginx做反向代理,多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

Linux的常用命令,基本操作。

这个可以去找常用命令的文档,然后多敲敲,记得深刻些。

总结的一些常用Linux常用基础命令:Linux常用基础命令

Solr介绍以及基础使用。

solr是基于Lucene的,主要用作全文检索。全文检索技术还有ElasticSearch。
基础使用的话,后续会专门写一篇。

Redis支持的数据类型。

  1. String(字符串)

  2. hash(哈希)

  3. list(列表)

  4. set(集合)

  5. zset (sorted set:有序集合)

Maven 是干什么的?

Maven 是项目构建、版本和依赖管理工具。

Git的基本操作。

这个可以去看教程文档,然后也要多实操。

不过常用的操作也不是很多,后续也会专门写篇文章来总结下。

你有没有想问我的?

  1. 可以问问面试的部门是做什么的,技术栈是什么样的;既可以了解面试的部门,又表现出了求知欲。
  2. 别问薪资,私事,以及一些和面试职位无关的事。
  3. 当然,如果确实没有什么想问的,也可以客气礼貌地说“没有什么问题了”。

最后再给出一些我第一次面试的个人收获

  1. 面试官会按照简历上的问,保证写在简历上的你都比较熟悉。
    看下我写的简历,再看下面试官问的,应该能看出来,大部分问题是按照我的简历上写的来问的。
    而且面试官当时也告诉我,他会按照我简历上写的来问我。
    所以,这告诉了我们 : 你要保证你写在简历上的你都熟悉,能说个一二!不然就是给自己挖坑啊。
  2. 不打无准备之战,不面无准备之试;时刻准备好,机会随时会来。
    我这一点都没准备就去面试了,后果就是问的虽然都学过,但都记不清楚了。
    就有点像期末不复习就去考试,挂的可能性非常大,除非学的特别好的科目。
  3. 不用太紧张
    我碰到这个面试官就挺好的,我想不起来的时候,还会给我提个醒。
    后面还给了我一些学习的建议。
  4. 把基础打好
    基础扎实了,学习东西来更快,理解的也会更深。

你可能感兴趣的:(面试,学习路线,阿里巴巴,java,面试,开发语言,python)