zoukankan      html  css  js  c++  java
  • 阿里Java研发工程师实习面经,附面试技巧

    作者:如何进阿里
    链接:https://www.nowcoder.com/discuss/72899?type=0&order=0&pos=17&page=1
    来源:牛客网

    前言

    十分幸运 拿到阿里云的offer,感谢周围无数人对我的支持和鼓励,所以写篇面经希望可以帮助大家。

    面试中,运气占很大一部分的,所以你们若是没有通过,一定不要气馁,继续加油。

    一个学习技巧分享

    每个努力的人 都值得钦佩,无论结果如何。我说点面试中的小技巧,可以帮助你更好发挥:

    完全可以将学到的知识讲给自己(或者讲给别人),若是自己(别人)听你的讲述 能够听懂(使用自己的话去讲,而不要有专业术语),那么说明 你已经学好了。其原理就是 费曼学习法。感兴趣的人可以去了解下。
    我个人习惯于 将一个知识点 分解为 xxx是什么xxx有什么用如何实现这个功能的(核心的工作流程)缺点是什么(以及为什么有这个缺点,缺点如何补救)。

    举个例子: CMS垃圾回收器回收时为什么有内存碎片 , 首先分解为CMS是什么,内存碎片是什么?CMS垃圾回收器有什么用和Serial ParNew Parallel 等比较,优势,CMS是如何工作的,来实现尽可能降低响应时间的,为什么CMS有这个缺点,它是如何取舍的,如何补救这个缺点。

    这些子问题都回答好,那么基本上这个问题就学的可以了。

    这样可以检测你是否学好,而且,若是你都没法条理清晰地讲给自己,那怎么条理清晰地讲给面试官呢?

    接下来就写下三次面试题目:

    阿里一面:

    1.个人介绍

    2.项目介绍,项目介绍首先讲最好的项目,因为后面的项目可能都没时间去讲。

    3.数据库 联合索引 用法

    4.Spring IOC初始化过程

    5.ConcurrentHashMap实现原理

    6.CAS操作

    7.ReentrantLock和Synchronized区别

    8.CMS垃圾回收过程

    9.Full GC次数太多了,如何优化。

    10.直接内存 如何 管理的

    11.线程池 参数。

    线程创建的过程。有几种方法。

    线程资源如何回收的。

    一个题目:如何将一个二叉树,转为有序的双向链表。

    阿里二面

    1.自我介绍

    2.项目介绍

    3.堆和栈介绍

    4.线程安全

    5.乐观锁悲观锁

    6.TCP三次握手

    7.socket通信有关,select epoll

    8.项目中的难点有哪些

    我答得是:使用一个组合的设计模式 去解决文章多级分类的问题。

    交叉面

    1.自我介绍

    2.项目介绍

    3.做这个项目的动机

    4.TCP UDP IP ICMP

    5.知不知道一个应用层协议,运输层既没有使用TCP,也没有使用UDP

    6.二叉树中求最长路径。

    递归的方式去实现。

    先求左子树深度,后求右子树深度。相加减一,那么就是以当前结点为转折点的解。

    然后递归求左子树的解,和右子树的解。返回当前解,左子树解,右子树解中最大的解。时间复杂度为O(n*logn)

    其实可以优化到O(n) ,其实不必求两个子树的解,只需要求较深子树的解即可。

    7.有什么想问我的吗?

    //您觉得成为一个顶尖高手,最重要的是什么呢?

    兴趣。做自己感兴趣的事,就不会很疲惫,也会很开心。 //这一点我深有同感。

    抓住你的兴趣,做你想做的事,自己驱动自己进步。

    //很感谢您的建议。

    HR面试

    1.自我介绍。

    2.项目介绍。项目中难点。得过啥奖没。

    3.项目有什么不足?

    4.前面的面试 发挥怎么样?

    5.前面的面试难度怎样?

    愿大家都能拿到自己理想的offer!

    欢迎关注我的微信公众号:“Java面试通关手册”(坚持原创,分享美文,分享各种Java学习资源,面试题,以及企业级Java实战项目回复关键字免费领取):
    微信公众号

  • 相关阅读:
    [LeetCode] 1103. Distribute Candies to People 分糖果
    [LeetCode] 994. Rotting Oranges 腐烂的橘子
    [LeetCode] 面试题 10.01.合并排序的数组
    [LeetCode] 207. Course Schedule 课程表
    Windows下利用virtualenvwrapper指定python版本创建虚拟环境
    Vagrant Ansible Playbook 安装一群虚拟机
    selenium grid的使用与配置
    selenium之 玩转鼠标键盘操作(ActionChains)
    Python3.7 dataclass 介绍
    简单的验证码识别
  • 原文地址:https://www.cnblogs.com/snailclimb/p/9086360.html
Copyright © 2011-2022 走看看