来来来开小灶了,年后求职和跳槽的看过来,悄悄的看悄悄的收藏

简介:大家好,我是枫哥一线互联网的IT民工资深面试官Java跳蚤网课堂创始人。拥有多年一线研发经验,曾就职过科大讯飞、美团网、平安等公司。在上海有自己小伙伴组建的副业团队,目前业余时间专注Java技术分享,春招/秋招/社招/跳槽,一对一学习辅助,项目接活开发。

扫码左侧二维码,加入群聊,一起学习,一起进步!

欢迎关注  收藏 留言

:文末送福利

目录

一、自我介绍:

二、项目介绍四部曲

 三、项目描述及负责模块

四、 实际项目中可能会问的问题

1、项目安全性怎么解决?

2、项目中服务器配置怎么样?

 3、项目开发流程怎么样?

 4、网站的并发量有多大?

 5、什么是压测?做过压测么?

 6、用到网关了么?zuul前面是否使用了Ngnix代理

 7、Token是如何制作的? Token的过期时间

 8、怎么提升接口的响应速度?

 9、项目上线后出现bug怎么追踪解决?

 10、构建Maven的命令,pom的使用?

 11、对外暴露的链接是共享连接还是私密连接,如果是私密连接怎么让客户访问

12、测试执行是怎么样的一个流程?现实企业中一般的codeReview流程是怎么样的? 

 13、SQL 优化

 五、HR面和背景调查怎么办?

 1、没有上五险一金的原因?

2、 五险一金的名称

3、 三个词形容自己

 4、谈谈你的对软件行业发展前景的理解

 5、为什么离职?

 6、如何看待你上家公司?

 7、你凭什么要这么高的薪资?

8、 跳槽的看法

9、 你的五年规划

10、 谈谈你对加班的看法

一、自我介绍:

面试官,您好我叫(XXX),今天来公司面试 JAVA开发工程师,之前在(XXX 公司)任职,从事这一行已经有(几)个年头了。这几年开发,主要接触的项目包括(你做过的项目!)等。在开发过程中,也用过好些框架,比如∶ springboot、springcloud、springmvc、spring、Mybatis等技术框架。熟练掌握框架之间的整合技术。有时候因为项目需求或是为了开发的高效性,自己我会研究一些技术,使用一些常用的主流 Java技术,例如∶(吹!用没用过不重要,主要是就是英文的!)。前端的技术也研究过一些。如(原生的、框架啊都往上整!)

在前公司做 Java 工程师,主要的任务是:~与辅助项目经理/开发组长把控项目进度和需求分析,跟产品经理和测试还有开发人员开需求评审会议,并参与接口文档的编写在设计阶段,参与详细设计,包括框架的一些基类、工具类的封装,使用 powerdesigner 完成数据库的设计。对数据库设计有一定的经验,常用的数据库包括 mysql、oracle 等关系型数据库,还有 mongodb、redis 等非关系型数据库,并在linux上搭建集群和哨兵和部署项目。

编码过程中,主要负责一些功能模块的编码实现,并使用junit做单元测试。项目管理上,与项目经理沟通协调过项目的进度,使用maven 对项目进行管理,还帮助其他开发人员解决一些开发过程中的问题。

在闲暇时间,我也会去访问一些像CSDN 、开源中国、博客园等这些技术网站,研究一些新的技术点,来增加自 己的行业知识。在研究这些技术的同时呢,也总结出了一点点经验,比如我研究时会根据内容在云笔记上进行分类,比如将一些关于新技术方面的技术博客的链接放在一个文件夹,然后将用到的一些 jar 包啊 is 之类的放到一个文件夹,然后通过看这些资料自己写一个小的 demo 例子放在一个文件夹下,最后再把自己研究的过程以及心得,还有容易忽略的问题写在一个总结文档的文件夹下, 然后与项目组的同事一起分享交流、共同进步,我一直坚信,一个人的能力是有限的但是团队的能力是无限的,只有这样才能来给公司创造更大的价值,在工作中我对RocketMQ和redis等比较熟悉。(选择几个你重点准备的技术,在最后强调说一下)

以上自我介绍,根据自己的实际情况调整一下,一定要适合自己并且能够熟练说出来,而且一定要在自我介绍的结尾强调几个自己提前准备过的技术!

二、项目介绍四部曲

第一步:先介绍为什么做这个项目,目的是什么?給谁用?解决了用户什么问题?行业背景是什么?

第二步:有哪些模块?主要的业务流程?

第三步:用到哪些技术?

