• 2017年网易校招Java面试题


    昨天参加了网易2017年校招面试,但是,一轮就被刷下来。仔细想想,确实自己实力不够,今后需要更加努力!以下我是本次面试的经历,主要讲述面试题。

    短信预约的是下午三点的面试,可是等到大概三点半才开始面试。我面试的Java开发,面试之前的几天也抽时间看了点网上的资料和书,但是,面试的时候才发现,实力不够,临时抱佛脚还是不行的。好啦,言归正传,看下面试的时候问的问题。
    (1) 自我介绍
    坐下来将简历递给面试官,面试官先让我做了个自我介绍。这个不多说,每个人都有自己的介绍方式,我一般说一些基本信息,加上我比较擅长的专业领域和一些平时对技术的专研,然后就是介绍下自己平时的兴趣爱好。

    (2) 项目介绍
    面试官问我在学校里做过什么比较大的项目。我简要的介绍了一下我们做的实训项目,和我在这个项目中所负责的模块,以及这个模块的主要实现逻辑。

    (3) 实习工作介绍
    我现在在公司实习快两个月了,可是并没有开始干什么拿得出手的事情。开始就是搭搭环境,改改bug,近期才分了点小任务。所以,这里我觉得,在面试的时候,我没有回答好这个问题。首先是真的没有做很多事情,其实是没有将做过的事情表达清楚。

    (4) 描述从Java源码到获得执行结果的的整个过程
    面试官问我这个问题,主要是因为我在简历里写了我了解JVM,唉,给自己挖了个坑。从源码到得到执行结果的过程我确实看过,可是应该是好几个月前看的了,平时没事又不是去用这些东西,所以忘得差不多了,我只能说出些大概。这个题确实没回答好。这个问题要说清楚我感觉不太容易,我找了一下,觉得这篇文章(http://my.oschina.net/xiejunbo/blog/614437)说到了一些,但是并不是解释的很好。

    (5) JVM内存分布
    这里写图片描述
    这张图片就是这个问题的一个大概的回答了,但是还需要知道这五个区所存放的具体信息,这篇博客(http://www.cnblogs.com/Cratical/archive/2012/08/21/2649985.html)写的比较详细,我就不再重复了。

    (6) JVM中的垃圾回收机制
    一般问了内存分布,那就会结合问垃圾回收,因为这是一脉相承的问题。内存是有限的,在内存不足的时候就需要对内存进行清理。在JVM中垃圾回收首先需要判断对象是否还有用,一般有引用计数法和可达性分析法。这两种方法都需要了解,同时知道引用计数法的相互循环引用问题。判断完对相关是否有用之后,那接下来就对没用的对象进行回收。那这里就涉及到垃圾收集算法,主要有标记-清除算法、复制算法、标记-整理算法以及分代收集算法。同时,还最好了解有哪些垃圾收集器。关于垃圾收集算法和垃圾收集器,这篇博客(http://jbutton.iteye.com/blog/1569746)写的很清楚。

    (7) hashmap的数据结构
    Map和Collection是面试中经常问及的问题。首先面试官问了我实现hashmap的数据结构,hashmap在底层是通过数组+链表的方式来实现的,这一点可以从源码里清楚地看出。然后问题hashmap是否线程安全,这个当然是线程不安全的了。那如何去让它变得线程安全呢?对于这个问题,这篇博客(http://flyfoxs.iteye.com/blog/2100120)写得非常好。

    (8) NIO框架
    在面试前确实没有用过也没有看过关于NIO框架的知识,所以,只能承认,我不会!所以,平时不能仅局限于够用,局限于学习工作中用到的,而应该多了解周边的知识。

    (9) Trie树
    这个也确实没有深入了解过,但是面试官写这个的时候好像也写错了,他自己也不确实是不是这么写。然后就给我说了一个场景,就是在输入框输入单词前几各字母,提示以这些字母开头的所有单词。我当时的想法是构建一棵树,根节点下是26个字母,然后每个字母下接26个字母,如此往复。但仔细一想,这好像有点可笑。

    (10) 堆排序过程
    最后面试官问了一下堆排序的过程,让我在纸上举一个例子,画一下排序过程。这个还是比较了解,先把原数组建构一个小顶堆,从最后的数字开始于自己的父节点进行比较和置换(如果满足置换条件),置换完成即可找到最小的数,将最小的数与最后一个数交换位置,再重复以上过程,就可以将数组进行排序。

    总结下来,就是整个面试中的问题都回答得不够好,或者根本没回答出来,所以结果也就只能这样了。只有在接下来的日子多努力了!希望我的分享能给你一些帮助,那便足矣。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    torch.expand()函数用法
    Oracle/PLSQL: Lead Function
    DockerFile介绍与使用
    4-甲氧基三苯胺,CAS号:4316-51-2
    【Gensim概念】01/3 NLP玩转 word2vec
    C++【算法】【动态规划问题】
    OIDC 在 Authing 控制台的配置流程 | 认证(二)
    行为型设计模式(上)
    【业务功能篇 131】23种设计模式介绍
    编译CentOS6.10系统的OpenSSHV9.4rpm安装包
  • 原文地址:https://blog.csdn.net/web13618542420/article/details/126095845