面试技巧~



一、自我介绍

我叫XXX,今年23岁,毕业于XXX大学计算机科学与技术专业,拥有扎实的Core Java基础,良好的编程风格;熟悉JSP+Servlet+JavaBean模式的WEB开发;熟悉Struts,Hibernate,Spring等开源框架,了解EJB; 熟悉Tomcat,Jboss服务器等,熟悉基于Linux及Unix环境下的软件开发。   
在校期间有多次社会实践经历,曾参与过学院网上虚拟实验室开发的需求分析,大学期间多次担任多课程的课代表。虽然实际工作经验不是很足,但大学四年培养了我充分的自信心和敬业精神以及扎实的学科基础知识和较强的专业技能,四年校园生活中,我严格要求自己,自觉、遵纪、守时。本人坦诚且有责任心,有独立进取的品性,勤于动手、善于动脑,适应新环境能力很强。能在最短时间内完成从学生到职业工作人员的转型,尽自己最大的努力融入新的工作生活。


二、技巧

1.源码级解决问题

产生一个问题?百度、谷歌、问老师。

面试官问: 请讲讲ArrayList如何扩容的?

我最初看书(看博客、文档),上面它的底层是动态数组,会在add()时 如果发现已满,则自动扩容1.5 。我还查阅了源码进行了验证,发现是在数组已满扩容,并且是通过 位移运算符扩容。

int newCapacity = oldCapacity + (oldCapacity >> 1);

2.找对时机,秀技能

每个人都有一些 独到的经验,要想办法在面试的时候 讲给面试官。

“聊聊自己的项目经验” ,讲项目,讲完的时候 加一句:我在做这个项目的时候 曾经遇到了一个bug,当时ArrayList.asList()返回一个List,当时通过阅读源码 发现 返回的LIst不是 Collection中的那个List。

3.比较通过的 秀点

优化类(JVM、SQL优化)

1.jvm优化:项目做完时,我用jmeter进行了压力测试,结果发现相应时间太慢(或者内存利用率太高) ,然后我用jvisualvm分析了下JVM的内存情况。分析后,进一步发现项目中的小对象太多了,并且发现这些小对象都是生命周期比较短的对象。然后我猜测可能就是由于短对象太多,造成了堆中新生代容量不足,进而让很多短对象逃逸到了老年代中。这样一来,新生代和老年代中的对象都会很多,就会加速GC的回收频率,从而降低系统的性能。对此,我调大了新生代的内存大小,并且调高了新生代 逃逸到老年代的 阈值。之后再测试,发现性能平稳了许多。

PS:以上短短200字,就告诉了面试官你有性能测试的良好习惯、会发现问题、分析问题,并且会JVM调优!

2.项目做完时,我用jmeter进行了压力测试,结果发现响应时间太慢。然后我用mysqldumslow工具查找到了项目中执行时间最长的那个SQL语句,因此猜测是这条SQL的性能太低,拖累了整个系统。然后我用explain查看了SQL执行计划,发现这个SQL根本没有写索引并且是大表驱动了小表,所以特别慢。之后,我给它后面的where查询字段加上了索引,并且改为了小表驱动大表。然后再次测试,响应时间就缩短了很多。

PS:这个秀点是“SQL优化”,具体流程是:定位慢SQL->使用explain查询SQL执行计划,用于分析SQL执行慢的原因->SQL优化。上述中的“小表驱动大表”等是SQL优化时的术语。

算法类的:字符串算法 (KMP算法)

4.技术沉淀

数据支撑: github、博客、专栏、微信公众号、项目发布到阿里云


三、经历

02/26am
填写信息后手机扫码做题,关于Java的题目比较基础,但很少。测试最后让谈谈个人职业生涯规划和针对领导下达的没有接触过的任务该怎么做。
面试官很和善,先做了自我介绍,然后问了简历上面的项目,以验证真实性,包括参与数据库表,个人负责的是那些模块,以及主要做了哪些工作。询问是否熟悉Linux和常用命令,以及是否搭建过服务器。然后问前端框架是否熟悉?之后又询问是否参与过spring boot项目,理想薪资和如何看待加班,最后问我有没有想问的。
02/26pm
先自我介绍,用自己的话谈谈你对spring的理解,说说IOC容器。询问的之前项目的具体工作以及工作中遇到的问题。然后询问对前端框架的熟练度。…

03/03
1.移除重复数
编写代码,移除代码中的重复节点
示例1:
输入:[10,20,30,30,20,10]
输出:[10,20,30]
2.统计数据
给你一数组arr,统计数组中每个数出现的次数
示例
输入:arr = [9,7,7,9,9,3]
输出:在该数组中,9出现了3次,7出现了2次,3出现了1次
3.删除重复的分数
有一组学生成绩,你直接在成绩单上删除重复出现的分数,使得每个分数只出现一次,返回删除后的分数总个数。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例 1:
给定分数列表 scores = [1,1,2],
函数应该返回新的分数个数 2, 并且原数组 scores 的前两个分数被修改为 1, 2。
示例 2:
给定 scores = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的分数个数 5, 并且原数组 scores 的前五个分数被修改为 0, 1, 2, 3, 4。
你不需要考虑数组中超出新长度后面的元素。
4.请设计一个学生成绩存储类,这个类有三个方法
保存最新批改的学生成绩(参数:成绩 返回:无)
删除最新批改的学生成绩(参数:无 返回:成绩)
获取最低学生成绩(参数:无 返回:最低成绩)
要求:每个方法的时间复杂度为O(1)


四、职业规划

如何恰当的回答【职业规划】这个问题。

关于这个问题,HR最核心的关注点有三:

1、 自我认知——是否充分了解自己,是否具有长期的职业规划,是否有自己的独立思考,是否有上进心
2、 动机与价值观——职业认可度与契合度,即个人职业规划与公司的发展方向是否一致
3、 组织承诺——职场稳定性,即是否有频繁跳槽打算

通常在面试的最后,HR还会反问你一句:还有什么想问的吗?

这个时候,你也可以反问HR一句:请问这个岗位在公司内部未来发展方向是怎样的呢?
在HR回答这个问题的时候,你需要重点关注以下几个方面:

1、 公司内部的培训或晋升机制——公司的学习与提升方案
2、 对应岗位的成长路径——职业发展路线
3、 岗位的成长预期——公司对此岗位的资源、精力投入


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值