第四步:你负责的模块的流程、技术?

 三、项目描述及负责模块

 1、介绍项目的背景,项目的描述和作用还有项目的模块和功能。

 2、介绍项目涉及到的技术。

 3、介绍负责模块。

 4、提前准备一些项目中遇到的问题。

 5、项目收获和成长经验。

以上二、三两点结合自己熟悉的项目准备。

四、 实际项目中可能会问的问题

1、项目安全性怎么解决?

是指攻击安全还是访问量过大安全还是数据安全?

如果是攻击性的话,input框都采用了js验证,用java代替重复效验,避免输入不必要的空格或者sql注入。

如果是访问的安全的话,页面做了大量的页面静态化,缓存,通常访问量不会增加服务器造成负担。

如果是数据安全这一块的话,系统用的是linux,数据库的账号密码都做了加密处理。

如果是数据遗失或是自然灾害,数据库做了读写分离,而且一个主库,两个从库,其中一个从库做了备份,而且是定时备份。

在登录过程中,为了防止程序直接登录,也做了一些验证码,包括支付的资金账户安全,我们的系统没有钱,主要是通过超链接将钱存储到网络支付宝qq账号,最主要还是支付宝的安全和网民的安全,而且这个账号只能出不能进。

2、项目中服务器配置怎么样?

Tomcat至少2台

数据库1台

Redis一台

文件服务器一台

以上配置根据自己公司项目实际情况介绍。

这个是我写的一个比较常见的配置,不是所有的项目都是高并发,集群。。

 3、项目开发流程怎么样?

来来来开小灶了,年后求职和跳槽的看过来,悄悄的看悄悄的收藏_第1张图片

 4、网站的并发量有多大?

高并发的本质不是「多大算高并发」的一个数字,而是从架构上、设计上、编码上怎么来保证或者解决由并发引起的问题。当别人问你:“做过高并发吗?”回答者完全可以描述自己系统的各项指标,然后开始叙述自己对系统中对预防、解决并发问题作出的思考和行动

平均并发用户数的计算: C=nL / T 其中C是平均的并发用户数,n是平均每道天访问用户数,L是一天内用户从登录到退出的平均时间(操作平均时间),T是考察时间长度(一天内多长专时间有用户使用系统)

所以从专业的数据和硬件配置角度介绍,更能说服面试官!

 5、什么是压测?做过压测么?

压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。主要是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。

使用压力测试是主有两种错误类型是:内存泄漏,并发与同步。有效的压力测试系统将包括关键条件:重复,并发,量级,随机变化。压测一般是测试人员使用Jmeter做的。

 6、用到网关了么?zuul前面是否使用了Ngnix代理

首先通过nginx可以做前后端分离,静态化,对网关做高可用和负载均衡。提供统一的404,500页面。

 7、Token是如何制作的? Token的过期时间

使用JWT令牌,用户注册登录时Token的有效期为三天,如果用户三天都没有登录过,就得得让用户重新登录一下,

  1. 在用户注册的时候设置token的有效期
  2. 在用户登录的时候更新token的有效期和token
  3. 用户每次访问页面时,判断token有效期是否过期:未过期则只更新token有效期,过期则同时更新token有效期和token

 8、怎么提升接口的响应速度?

浏览器按F12,看看Network哪个接口占用时间最长,然后去那个接口进行审核。

首先,如果资源紧张就加服务器;

缺少缓存就添加缓存;

如果与第三方沟通接口响应问题;

如果代码是非核心任务,且不会影响到用户感知可以采用异步的方式处理;

可以采用异步从最外层开始;

分析SQL语句,如果数据量大就进行分库分分表,在这对sql语句进行优化。 

 9、项目上线后出现bug怎么追踪解决?

 JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。

 10、构建Maven的命令,pom的使用?

指令 mvn可以创建,然后IDEA中有Maven Project有个quitStart可以创建,其中包括类名groupId、项目名artifactId、版本号version

 11、对外暴露的链接是共享连接还是私密连接,如果是私密连接怎么让客户访问

 例如:用户可以直接从前台访问到链接,而不用其他的转换。

使用临时的AK,SK去前端进行访问。

主账号的AK SK是拥有最高权限的,子账号的AK SK是主账号赋予的,一般用于开发人员

12、测试执行是怎么样的一个流程?现实企业中一般的codeReview流程是怎么样的? 

 答:正常开发人员开发结束后,每个开发人员对自己负责的模块,进行自测互测,之后有开发人员打包交给测试人员,测试人员部署到测试环境进行测试。

codeReview:有开发人员发起,邀请组内测试和开发人员还有项目经验,大家一起共享屏幕,看开发组员写的代码,然后指出代码的不足和缺陷。

 13、SQL 优化

 1. 对操作符的优化 尽量不采用不利用索引的操作符

