您的位置:首页 > 编程语言 > Java开发

高级Java工程师要求

2017-09-15 15:27 176 查看

最近在面试高级Java工程师,想谈谈我心中高级Java工程师的样子:

简历部分:

不知道为什么拿到的绝大部分的工程师的简历是没有照片的,我不知道为什么,难道认为公司主要看能力而照片会分散注意力么,那为什么还要写性别,民族,籍贯什么的,这些都工作价值很大么,那就只能说明不够重视,所以说一张整洁大方的照片是加分项,至少在我面前是这样的,邮箱不要用QQ邮箱,不要问为什么。不同阶段简历肯定不同,应届生的简历应该突出基础能力,例如数据机构算法,网络基础,Java Web基础原理和主流框架的熟练程度,编程基础能够决定是否要你,工程应用能力决定能达到什么高度。工作两年以上,我希望能看到在某一方面有十分深入的理解,例如并发,数据库,框架源码级别,或是JVM等等。

关于面试部分:

面试后端题目

自我介绍:

项目情况:

1.主要的职责

2.主要的贡献

3.解决的难点

4.心得

基础:

1.数据结构算法

2.多线程模型

3.servlet原理

4.JDBC原理

5.spring特点

中高级特性:

1.并发包

2.类加载机制

3.GC原理与调优

4.设计模式与框架源码

5.spring IOC AOP原理与优点

数据库:

1.复杂SQL与优化

2.事务机制

3.spring事务应用

4.索引原理

架构能力:

1.用过哪些中间件

2.zookeeper作用

3.分布式事务解决

4.缓存

5.CAP和BASE和ACID的理解

沟通和学习能力职业规划:

1.平时怎么学习

2.喜欢逛什么社区

3.未来打算如何

4.对公司看法,有什么想问的

以上这些要点是我在十分钟内罗列的,没有参考任何资料,这些要点是我的经验和各种项目和整个业界对高级工程师的期望。

接下来谈谈我考察这些部分的理由吧。

自我介绍和项目介绍,能够对面试者有个整体的印象了解,例如表达沟通能力和大概工作背景,因为是社会招聘,不仅要看项目经验,更要看你在项目中所扮演的角色,解决的难点,穿插当中的问题可以考察工程应用能力。甚至会让画出架构图。

然后了解了项目之后我会进入技术能力的考察,如果我对项目介绍满意,Java基础部分我会选择性问一问,我是比较喜欢连环炮的,例如问数据结构算法,我会问数组和链表区别,然后问jdk中线程的类的是实现,然后问及相关的数据结构,然后问到实现细节,然后线程安全与否等等,一条线能够问到很深入。如果中途遇到你不太熟悉的程度我会纪录一下,然后问向其他部分,多来几个连环炮,基本上就能知道一个人的能力了,当然如果有必要,我会让现场写代码,例如我今天上午就让一个面试者写一个死锁的例子。接下来我来模拟几个连环炮:

多线程模型 - > 各种状态之间转换 -> jdk常见的并发类 -> 如何保证线程安全 -> volatile实现原理 -> 线程池与队列 -> 调优

spring 特点 -> AOP原理 -> 代理种类 -> 实现细节 -> CGLib局限 -> 性能如何

JVM组成 -> 内存模型 -> 垃圾收集算法 -> 类加载 -> 收集器类型 -> 如何调优

spring MVC 组成 - > 怎么映射控制器 -> 控制器单例否 -> 拦截器应用

使用过MySQL -> 数据库引擎区别 -> 事务控制 - > 隔离级别 -> 加锁种类区别 -> spring事务传播 -> 区别

分布式和集群区别 -> 服务发现和负载均衡 -> 中间件 -> 分布式事务处理 -> 缓存设计

程师前4个能答好是关键,第5个不熟悉没关系,毕竟才进来不可能让去你考虑架构。

以上连环炮能扛住,我就会问问平时怎么学习,毕竟我觉得能回答好上面的人都不简单,如何学习的对我也是一个启发,也能看出对方是否充满激情,未来的追求,能够了解面试者是架构师路线合适技术管理路线。

技术博客能体现一个人学习分享的欲望,如果开源账号和博客平时并没怎么更新,还不如不要写出来,反而给面试官感觉并不好。

最后一般会让面试者给面试官提问的机会,这个时候你可以问一些职位相关的问题,表示你是在认真考虑这份工作,这个看个人。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: