经过接近一个月的时间,完成换工作这件“小事”,前后总计面试了多家公司,最后也没接到几个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后台工程师面试杂记——不跳不涨工资星人跳槽经历的更多相关文章

  1. Java后台工程师的3次面试

    第一次面试 我面的是一个中小公司,在BOSS直聘上面找的,去之前看了看关于Java的一些基础知识,在牛客网上面看的,也做了一下牛客网的题目.然后跟HR约了一个时间就去面试了.因为第一次面试,一点经验都 ...

  2. JAVA开发工程师面试(1)

    我已经有很长一段时间没有更新博客了,难道是博主我变懒惰了吗?哎,这样可不行啊,我还有好多知识要学习,要和大家分享.以后我需要更加努力,改掉自己的惰性.本人文采不怎么样,只能是把自己所想的说出来,想和大 ...

  3. Java软件工程师面试常见问题集锦之一

    1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象 ...

  4. Java开发工程师面试-基础

    JDK.JRE.JVM有什么区别? JDK:Java Development Kit 针对Java程序员的产品 JRE:Java Runtime Environment是运行Java的环境集合 JVM ...

  5. Java开发工程师面试-Web基础与数据处理

    Servlet执行流程 客户端浏览器向Tomcat服务器发送Http请求 Tomcat解析web.xml文件,找到对应的url以及servlet-name,根据servlet-name找到对应的ser ...

  6. java后台框架面试必须会的东西

  7. Java高级开发工程师面试笔记

    最近在复习面试相关的知识点,然后做笔记,后期(大概在2018.02.01)会分享给大家,尽自己最大的努力做到最好,还希望到时候大家能给予建议和补充 ----------------2018.03.05 ...

  8. java中高级软件工程师面试总结

    最近去了几家公司面试java中高级工程师,打击挺大的,感觉自己一直以来没有很好的深入学习,对各种知识都是一知半解,但心又太高,想找更高薪的职位,结果面试屡屡碰壁,哎,心情好低落,也是时候静下心来,好好 ...

  9. Java后台面试 常见问题

    Java后台面试 常见问题   从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米.百度.阿里.京东.新浪.CVTE.乐视家的研发岗offer.我找的是java后台开发,把常见的问题分享 ...

随机推荐

  1. Java-Thread

    1. 线程的创建和启动 1.1 继承Thread 在run方法里,通过this获取当前线程. 多个线程不能共享实例变量. 1.2 通过实现接口 1.2.1 实现Runable接口 在run方法里,只能 ...

  2. RHCE7.0练习题汇总[转]

    RHCE7.0练习题汇总38 RHCSA部分 关于密码破解,在上午的考试中需要我们自己安装图形化界面和破解root密码,root的密码按照题目的要求来进行修改.可以使用单用户模式或者使用上课讲的re. ...

  3. RabbitMQ和Kafka

    转自通九大神的博客 起因 最近公司RabbitMQ的集群出了点问题,然后有些亲就说RabbitMQ慢且不好用,是一个瓶颈,不如换成Kafka.而我本人,使用RabbitMQ有一点久了,认为这个事情应当 ...

  4. 从1970年1月1日00:00:00 GMT以来此时间对象表示的毫秒数转化为Datetime

    1970年1月1日(00:00:00 GMT)Unix 时间戳(Unix Timestamp)对时间转换 将Long类型转换为DateTime类型 /// <summary> /// 将L ...

  5. C#如何判断我的程序已经有一个实例正在运行

    static class Program { private static Mutex mutex; /// <summary> /// 应用程序的主入口点. /// </summa ...

  6. Android四:sqllite

    1.扩展类SQLiteOpenHelper xxSQLiteHelper extends SQLiteOpenHelper public xxSQLiteHelper(Context context, ...

  7. Java compiler level does not match the version of the installed Java project facet. springmvc1 和 Target runtime Apache Tomcat v7.0 is not defined.

    Java compiler level does not match the version of the installed Java project facet.springmvc1 : Targ ...

  8. WebAPI 安全性 使用TOKEN+签名验证(上)

    首先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题, ...

  9. MST_prim

    刚刚发了mst 的kruskal,现在再来一发,说一说prim咯. prim适用于稠密图. 与kruskal不同,prim是从一个点开始,不断加入新的点直至连通所有点. 讲讲prim的过程,我们假定有 ...

  10. php命名空间学习

    在一个命名空间中,当 PHP 遇到一个非限定的类.函数或常量名称时,它使用不同的优先策略来解析该名称. 1.类名称总是解析到当前命名空间中的名称.因此在访问系统内部或不包含在命名空间中的类名称时,必须 ...