如:in ,not in , is null, is not null,<> like 等

2. select count(*) from table;这样不带任何条件的 count 会引起全表扫描,并且没有任何

业务意义,是一定要杜绝的。

3. 使用“临时表”暂存中间结果

部分 UPDATE、SELECT 语句 写得很复杂(经常嵌套多级子查询)——可以考虑适当

拆成几步,先生成一些临时数据表,再进行关联操作。

简化 SQL 语句的重要方法就是采用临时表暂存中间结果,但是,临时表的好处远远不

止这些,将临时结果暂存在临时表,后面的查询就在 tempdb 中了,这可以避免程序

中多次扫描主表,也大大减少了程序执行中“共享锁”阻塞“更新锁”,减少了阻

塞,提高了并发性能。

4. 排序

避免使用耗费资源的操作,带有 DISTINCT,UNION,MINUS,INTERSECT,ORDER BY 的 SQL

语句会启动 SQL 引擎 执行,耗费资源的排序(SORT)功能. DISTINCT 需要一次排序操作,

而其他的至少需要执行两次排序

 这些都是高频的面试项目问题,还有很多这里就不一一列举了,有需要的私聊枫哥,备注来意!

 五、HR面和背景调查怎么办?

 1、没有上五险一金的原因?

 1、上一家公司是一个小公司,没有上保险,统一买的商业险,老板有补贴,没有在xx城市(就是你在职的城市)买房的目的,交了五险一金还不如每个月多发一些现金比较来的实际。

2、正常一般公司是交五险一金的哈。

2、 五险一金的名称

 养老保险,医疗保险,失业保险,工伤保险,生育险,住房公积金

3、 三个词形容自己

 认真细致,团队协作能力强,抗压能力强

 4、谈谈你的对软件行业发展前景的理解

 现在的生活越来越离不开网络和便捷的生活方式,软件的行业就是顺应了这一特点,通过开发的软件简化了人们一些生活复杂度,所以在不久的将来必将成为科技的前端和人们生活的密切相关。

 5、为什么离职?

原则一:外交语言

跳槽的目的,对你来说应该是加薪、晋级、换行,理论上三者都占才好,实际中只要有一个能满足,就算成功跳槽。

那么,对于企业招人来说,它要求“本科学历,3年以上相关岗位工作经验”,请问这3年以上的工作经验哪来的?显然不是从学校里面学来的。从本质来分析的话,大多数岗位和绝大多数用人单位招人,就是挖人,从其他公司挖人过来,他们的目标就是跳槽的人。

所以,企业最关注的,是看你是否有与这个职位相关的技能和综合素质;至于你之前的历史,包括跳槽的原因、上家离职的原因,都不是企业关心的主要矛盾。

由此可见,我们往往过分看重了这个次要矛盾。企业早就准备好了你的跳槽,甚至用各种福利和前程来诱惑你离开上家,引诱你跳槽过来,它又怎会计较你离开是啥原因呢?

既然是次要矛盾,则我们的应对之策当然是外交语言。对于在职跳槽的人,尽量就这一句话“追求更好的事业发展”,官话为主;那么,对方如果问你“张先生,请问你离职的原因是什么呢?”你直接回答“追求更好的职业发展”即可;对方再追问:“离职总有个理由吧,请问您辞职的理由到底是什么?”还是回答刚刚那句话“为了追求更好的事业发展。”这里就不咬文嚼字了,职业发展、事业发展,都一样。

正常的HR只会问一次,也有一些拎不清心理阴暗的会问两三次。某些HR会强调,问你这个问题是想看看你的职业倾向性、前家的矛盾跟我们家的体系是不是也不相容,这是个官话、套话,是HR想强调自己在职能分工在企业中的地位。给对方一个面子,每问必答即可。

实际上,HR须要在系统里维护进你的履历,其中要填写“从前雇主离职的原因”这一栏,所以才会问。这一栏大多数公司会有一个选项是“追求更好的职业发展”,没有的话他她写上去即可。所以,你不用担心对方接受不接受你的离职理由,统一用外交语言答复即可。这个记录,主要是HR用来做公司人事情况备案的。

对于部门主管来说,主要是面试你的工作技能,但也有不开窍所谓花花肠子的部门主管可能会越权,他她也会问你离职原因,你照样那句“追求更好的职业发展”即可,多问就多答一次,不问不答,这几乎不会成为是否录用你的依据。

