Java后台工程师的3次面试

第一次面试

我面的是一个中小公司,在BOSS直聘上面找的,去之前看了看关于Java的一些基础知识,在牛客网上面看的,也做了一下牛客网的题目。然后跟HR约了一个时间就去面试了。因为第一次面试,一点经验都没有,面试地点也不知道,直接去BOSS直聘上面的地址找去,到了地点才知道面试的地方跟我去的地方不是一个地方。当时我心里很纠结,要不要再去面试的地方(因为两个地离的比较远)。后来我还是选择不放弃这一次面试的机会,还是去了。到了面试的地方,给我的感觉不错,他们给了我一张Java的试卷做了一下,里面有基础,有数据库,还有智力题。大概30分钟我就做好了,跟他们说了一下。然后就有联系我的HR来面我。emmmmm,居然没有技术人员。

一开始我先自我介绍了一下,因为有点小小的紧张,自我介绍都没说完,还好我跟她还是正常的聊了下去。她看了我简历上的两个比赛,都是跟创新啥的有关,就问了我的方向。

我就说,我还是很欣赏华为的,毕竟中美贸易战啥的,巴拉巴拉的(稍稍装了一个小B,哈哈哈哈)。

她就说在我们这里可能没有什么创新的学到只能学到一些基础的(是一个稍微大一点的外包公司)。

我说没事的,现在来实习,主要是学习,更加一定的经验是吧。

问了我 家乡在哪里,有没有打算去杭州,还是打算留在宁波。

我说 浙江湖州的,说了暂时肯定在宁波,毕竟杭州房价这么贵,巴拉巴拉的(这个就要看自己啦,一定不要说得太绝对哦)

问我们什么时候可以来实习。

我就说,大概这个学期结束就可以了。大概在6月25日左右。然后我又说了一下我们专业大四没有什么课,一般都是安排实习的。

然后我们开始聊了一下薪资,她说 给实习生一般都是 1.5K (我在宁波镇海),可以根据表现上升薪资最高 2.5K 。

我就说 我们学校离这里比较远,我来这里实习肯定是要租房子的,最近租房的价钱大概多少每月呢?

她说 合租的话 大概 800到900元/月,也就是 租个房就没有剩下点什么了。

当时真的强颜欢笑呀,这个真的太低了。给自己的目标就是大四实习不在向家里要钱,尽量自给自足,显然这个薪资离得有点远。

后来我有表示这个薪资有点低的问题,她说可以跟老板反应,我说好的。

最后,又加了微信,并且约了一个时间告诉 她我的决定,我来这边实习还是不来这里实习。我说回去考虑一下。

哎,第一次面试就这样结束了。为了这次面试,我还打的过去的,50元呢。连技术都没见到,直接一个HR来面面,这也太水了吧。

第二次面试

这次面试面的是一个小公司,外包公司。好像是我们学校的学长几人创建的,公司的人大都是我们学校学院的学长学姐,和隔壁学院的人。

这次的面试,因为临近期末,大作业考试的缠身,我都没有好好准备,直接就去面试了。结果肯定是不好啦!

进了门,倒了一杯水,直接开始面试,连自我介绍都没有,直接技术面。

看了我面试的岗位,Java后台工程师。嗯~

那我们来面一下 Java基础吧。说一下 Java的特性?

我说 封装 ,多态  , 继承 三大特性。

嗯嗯,解释一下。

啊呀 当时只能强行解释因为没有自己看过,虽然知道但是没有好好总结看过。

一、封装

简单说封装就是将同一类事物的特性与功能包装在一起,对外暴露调用的接口。

封装:封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。

封装的好处:

1) 实现了专业的分工

2) 良好的封装能够减少耦合

3) 类内部的结构能够自由修改

4) 可以对成员进行更精确的控制

5) 隐藏信息,实现细节

二、继承

Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,父类是子类的一般化,子类是父类的特殊化(具体化)

父类(基类):人   子类(派生):学生

学生继承人,人派生出学生

继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法。若类B继承类A,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作),我们称被继承的类A为基类、父类或超类,而称继承类B为A的派生类或子类。

继承避免了对一般类和特殊类之间共同特征进行的重复描述。同时,通过继承可以清晰地表达每一项共同特征所适应的概念范围——在一般类中定义的属性和操作适应于这个类本身以及它以下的每一层特殊类的全部对象。运用继承原则使得系统模型比较简练也比较清晰。

java使用extends关键字标识继承。

三、多态

面向对象的多态性主要体现在:重写与重载两方面。

重写:子类继承父类,重写父类的方法。

重载:同名方法,不同参数(类型或个数),与返回值无关,适用所有方法(构造,静态,实例)。

不清楚啊,那我们换一个问题,说一下 Java关于访问权限的关键字?

我就说 public private protected。

解释一下?

答案:

Java中提供了三个关键字在类的内部设置边界,控制类的访问权限,分别是:public、protected、private。这些访问的指定词决定了紧跟其后的被定义的东西可以被谁使用。

public:表示其后的元素对任何人都可以使用。
private:表示其后的元素除了类型的创建者和内部的方法之外任何人都不能访问。
protected:与private相当,差别在于继承的类可以访问protected修饰的元素,同包中的其他类元素也可以访问。
Java还有一种默认的访问权限,在不指定任何关键字的情况下,这种权限将发挥作用,它是一种包的访问权限,即在当前包中的任何元素可以访问。

那在说一下,static final 关键字?

答案:

static: https://www.cnblogs.com/dotgua/p/6354151.html?utm_source=itdadao&utm_medium=referral 推荐一篇讲的好的博客吧,再此谢谢这位博主。

final:https://www.cnblogs.com/dotgua/p/6357951.html 推荐一篇讲的好的博客吧,再此谢谢这位博主。

嗯嗯,好的。给了我一张纸,我们来设计一个数据库。 关于淘宝,购物车,商品的数据库设计一下,他们之间的关系,用一对一,一对多,多对多表示。

对于这个我还是比较慌。

果然出了问题,基本的我都满足了,但是当他提一下关于这个问题刁钻的要求时,发现我设计的数据库就满足不了他的需求。

当时好像是一个 订单里面 的订单号和商品的关系。他说一个订单号可以有多种商品,你这样只能只有一种商品,买多个东西就只能多次提交,这样很麻烦诶。

虽然我知道,我设计的有问题,但是我不知道怎么改比较好,我只能说 是的,还是有一点问题的。接近数据库设计的尾声,我问了他那应该怎么设计呢?

他简单的跟我说了一下,要添加一个字段商品List。所有商品都放在这个商品List里面。商品List一对多 商品。emmmm 想想还真的可以诶。涨知识了~涨知识了~

后来简单的说了一下我当时做完的那个比赛项目,浙江省服务外包设备资源预约系统的开发。

我就说 前台用的是 Vue + Element-ui,后台用的是Shiro +  Spring Boot + Mybitis,数据库用的是 MySQL,并且还开发了手机端用的是UNI-APP。说了我担任了什么角色,干了什么。

后来还问我js 怎么样,我说一般。但是他说我零基础。

emmmmmm,我会的好嘛,只是没有表现出来。

最后问了我什么时候实习啊,今后打算啊。

我也就回答了一下。

我有什么问题问他?

这个问题真的要慎重,看自己的表现怎么样,不要瞎 j er 的乱问。文末推一篇面试宝典github上的。

反正,我觉得这次面试还蛮失败的,但是自己没有准备充分也不能怪别人,只能说好好加油吧!

第三次面试

。。。

猜你喜欢

转载自www.cnblogs.com/strive-19970713/p/11079816.html