java面试技巧

简历

1.HR看简历,都是看技术关键词。能够多看招聘要求,简历上要多写些关键词。好比io,集合,多线程,并发,spring,mysql,分布式等等。
2.能够准备多份简历,根据不一样的jd发送不一样的简历。
3.网上简历作成pdf格式会好一些,word由于版本缘由可能排版会变乱。
4.网上简历能够稍微夸大一下,半懂不懂的也写上去。纸质简历必定要将半懂不懂的技术去掉。固然,最好仍是保持一致。
5.没有了解过的技术,不要写在纸质简历上,一问就蒙了。
6.频繁跳槽的经历,能够合成一段。频繁跳槽给人的印象不好。
7."我的评价"直接写技术栈,不要写乐观向上,团结友爱这些。
8."项目经验"除了介绍项目,还要写清楚涉及到的技术内容,以及本身负责的模块。
9.博客、GitHub都是加分项。不要担忧本身写的东西很简单,其实几乎没有面试官会去看的。
10.阅读过Java源码,Spring源码。这些也是加分项。php

项目经验

项目简介:
我任任职XX公司XX部门,该部门后台系统主要由API模块,APP后台模块,算法模块以及数据模块组成。后台的任务经过分布式任务系统进行任务管理。
责任描述:
我主要负责XX模块,实现了XX功能、XX功能和XX功能。XX功能运用到了XX技术……
技术要点:
整套系统部署在公司的服务器上,主要基于公司的Mysql集群和Redis集群作数据存储,使用MQ集群作消息队列,基于ZK集群搭建高可用系统,前期咱们服务以前的调用方式都是基于HTTP的方式,服务耦合性较高,后期咱们基于SpringCloud框架作了整个系统的微服务化,进行解耦。html

投递网站

拉勾网:专一互联网招聘。能够直接上传简历,很是方便,还能够查看面试的评价。
BOSS直聘:在线聊天,以后再投简历。能够先设置好招呼语,好比:java

你好,我正在找java开发的工做。
XX年毕业,本科,XX大学,XX专业。
java基础扎实,熟悉io,集合,多线程,并发;
熟悉spring,springMvc,mybatis,springBoot,springCloud等框架,
熟悉分布式/微服务,缓存redis,消息队列kafka,服务协调zookeeper等。

猎聘网:会有猎头来找你。能够设置成只有猎头能够查看。
51job:工做岗位挺多的。
其余:智联招聘。
1.除非实在找不到工做,不然记得将简历设置成不可查看,否则一大堆外包公司打电话过来。
2.不要直接就投递给大公司。先投简历给一些中小型公司,总结本身的不足,而后再去心仪的公司面试,这样拿到好offer的机率更大。
3.面试几家练练手后,就能够投给比较大的公司了。筛选出500-2000人以上的公司。
4.记得时常刷新简历。这样猎头更容易找到你。mysql

内推

内推更靠谱些。直接跳过投简历环节,能够经过同窗/朋友了解到公司内部的状况。
若是面试成功,内推的人是能够拿到奖励的。所以,找朋友内推别很差意思,人家也是愿意拿钱的。
我之前内推过朋友进公司,赚了三天工资。哈哈。linux

公司

1.最好是互联网行业。有最新的技术。复杂的场景。高可用高并发分布式。
2.技术栈最好要匹配。若是不是理想的技术栈,可能干久了仍是没有长进。
3.其次是中大型规模的公司IT部门。最好是几百人以上的公司。
4.其余的选择:
创业公司:作的事情太杂。须要通才,什么脏活累活都得干,加班太多了。并且创业公司随时有裁人、倒闭的可能。
外包公司:外包干久了,只会变成搬运工,并且外包的工做经历可能会减分。
国企:技术特别落后,流程极慢,人际关系复杂。不过国企上班时间很短,适合养老。
外企:外企加班通常很少。
5.能够经过“看准网”、“职友集”这类网站查看公司的评价。c++

跳槽准备

1.想要跳槽,最好提早两个月,开始准备面试。
2.离职证实,用彩色打印多几份,章也是红色的,跟原件基本是同样的。git

行业及产品

除了技术栈和薪水,还要考虑行业和产品。
行业背景也很重要。假如你去面试一家金融公司,那么作过有关金融的项目经验就是极大的加分项。程序员

面试资料

1.书籍:《码出高效》(重点看集合和多线程的源码讲解,很是实用),《剑指offer》,《java程序员面试宝典》,《Cracking the Coding Interview(6th)》
2.网站:牛客网、LeetCode
若是想进大公司,必须刷题。面试时可能须要手写算法。
3.看准网、职友集等平台,面试前能够先查看某公司的面试题。面试

技术模块

优先级:java基础,集合,多线程,并发,ssm,数据库,jvm ,分布式,网络,操做系统。
加分项:高并发、分布式、微服务
其余:linux,git
数据结构和算法:手写代码、手写算法
项目经验:这个主要介绍项目,以及本身负责的模块及技术,因人而异。
若是去大公司面试,很是注重技术广度和技术深度。通常会进行连环炮问法。对某一个知识点,一直深问到底层原理。
好比,问线程池参数,你回答后就会问参数中的"拒绝策略"有哪些?阻塞队列有哪些?队列是默认值是什么?有哪些不一样类型的线程池?怎么本身设计一个线程池?
若是想进大公司,必定要多读源码,理解底层原理。
若是是高级开发或者架构,那还会考验系统设计能力、架构能力。
各模块面试题可查看: https://www.cnblogs.com/expiator/category/1372059.htmlredis

面试

1.彻底不懂的,就直接说不会,瞎扯给人的印象更差。
2.半懂不懂的,能够说一时想不起来,让面试官提示一下。
3.不懂的东西,一个字都不要提。否则人家一问就蒙了。好比人家问redis能够作什么?就说缓存,若是没用过度布式锁,千万别提。
4.不要一直由面试官说话。有时能够本身推动。。好比面试官问新建线程的方式有哪些?你回答完以后,还能够再补充一下。说开发中用线程池比较多,那面试官可能就会问你一些线程池的技术。
5.其实,负责java岗位的面试官,有多是搞c++/php的,也多是不懂技术的管理人员。遇到不懂技术的,可能适当说些专业术语吹吹牛。不过,一个不懂技术的人来面试java岗位,可能公司是不太靠谱的。
6.日常工做中比较少用到的知识,若是实在理解不了,能够背起来。

手写代码

1.有时候须要手写代码,最好本身先写一遍。
2.算法:数组、字符串、栈、链表、树、查找算法(尤为二分查找法)、各类排序算法(快排最重要、冒泡比较"低端"),能够看下《剑指offer》
3.设计模式:面试要求写的有单例模式(最好能写线程安全的)、工厂模式、观察者模式、代理模式、生产者消费者模式。
4.就算是写不出来,也能够写些伪代码,或者说一下大致的思路,最重要的就是思路。

提问问题

面试后面试官可能会问,“你还有什么要问个人?”
1.介绍一下技术团队的规模和人员。有几个后端?有没有产品人员?
2.团队作的是什么项目?属于哪些方面?
3.使用了哪些技术栈?有没有用到分布式或者微服务的技术?有没有落地?
4.公司的做息时间。
5.作开发确定是要加班的,但我想了解一下加班的强度。

心态

1.面试也是提升能力的一种方法。在学习过程当中,须要设定目标,分模块逐步学习,测试学习成果,获取反馈,针对不足刻意训练。 而面试就是一种获取反馈的有效手段。能够针对面试不足,不断总结提升。 把面试当成是交流和学习吧,心态放平会好不少。

相关文章
相关标签/搜索