如果是猎头挖你,或者朋友引荐的职位,或者你个人能力强且很自信,则你说“贵司的这个职位,我无意间碰到,觉得非常适合我,我很感兴趣,所以这才过来面试,请给我一次机会。”意思就是,你们想法设法来挖我的,我本来工作做得好好的本不想跳槽,是你们引诱了我,要问我如果离职的话原因是啥,原因就是你们下一步录用我,否则我不会离职。

总之,外交语言,你懂就行。

问:“请问您对美国军舰这次驶入南海岛屿12海里以内的航行自由行动怎么看?”

外交语言答:“我们的立场是明确的,请域外国家不要搅乱南海秩序。”

继续问:“这是对中方的挑衅,请问你们下一步如何应对?”

外交语言继续答:“我们的立场是一贯的,希望域外国家不要搅乱南海安宁。”

原则二:不说前雇主坏话

任何前雇主、前领导、前同事的坏话,都不要说,实在对方问到你“如何评价你的前雇主?”你也要说它的好,说公司好,生意好,氛围好,同事好,最起码别说他们的坏话。

如果对方追问“既然这么好,你为何辞职?”应对之法当然还是那几个原因:“追求更好的职业发展”“因为个人原因”“是贵司通过猎头联系到我,这个职位更适合我......”

原则三:尽量说客观原因

通常,跳槽,是个上家到下家的过程,表现形式就是:上家---->下家。你的新雇主以及面试的企业自然就是有可能的下家,它有理由知道你从上家离开的原因。

我们可以变通下,变成这样的形式:上家---->缓冲区---->下家。这样一来,下家能够问你的则是从这个缓冲区出来的理由,而不会过多问你为何离开上家了。

这怎么理解呢?可能语言难以描述,实例更好说明。你看下如下真实回答吧,足够覆盖你任何一种离职原因了,从在职跳槽的无缝连接,到裸辞职业空档1-2个月,再到失业3个月甚至好几年的原因解释。

  1. “我回老家处理了一下私事,现在事情已经完成,我心也安定了,所以重新回来找工作,回归职场。”
  2. “我父母开了一个饭店,很多年了,他们年事已高,我必须回去打理。现在店也关了,我安心回来工作了。”
  3. “我年迈的母亲生病了,无人照看,我必须辞职照顾她。现在她病情好转且稳定了,我也已经将她接到深圳来了。所以现在我重新找工作,看到贵司这个职位很符合我。”
  4. “我已经在一个小公司上班2个月,贵司人事通过猎头找到我,我看这个职位跟我非常吻合,所以来了兴趣,今天才会来面试,请给我这个机会。”
  5. “我这几个月回郑州,卖掉了那里的房子,我老公一直在上海工作,此间我们也刚买了上海的房子,现在安定下来,我要重新回到我喜欢的工作中来,贵司是一个不错的雇主。”
  6. “老婆和她父母命令我去年必须回去,我离职后经过几个月的调节,现在问题解决了,我已经跟老婆一起在上海买了房子,将老人孩子都接过来了,现在回归职场。”
  7. “我前面工作了12年,换过2次工作,中间一天都没休息。这次我辞职给自己放松一下,参加了一个徒步西藏的旅游,看了世界,完成了我人生的最大心愿,现在我回来了。”
  8. “家里没人照看孩子,怀孕和哺乳这一年,我必须辞职。现在有人照顾小孩了,因此我继续出来工作。”

通常,如上理由你只要说出一个,对方就不再追问了,不然他她会显得不通情达理,不近人情,反而显得他她自己有点二了。这里的规律,就是找一个客观原因作为你上家离职的缓冲区,而缓冲区显然要是一个不能长久的客观偶发事件,你从偶发事件中回来求职,就顺理成章了。

原则四:不能说自己创业过

这第四个原因,可能跟其他一些人的回答以及我们常见的思维有点出入。但我统计过数千个跳槽和求职案例,关于创业重回职场的基本规律就是:千万不要在简历中提及自己的创业经历,一提就死。

不信你试试看,真的一提就死。你想想原因,有哪家企业欢迎创业失败的人来求职的?你开过一个小店,失败了,到我们这里来应聘任何岗位,实际上你都不能胜任了,得重新培养,你的创业经历对我们来说没用。

从HR的角度来讲,创业的人是最不稳定的,有野心的,万一招你进来几个月不到你又创业去了,HR不是自打嘴巴?

部门主管更担心你不能安于现状,职业素养需要重新培养,还担心你跟其他同事的相处,以及你创业者思维是否能迅速转换过来。

