Java后台工程师面试杂记——不跳不涨工资星人跳槽经历
经过接近一个月的时间,完成换工作这件“小事”,前后总计面试了多家公司,最后也没接到几个offer,不过最终总算尘埃落定,就对这个过程进行一个总结吧。

在某互联网公司工作了近一年的时间,但是频繁的业务需求和大强度的加班,无聊的工作内容以及公司就要搬家的前景,促成了自己换工作的打算,在做出这个打算之后几乎立即就和老大说了这件事情,这个举动结果有好有坏,正面意义是我请假或是懒得请假去参加面试的时候,显得没啥心理负担,负面影响就是如果短时间找不到就只能先滚犊子了。因为面试的是Java后台开发,而且是属于之前没看书纯粹通过面试学习面试的,可能对于刚刚工作一两年准备换工作的Java后台开发更有借鉴意义吧。
创业公司:小微律政,爱旅行,游趣科技
小微律政是法务O2O创业公司,在我面试的过程中正在冲击A轮融资,所以承诺期权,最终给了offer,最终因为自己希望去大公司而最终拒接了offer,不过个人仍然看好他们的产品。
技术方面:之前的技术团队人数较少,面试的时候也比较偏重业务,相对对技术的考察不是很多。
旅游网站主要是做自己的旅游产品,去的部门是做后台数据的,因为去的时候没有带简历而他们也没有打印简历,整个面试就持续了十几分钟就结束了,这一面给我最大的教训就是不要在周五的晚上去参加面试,而且一定要带简历。
游趣科技面试的时候刚刚面试完亚马逊被鄙视了,心情抑郁而且公司产品也不太看好,所以面试的时候就没有太有兴趣,最终谈offer的时候就没麻烦HR了。
中型公司核心部门:先锋支付,京东到家支付,美团支付
面试java支付工程师,很明显这是该公司的核心部门,所以面试考察的东西也十分多。而且这三家公司面试类型相同,结果也都没有给offer,相对来说更有共性。支付工程师主要面试两个方面的知识:数据库、多线程。同时考察队Java基础知识的了解。
Java基础知识:
三家公司都问了java集合类的相关概念,各种集合结构之间内在区别:
ArrayList,Vector,LinkList区别
HashMap,HashTable,ConCurrentHashMap区别
Collections.synchronizedXX 方法的原理
设计模式,这种问题感觉没啥意义,工作中用哪个模式还是靠感觉和经验
Java某些原理:RPC,注解,反射,内存,GC,其中Java内存模型和GC过程几乎必问,通常也比较深入,有时候甚至会跳到其他语言的内存机制上,JVM参数以及相关调优,不过还遇到要求JVM调优经验的(-。-)
Java多线程:对多线程包java.util.concurrent的了解,多线程设计模式Future,ThreadLocal使用及原理,多线程协同demo(纸上代码)
Java新技术:NIO,Java 8、9,如果对这方面很熟悉,能够给人一种geek范,也许会有加分(如果之前基础知识不好就变成自黑了)
数据库知识:
SQL语句的书写,由于某些支付公司采用oracle数据库,所以对这个数据库最好有一定的了解。
数据库基础知识,join操作,数据库锁,数据库事物特性ACID
NOSQL,memcache,redis区别,使用时数据一致性的解决,负载均衡
数据库索引,索引的添加修改对性能有何影响,其内在数据结构,联合查询的索引使用,为了配合索引sql语句书写规范。
数据库锁,悲观锁乐观锁,锁的粒度以及相应SQL语句,锁隔离界别
企业开发相关框架
这部分各个公司通常都会考察spring-AOP/IOC,然后考察在工作中的使用,这部分是我的弱点,因为实在是没用过。
Tomcat性能调优,相关参数
Nginx,负载均衡
Memcache 一致性Hash
Zookeeper master/slave协同
SSH使用,MyBatis使用,基本框架与原理
如果所在公司内部有开源框架并且工作中涉及到,看过源码并且比较熟悉,框架很有特点,那可以和面试官侃一会,如果框架各种黑点就不要提了。
外企:亚马逊
亚马逊面试总体就是被虐,因为和国内企业不太相同的是,亚马逊比较重视编码规范,所以会进行纸上代码编写的考察,并且问题数量和质量都是其他公司所没有的,第一轮面试两个小时,两个面试官都首先让你介绍一下自己的项目吹吹牛B缓解一下紧张心情,然后面试算法,第一个面试官主要考察综合能力,所以问的比较广,也会问一个简单算法,现在记得应该是最大子段和的问题,不过给出的数组是循环数组,尽管这个问题没有做过,但是自己当时还是给出了一个解法,通过将数组扩大为原来两倍然后给出了一个最优子结构性质,相对内存消耗更大,不过还算是写出来了。
而第二个面试官问了两个问题,简直就是悲剧,第一个是单链表逆转,写了不长时间的的java之后,对这种指针(引用)操作居然变得十分陌生,费了近20分钟才写出来;第二个问题是二叉树最近公共父节点,完全考察二叉树性质的问题,但是在面试的时候连思路都没有自己给出来,然后在面试官提示下写的函数也在边界处理上问题很多,感觉一年工作时间智商下降了~~~~(>_<)~~~~
业务部门(百度,乐视,人人贷,网易电商)
面试这两件公司的内部业务线部门,相对于他们的核心部门,要求更低一些(核心部门简历直接拒*_*),面试问题和的核心部门基本相同,相对而言要求很低。
感觉面试官就是这么想的:怎么又来了一个蠢货,不过谁叫我们缺人呢,勉强给个offer吧,敢多要工资就滚吧。
所以得到这种offer也就别想太多了。

