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

trivia 发布于 06/05 15:59
阅读 7K+
收藏 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技术平台,是暂时想到的,你们觉得过了还是不够?

加载中
2
繁华似水
繁华似水

你这个说句实在话,前面的太细,后面的太宽泛。而且字节码这种问题,了解就算完事,但没多少人会记住。有些类中的啥啥啥。那个离开了具体的实现,都是瞎问。而且现在thread之流用的越来越少了。

GC算法,这个就比较的尴尬了,如果不是问的技术专家,如果只是道听途说,还是不要问了,免得献丑。吹牛谈资就算了。而且9以后,jvm层变动也比较多。堆栈什么的现在基本上都有改动,还是早些年学java的时候,老师让画过,早他娘的忘了。

重点类的常见实现,使用方式,jvm常用配置参数及意义,这个到是认可的。其他的问的要么太飘,要么没啥意义。

日常高级java的面试题打开方式,设计模式中常见的几种的实现方式和应用场景。这个才是考察写一线高级工程师的业务能力的。

常见框架的源码阅读层次和深度。比如mybatis,spring之类的。贴合工作实际,招回来也能上手写业务。

我写代码这些年,也没这么用过threadlocal,使用场景太狭隘。你还不如问问多并发的情况下如何使用锁来的更加贴合实际生产环境代码。

 

1
随机9380fa
随机9380fa

以上只是基础啦大哥,除了JVM,你还得研究深JVM外围框架,如SRPING 内核   ,HADOOP原理,TENSORFLOW算法等这些知名框架,还有时不时要问你算法,架构,设计模式,变态的会考你公务员行政逻辑题 ,过了这么多关,你才算高级。

黑狗
黑狗
回复 @阳光暖暖 : 不能用二进制写一个操作系统能叫高级?
阳光暖暖
阳光暖暖
回复 @vikon : 除此之外还要自己写一个java语言否则不算高级
vikon
vikon
还要手写个jvm啊手写的java编译器啊什么的。
1
f
freezingsky

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

1
sprouting
sprouting

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

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

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

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

0
0
逍遥北极狼
逍遥北极狼

各个版本变迁 呵呵哒,JDK每个版本的特性要是记混淆了,会不会打屁股,问算法、GC收集器,内存模型、线程池、NIO这些都没问题,要是扣某一个类的入参,这些什么作用呢?

0
JPer
JPer

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

0
喜之郎
喜之郎

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

0
PengTdy
PengTdy

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

返回顶部
顶部