再者,从企业的角度讲,你创业失败,这本身就是能力问题,一个市场上的失败者,我们有必要接受不?如果你创业成功,比方你是另一个“马云”,你来我们这打工,显然也是不合适的, 你注定要走,你来很可能是跟我们开玩笑,要么就是来刺探商业情报的。所以,从企业的经营观念来看,无论你创业失败还是成功,只要有了创业经历,只要简历中有了“创业”二字,基本都不会欢迎你。

从统计规律来讲,我已经接到过上百个创业者重回职场的求职咨询,有开网吧失败的,有卖了天猫店重回职场的,有创业公司股东创业失败的,那种开饭店后来要回来打工的则更多。他们求职时,一开始甚至接不到任何面试电话,自从简历中去掉创业经历后,这才有了好转。

所以,言归正传,千万不要提及自己的创业经历,更别说回答离职原因时还有意说自己创业失败了,这不是不打自招嘛!

补充下,这里有人不动脑筋问:“不写这段创业经历,简历不就空白了嘛!?”当然写在简历上,写在这家公司工作,只是老板股东是谁,你不知道;职位呢?当然写跟你的目标岗位接近的职位。老板和员工同名也正常呀,世界上同名的人多着呢!

原则五:尽量不说裁员遭遇

最后这第五个原则,不经历是不知道的,被裁员的经历,在职场中不属于光彩得可以示人的一面,更不要说在面对新雇主的时候了。

无论是自发、他发还是不可抗力导致的你突然失业了,都尽量不要提及自己被裁员的遭遇。

有些人在外企,领到了公司所谓"n+1"的赔偿金,开心得不得了,以为自己多赚了几个月工资,所以不少没轮到的人甚至希望自己被裁员。殊不知你自己去查下,人事档案里给你备注的离职原因是这样一个单词involuntary,这是什么意思呢,就是指你是非自愿离职的,被公司辞退的。在当下,非自愿离职,主要就是裁员。到了下家准备发Offer给你时,HR了解到你上家的离职原因是裁员,或者从你上家人事专员那里获取了你的信息,其中关于离职原因显示为“involuntary”,对不起,Offer会被取消。

换到内资企业,则更加严峻,被裁员的人,哪怕是因为企业倒闭而失业的情况,新公司会将你之前的公司连同你本人,都当成失败者,是市场中的失败者,属于被市场淘汰的类别。自古中国是“成王败寇”,你虽然委屈,但没地方说理去。

 6、如何看待你上家公司?

每个公司都有自己的一个企业文化,从上一家公司我有深刻的体会,就是遇事要向内归因,外界的给我们带来的压力只能是客观因素,从本身去找解决办法才是我们提高的一个重要标志,逐步让我成为一个有责任心,有目标的人。和之前的同事的交流也让我学到非常多的知识和扩展交际圈,明白更多的沟通方式。

 7、你凭什么要这么高的薪资?

 首先我既然敢要这么多钱,那么我自信我有这样的实力能给公司带来同等甚至更大的经济效益,我正值壮年,精力旺盛,能够在高压力下正常的工作,曾在项目上线时连续两天通宵直到项目正常运行,在工作时,项目经理让我研究东西,我能在较快的时间里学会并熟练应用,把这项技术教给同事,让他们快速学会这项技术

8、 跳槽的看法

 不能频繁跳槽,适当的跳槽是可以理解的,有的可能因为私人原因,有的可能为了更好的舞台,毕竟人往高处走嘛。

9、 你的五年规划

 如果我被贵公司录用的话,肯定先快速的适应公司新环境.与同事处好人际关系,

然后在完成公司给的任务之后学一些新的技术,来提升自己的能力。如果贵公司晋升机制好的话,我会考虑向项目经理的方面去发展。

10、 谈谈你对加班的看法

 加班其实是每个公司遇到的问题,之前我也提过我是一个能够以大局为重的人,为了公司的利益和项目组的进度我完全可以加班来完成,但是在工作中我会规划好自己的进度按时完成任务,即使在我的任务完成的前提下,我也会和项目组待在一起帮助他们完成项目任务。

最后,祝每一个求职人,找到满意的工作,致敬那些努力而又不放弃的人,加油,打工人! 

感谢大家,坚持看完,既然选择了这条路,那就一起加油,一起学习!如果需要学习资源,实战面试资料,项目资源。关注公众号:IT枫斗者,根据关键字领取对应的资料福利!咨询解决问题,公众号私聊枫哥,备注来意。

回复:java全套学习资源

回复:面试资料

回复:枫哥简历

回复:程序员表白神器               

(从此告别程序员单身狗!)

回复:程序员兼职网站

回复:枫哥666                             

( 获取66套项目实战资料,大厂面试视频)

你可能感兴趣的:(面试技巧,java,开发语言,后端,面试,职场和发展)