找工作除了离开原来的小伙伴,其实更加深刻的一点是让我们认识到差距,也许应该每隔一段时间面试一次打击一下自己O(∩_∩)O
总体上,对于一个高级Java工程师的要求还是蛮多的,首先是Java基础知识,这点不需要多说了;
其次是互联网工作中用到的各种技术,数据库,框架,如果了解内在原理最好,如果读过源码就赞了;
最后如果面试外企或是核心部门,对纸上代码还是有要求的,而且如果面试算法,最好用C/C++ 写,拿java写算法总是感觉别扭,python写就太偷懒了,面试官表示你这么机智又不肯老老实实滚让我们很为难啊。。。
Java后台工程师面试杂记——不跳不涨工资星人跳槽经历的更多相关文章
- Java后台工程师的3次面试
第一次面试 我面的是一个中小公司,在BOSS直聘上面找的,去之前看了看关于Java的一些基础知识,在牛客网上面看的,也做了一下牛客网的题目.然后跟HR约了一个时间就去面试了.因为第一次面试,一点经验都 ...
- JAVA开发工程师面试(1)
我已经有很长一段时间没有更新博客了,难道是博主我变懒惰了吗?哎,这样可不行啊,我还有好多知识要学习,要和大家分享.以后我需要更加努力,改掉自己的惰性.本人文采不怎么样,只能是把自己所想的说出来,想和大 ...
- Java软件工程师面试常见问题集锦之一
1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象 ...
- Java开发工程师面试-基础
JDK.JRE.JVM有什么区别? JDK:Java Development Kit 针对Java程序员的产品 JRE:Java Runtime Environment是运行Java的环境集合 JVM ...
- Java开发工程师面试-Web基础与数据处理
Servlet执行流程 客户端浏览器向Tomcat服务器发送Http请求 Tomcat解析web.xml文件,找到对应的url以及servlet-name,根据servlet-name找到对应的ser ...
- java后台框架面试必须会的东西
- Java高级开发工程师面试笔记
最近在复习面试相关的知识点,然后做笔记,后期(大概在2018.02.01)会分享给大家,尽自己最大的努力做到最好,还希望到时候大家能给予建议和补充 ----------------2018.03.05 ...
- java中高级软件工程师面试总结
最近去了几家公司面试java中高级工程师,打击挺大的,感觉自己一直以来没有很好的深入学习,对各种知识都是一知半解,但心又太高,想找更高薪的职位,结果面试屡屡碰壁,哎,心情好低落,也是时候静下心来,好好 ...
- Java后台面试 常见问题
Java后台面试 常见问题 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米.百度.阿里.京东.新浪.CVTE.乐视家的研发岗offer.我找的是java后台开发,把常见的问题分享 ...
随机推荐
- 剑指offer系列28--字符流中第一个不重复的字符
[题目]请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”.当从该字符流中读出前六个字符“google”时,第一个只出现 ...
- 剑指offer系列24---数组中重复的数字
* [24] * [题目]在一个长度为n的数组里的所有数字都在0到n-1的范围内. * 数组中某些数字是重复的,但不知道有几个数字是重复的. * 也不知道每个数字重复几次. * 请找出数组中任意一个重 ...
- ajaxForm笔记
<script src="Scripts/jquery.form.js" type="text/javascript"></script> ...
- asp.net中Respons.Write()的用法
很多时候,我们为了是页面的传输速率更高.很自然回去选择脚本和ajax结合进行传值,在传值如要向页面回传数据时,可能只有一次也会是多次.一次的情况下我们可以很好的用Respons.End()方法来截取我 ...
- datagridview 列位置 设置顺序与加载显示顺序不一致
因为: dgv.AutoGenerateColumns = false;//禁止自动生成列 该属性是在 dgvJdmx.DataSource = dt; 之后设置的原因. 将两者调换,即可.
- 在 Perl 中使用 Getopt::Long 模块来接收用户命令行参数
我们在linux常常用到一个程序需要加入参数,现在了解一下 perl 中的有关控制参数的模块 Getopt::Long ,比直接使用 @ARGV 的数组强大多了.我想大家知道在 Linux 中有的参数 ...
- Ubuntu Server上的LVM配置
在安装Linux的时候,通常遇到的一个比较头痛的问题就是分区,到底每个区该分多少,用了一段时间之后,某个分区又不够用了,该怎么办?如果是普通的服务器,那一切都好说,大不了就关机重新划分分区嘛,但是对于 ...
- 黄聪:C#图片处理封装类(裁剪、缩放、清晰度、加水印、生成缩略图)有示例(转)
C#图片处理示例(裁剪,缩放,清晰度,水印) 吴剑 2011-02-20 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 前言 需求源自项目中的一些应用,比 ...
- python 读取sqlite3 数据库
import sqlite3 name = "tom" age = 30 con = sqlite3.connect("d:\\test.db") cur = ...
- hibernate.cfg.xml讲解
<session-factory> <!-- 配置数据库连接信息 --> <!-- 数据库驱动 --> <property name="connec ...