记录下第一次面试。面的是 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的基本操作。
这个可以去看教程文档,然后也要多实操。
不过常用的操作也不是很多,后续也会专门写篇文章来总结下。
你有没有想问我的?
- 可以问问面试的部门是做什么的,技术栈是什么样的;既可以了解面试的部门,又表现出了求知欲。
- 别问薪资,私事,以及一些和面试职位无关的事。
- 当然,如果确实没有什么想问的,也可以客气礼貌地说“没有什么问题了”。
最后再给出一些我第一次面试的个人收获:
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht