一般JAVA高级工程师的知识深度?

trivia 发布于 2018/06/05 15:59
阅读 9K+
收藏 7

一个Java高级工程师,对jdk重点源码深刻理解,达到如下程度?。

例如为什么Thread里有一个ThreadLocalMap类型的变量

ThreadLocalMap为什么作为ThreadLocal的内部类

ThreadLocalMap的扩缩容机制以及碰撞检测

ThreadLocalMap的Entry为什么使用弱引用类型

有些类中的capacity,threshold,position,mark,limit这些成员变量有什么用,如何影响类内部的运算?如何设置?

同理对其他重点类也要掌握至此,甚至达到凭记忆默写部分源码或关键源码的程度。

重点IO、线程、集合,锁、字符串(String,StringBuffer,StringBuilder)。。。。

JVM了解GC算法大类,每个大类里具体有哪些算法,

并可以叙述算法步骤,并了解每一步的理由。

熟练讲述常见JVM的内存结构,历代结构变迁及其改进理由。

各类JVM中GC垃圾收集器的种类以及使用场景(优缺点),各类收集器分别使用了什么GC算法来达到它们所描述的性能及功能要求,并且是如何达到的。

可以依据具体的应用场景,选择合适的JVM及参数,尽可能挖掘应用程序和宿主机潜力。

拥有手动改写字节码的能力(这里含义就是了解字节码结构及含义)

了解部分重点native方法的实现逻辑(不需要了解语法)

熟练说出各个JDK版本变迁的主要核心内容

对于重要的JSR可以快速说出JSR编号

熟练应用JAVA EE技术进行开发,可以快速上手各类Java开发框架这种自然是必备条件。

以上,仅限于JAVA技术平台,是暂时想到的,你们觉得过了还是不够?

加载中
1
f
freezingsky

一般都是看面试者会啥,才问啥,然后做一定的深度和广度的探测。再加上一次场景的分析以及解决方案,考虑的细节性等等!

1
sprouting
sprouting

这也太水了点,一个人的精力毕竟有限,想要样样精通,结果是样样不行。面试,从需求上是招一个人,但深层的需求是在适合的价格基础上招聘一个可以做现在公司业务的人而已。

可能你招聘的一个高级工程师就是为了解决现在业务规模太大,重新需要架构,你招聘进来一个JVM牛逼哄哄的有毛用

也可能因为公司业务繁多,需要一个会多种技能的工程师,比如Hadoop要会,微服务能搞起来的

也有可能这个工程师写代码非常快,短短时间就能完成功能的,过于片面的强大设计模式、jvm,数据库调优,我认为这样的面试官是不合格的

胡图涂
胡图涂
赞同
0
倔强的萝卜1

一个都不会咋办

0
开源中国首席路人王
开源中国首席路人王

需要会框架源码吗?

0
练打字的
练打字的

其实把jvm摸透了就非常非常厉害了;

0
喜之郎
喜之郎

尽整些没用的。你招个厨师,要他知道如何种田?

0
源码君
源码君

JAVA高级工程师 是个表面,只会一门Java就够了???? Java语言本身的弊端,怎么解决??

0
小翔
小翔

都不想深入java,其它语言也很有意思怎么办

0
sEvEnnn
sEvEnnn

面试专用

0
一只小桃子
一只小桃子

我觉得有病

一只小桃子
一只小桃子
面试官会什么,就会问对方什么。这属于初级面试官
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部