美文网首页
JAVA后端面试经历分享:阿里 字节 网易端 已拿offer

JAVA后端面试经历分享:阿里 字节 网易端 已拿offer

作者: 小美人鱼失去的腿 | 来源:发表于2020-09-24 17:06 被阅读0次

    前段时间遇到刚毕业没多久的实习生,已经在阿里实习中经受苦难50多天了。向他请教了一些他的面试经历,在这分享给大家

    以下正文

    情况介绍:

    本科阶段:人在双非,问就是混

    当前宁波某软院渣硕,去年7月份开始Java的学习,道阻且长

    当前面试情况:腾讯(一面挂)、美团(二面挂)、网易严选(成功)、杭州字节lark(口头offer)、阿里新零售业务平台(成功)、滴滴交易平台(HR面)

    面筋总结:

    因为并不是每家都有做录音,忘了一些面试问题。就贴一下面过比较普适性的问题。

    此外, 只是做一点些关键词的提示,具体达到面试要求需要自己去详细的理解和掌握

    文章所有面试题和答案小编都为大家整理了:私聊,暗号:面试,还有更多大厂面试专题资料哦

    image

    JVM:

    1. 【高频】Java内存区域 :

    { 程序计数器 , 虚拟机栈 ,本地方法栈 , <typo id="typo-379" data-origin="堆" ignoretag="true">堆</typo> ,方法区 ,元空间 } // 每个区域要能介绍一下

    2. Minor GC 触发条件 : eden区剩余内存是否足够 两种情况分开分析

    FULL GC 触发条件 : Minor GC 平均晋升空间大小 > 老年代连续剩余空间,则触发FULL GC

    **3. 【高频】 判断对象死亡的方法 : **{ 引用计数法 , 可达分析算法 }

      ** 深入一些,:GC root对象有哪些?为什么选择他们做GC root对象**
    

    4. 垃圾收集算法 : { 标记清除算法 、标记整理算法 、 复制算法 、 分代收集算法 }

        **深入一些: 各个算法的优点和适用场景**
    

    **5. 垃圾收集器 : **{ serial 、 parallel 、 CMS 、 G1 }

    CMS 、G1 重点 , 介绍工作流程和优缺点

    6. 内存泄漏

    例子: { 单例 , 容器 等等}

    原因 : 长生命周期持有短生命周期引用

    7. 引用类型 ; { 强引用、 软引用、 弱引用 、 虚引用 }

    8. 【高频】 类加载过程 : { 加载 , 连接 , 初始化 }

        **有哪些类加载器 , 能否自定义 Java.Object.String 的类加载器 ?**
    

    9. 【高频】 双亲委派机制 介绍 & 作用

    image

    Java :

    1. ArrayList 和 LinkedList 的区别

    2. HashMap & ConcurrentHashMap 的比较 : 线程安全问题等等

    ** 深入一些 : HashMap 为什么线程不安全? 能否举例 = { 并发resize()触发闭环结构 ,覆盖put操作 }**

    3. 【高频】 HashMap 的 相关问题 // HashMap系列需要通过关键源码理解,比较重要

      **为什么 HashMap的size 为 2的幂次方 ?**
    

    ** HashMap resize()过程能否介绍 ?**

    ** HashMap效率受什么影响 (负载因子、hash数组size)?**

    ** HashMap中扰动函数的作用 ?**

    **4. Hashtable 和 HashMap的区别 **: { 底层数据结构 (JDK1.8后不同)、父类不同 、扩容方法不同 、 线程上锁范围不同(重点) }

    5. equals 和 == 区别

    5. 为啥重写equals要重写hashCode()

    hash值相等,而两个对象不一定equals

    6 . 【高频】 String StringBuffer StringBuilder 区别 和各自使用场景

    ** 深入一些 : String 是如何实现它不可变的? 为什么要设置String为不可变对象 ? (字节一面这个问题给我问懵了)**

    7. 接口和抽象类区别

    8. 重写和重载的区别

    9. 深拷贝和浅拷贝区别

    10. Java三大特性

    11. Object的方法 : { finalize 、 clone、 getClass 、 equals 、 hashCode }

    12. 【高频】 设计模式 : { 单例模式 、 工厂模式 、 装饰者模式 、 代理模式 、 <typo id="typo-1805" data-origin="策略" ignoretag="true">策略</typo>模式 等等} (此处我的掌握也不是很好)

    **13. 深入一些 : **单例模式为什么采用双检测机制 ? 单例为什么用Volatile修饰? 装饰模式和代理模式区别?

    并发 :

    **1. 线程的状态 **: { new ,runnalbe , wait , time-wait , block , terminated }

    2. 进程 、 线程 、 <typo id="typo-1993" data-origin="协程" ignoretag="true">协程</typo> 的含义和区别 // 个人理解 是一组渐进提出的概念

    **3. 进程间通信方式 **: { 管道 、FIFO 、 信号量 、 共享内存 、 消息队列 、 Socket }

    4. 如何避免死锁 ? 死锁的四个必要条件

    5. Sleep和wait的区别

    6. 【高频】Sychronized 和 lock 的区别 ?

    7. Sychronized的底层优化 : { 无锁、偏向锁、轻量级锁 、重量级锁 }

    8. volatile的作用 : { 指令重拍 、 保证变量的可见性(设计JMM)}

    9. ThreadLocal 底层原理

    10. 【高频】 线程池

    **11. 线程池构造器涉及哪些参数 : **{ corePoolSize , maximumPoolSzie , timeout , timeUnit , RejectHandler , 等待队列 , 线程工厂 }

    12. 介绍线程池工作过程?

    13. 线程池拒绝策略<typo id="typo-2460" data-origin="那些" ignoretag="true">那些</typo>

    14. 适用Executor创建线程池的弊端?

    15. AQS 框架原理和 源码理解

    计网 :

    1. TCP/IP 模型 & OSI模型

    2. 应用层、传输层、网络层常见协议 : { DNS 、 HTTP 、FTP、 STMP 、SSL、 TCP、 UDP、 ARP、 IP }

    3. 【高频】 TCP 三次握手 、 TCP四次挥手

    ** 深入一些 : 为什么三次握手,能否两次?**

     **   四次挥手中什么是 time_wait 状态 ? close-wait 状态?**
    

    ** time_wait状态什么场景下过多 , 会造成什么问题?**

    4. TCP可靠性 : { ARQ 、 流量控制 、 拥塞控制 、 校验和 }

    **5. 【高频】输入URL显示主页的过程 ** // 个人仅遇过一次,但是看面经感觉问的挺多

    **6. HTTPS 和HTTP 区别 ** // 字节专属问题

    ** 深入一些 : HTTPS 加密过程介绍 ?**

    7. Cookie和Session的区别

    8. Http1.0 和HTTP1.1 和 Http2.x 的区别

    9. get和post的区别

    10. 常见的状态码

    操作系统(相对较少):

    1. 用户态和内核态的区别

    2. fork()作用

    3. Select poll epoll的区别

    4. 虚拟内存作用? 内存分页的作用?

    5. 缺页异常的介绍

    6 . OOM问题和 StackOverFlow的区别

    MySQL:(对redis 需要学习 , 个人理解不深不多介绍) // MySQL比较重要

    1. 【高频】MyISAM 和 InnoDB的区别 : {是否支持行锁 、 是否支持十五 、 是否支持 MVCC 、 底层索引结构不同 }

    2. 事务特性ACID

    ** 深入一些 : 为什么要有一致性 ? AID不是已经保证了一致性了吗 ?**

    **3. 并发事务带来的问题 : **{ 脏读 、 修改丢失 、 不可重复读 、 幻影读 }

    4. 【高频】<typo id="typo-3467" data-origin="事务" ignoretag="true">事务</typo>的隔离级别

    5, 【高频】 MVCC机制

    6 . 【高频】索引

    ** 为什么索引使用B+树结构,而不是B树**

    ** 为什么索引使用B+树结构,而不是红黑树 : { 磁盘预读取 、红黑树高度 }**

    7. 聚簇索引和非聚簇索引区别? 主键索引和二级索引了解吗?

    8 . 为什么不对每个列创建索引呢?

    9. 【高频】SQL语句优化 ,SQL题目(字节要求撸代码)

    10. explain中 rows type key extra字段的含义?

    11. count(1) count() count(列值)的区别*

    其他:

    需要了解linux的指令和 git指令 ,

    对一些大数据场景题需要了解。 例如 1亿数据取top10 , 1亿数据取出现频率top10,1亿URL取出重复URL

    64匹马,8个跑道,最少比赛几次选出前八?等智力题(字节常考)

    此外,项目相关的知识体系需要准备, 例如项目涉及Netty和Zookeeper,则会去准备相应的问题。此处因人而异。

    以上的面试问题及答案小编都为大家准备好啦,私聊免费领取,暗号:面试 就可以免费领取啦,还为大家准备了更多其他学习资料哦

    image image

    相关文章

      网友评论

          本文标题:JAVA后端面试经历分享:阿里 字节 网易端 已拿offer

          本文链接:https://www.haomeiwen.com/subject/pactuktx.html