记一次面试及总结:上海春翔网络科技有限公司

地点在上海的春秋国际大厦,由于中途电动车没电了换骑自行车到的,导致我迟到了好几分钟,所以心里还是慌得一批,当时脑袋懵逼了,也没顾上道歉就直接进了面试厅,脑袋硬是不好使,哈哈。一共两个面试官,据我猜测一个是主管类的,另一个是组长类的,反正有一个年纪稍微大一点,另个年纪稍微小一点。做我对面的也是那位年纪大的;下面就分别使用“主管”和“组长”来代替他们:

主管:“先简单介绍一下你自己吧;”

我:“HR您们好!我叫谭威,来自湖北恩施,大学就读于湖北汽车工业学院,专业是信息管理与信息系统。在大学期间学习了Java编程的基础部分和web部分,由于自己对java十分感兴趣,于是后续又自学了java的相关框架,例如:spring,springMVC,mybatis等主流的java框架。在大四上的时候,通过学校的介绍和同学的邀请,我进到一家XXX的河南公司进行实习,在实习期间也学到了很多知识,主要是Linux运维方面的知识,例如:Linux指令,Redis,Nginx,solr,xftp图片服务器等”。由于公司规模不是特别大,技术方面进步的还是较为缓慢,加上自己从小就十分向往上海,所以现在来到上海,接到您的面试邀请就来到公司进行面试了。以上差不多就是我的自我介绍了,您看还有什么问题我再做补充。谢谢。”

这是一般面试的开头都会面临的问题,由于我做的准备不是很充足,个人觉得回答的还不是很好,例如没有提到项目经历,也没有介绍自己对公司的了解情况,最重要的还是没有为自己迟到的事情做道歉性的陈述;

主管: “好的,那我们先从基础部分开始吧,你觉得java编程的优点是什么?你在大学期间学过哪些其他的编程语言吗?”

我: “嗯,大学期间我还学过C++,感觉上java比C++更好入门,用起来十分的方便”

这我简直就是措手不及啊,一点准备都没有,关于C++和java的比较从没做过和总结过,只是模糊的回答了java相比于C的优势,啊这,,,心里其实很飘,不知道接下来会怎么问了。

主管: “嗯,==和equals的区别,你对equals和hashcode有多少了解?在什么场景会使用到equals,在什么场景会使用到hashcode?”

我:”嗯,==用于比较对象的话是比较两个对象的物理地址,equals是object类的一个方法,如果java的指定的类没有重写equals方法的话,equals方法还是会比较两个对象的物理地址,如果重写了equals方法,则会根据重写的内容比较两个对象的值;
在重写equals方法和hashcode方法的时候,要求如果equals方法返回true则hashcode返回也必须是true,反之却不一定成立;
在使用List类的contains方法就是使用的hashcode方法进行比较,而set的contains方法则是使用的equals方法“

在这里是逐步问下去的,一问接着一问,幸好自己对hashcode和equals还是有一定的研究和记忆的,所以完全不虚;

主管: “嗯,你主要对什么数据库比较了解?”

我: “嗯…在大学期间我主要使用的是Oracle数据库,但是实习之后发现MySQL用的更多,所以现在也是更多的使用mysql数据库;”

这里不知道为什么没有继续问下去,例如:mysql数据库和Oracle数据库的区别是什么?这之类的问题我也大致知道怎么回答,例如“mysql使用起来更加快捷和方便,例如分页就只用limit关键字就可以解决了,但是Oracle就需要写两到三层的子查询才能实现分页查询,但是Oracle数据库的运行效率比mysql要高,mysql在做到简洁的时候其实也消耗了更多的资源去做运算…”

然后就是一道sql语句的练习题:
三张表: student , class , stu_class
实体表都是两个字段 ,id和name,中间表分别关联了两表 的id
要求查出姓名为“张三”的班级名称

select class.name from student stu left join stu_class sc
on stu.id = sc.sid left join class cl on sc.cid = cl.id
where stu.name=‘张三’;

回答完了之后就问了我做链接查询是什么,有什么效果,然后我就回答:“链接两个表,保存左表的全部符合要求的信息,如果左边中有信息右表中没有信息,则右边使用null填充”

主管: “嗯。。。”

然后空气莫名的停止了一分钟,气氛一度陷入尴尬之中,然后主管问组长有什么要问的没有,

组长:“说说你在项目中的承担的角色:”

我:“我主要接手了两个项目,一个是自己的课设,也就是这个在线云商的项目,还有一个项目是在实习期间让我写的接口文档,后者没要太多的技术含量,我主要介绍一下这个云商的项目吧:主要有单点登录模块、全文检索模块、购物车模块、订单模块、后台模块等…”

这里细节问的太多了,我也就不做赘述,一个印象深刻的是问我秒杀功能怎么实现的,这里我也是早有准备了,就说:“是通过设置秒杀时间,秒杀商品数量来进行秒杀的,关于多线程可能产生的超卖现象,我没有使用java的锁机制,而是使用的Redis的队列,让多线程强行编程单线程执行,这样子就防止了超卖现象的发生”。然后还有一些琐碎,但是也算安稳度过了;

这后来出现了一个转折:

主管:“你说你学到了一些运维的知识,你说说看,有哪些?”

在这里我是有点懵逼的,因为已经有一段时间没有接触Linux系统了,那些配置和常用的指令也忘的忘,不知道的不知道了~~~难受的来了。。。

我: “额,我,嗯,,那个,,嗯,我主要是学到了一些配置,像zookeeper,Nginx,Redis,solr等的配置” 。

主管: “嗯,那你说说,zookeeper的启动命令是什么?Nginx的重载命令是什么?或者说你知道哪些?”

我: “额。。。我,,嗯,,我当时是根据一些博客进行配置和使用的,具体的指令我也忘记了,但是配置的话主要是修改配置文件”

组长:“嗯,你说说Redis的持久化吧”

我:“嗯,Redis的持久化有两种模式:AOF模式和RDB模式,AOF模式也有两种形式,每秒持久化一次或者没次指令执行后就持久化一次,RDB模式的话是可以在配置文件中进行配置的,可以设置每多少秒钟修改了多少个键就持久化一次”

Redis这块的话我比较熟悉一点,所以也算是对答如流了,所以回答的比较流畅;后续还问到Redis的缓存穿透、缓存击穿、雪崩等问题,这里网上有博客专门讲,我就不再赘述了,请大家自行了解,哈哈;

主管:“你还有什么问题吗?”

一般问这个问题的话就说明面试快要结束了,我就流程性的问了一下:“公司的技术栈是怎么样的,然后晋升机会是怎么样的”然后就结束了;总的来说还行吧,就是Linux那一块的内容确实忘得差不多了,回答的稀巴烂;

你觉得为什么CSDN怎么那么多看了不点赞的人?

今天就回顾到这里吧,后续还有面试也会给大家分享的,如果你觉得有借鉴的地方记得点个赞哦!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咻的一下飞过去

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值