面试腾讯被问 JVM 性能调优,勉强入职后,发现工资差了这么多

发布于: 2020 年 07 月 02 日

​前言

前几天有朋友老刘联系我,问我现在性能调优这么重要吗?就因为一个性能调优,工资差了这么多!



详细了解后才知道,老刘前段时间去面试腾讯了,在我想吐槽他为什么不金九银十再去的时候,他告诉他成功面经腾讯了,但是因为性能调优回答得不好,谈薪资时被狠狠砍了一刀!





下面我们来聊聊JVM性能调优

Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来。



Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等。笔者根据个人经验,将Java 性能优化分为 4 个层级:应用层、数据库层、框架层、JVM 层





每层优化难度逐级增加,涉及的知识和解决的问题也会不同。比如应用层需要理解代码逻辑,通过Java 线程栈定位有问题代码行等;数据库层面需要分析 SQL、定位死锁等;框架层需要懂源代码,理解框架机制;JVM 层需要对 GC 的类型和工作机制有深入了解,对各种 JVM 参数作用了然于胸。



为了便于大家的理解和学习,笔者在这里给大家准备了一份JVM性能优化知识点PDF文档,需要的朋友点赞关注后,加VX:gyhycx7980 备注:InfoQ 即可免费领取!!



先来看看这份大佬整理的JVM性能优化知道点PDF吧

一、JVM内存区域划分



  1. 程序计数器(线程私有)

  2. Java栈(线程私有)

  3. 本地方法栈(线程私有)

  4. 堆(线程共享)

  5. 方法区(线程共享)

  6. 直接内存(线程共享)





二、JVM执行子系统



  1. Class类文件结构

  2. 字节码指令

  3. 类加载机制

  4. 类加载器

  5. Tomcat类加载机制

  6. 方法调用洋解





三、垃圾回收器和内存分配策略



  1. Java中是值传递还是引用传递

  2. 引用类型

  3. 基本垃圾回收算法

  4. 分代处理垃圾

  5. JAVA中垃圾回收GC的类型





四、编写高效优雅Java程序



  1. 面向对象

  2. 方法

  3. 通用程序设计





五、性能优化



  1. 常用的性能评价/测试指标

  2. 常用的性能优化手段

  3. 应用服务性能优化

  • 缓存

  • 异步

  • 集群

  • 应用相关





对于JVM性能优化还不太了解的朋友,需要的朋友点赞关注后,加VX:gyhycx7980 备注:InfoQ 即可免费领取!!

开局一张图,内容全靠编





JVM性能优化面试题

JVM内存区域常见问题



  1. Java 内存分配?

  2. Java 堆的结构是什么样子的?

  3. 什么是堆中的永久代(Perm Gen space)?

  4. 简述各个版本内存区域的变化?

  5. 说说各个区域的作用?

  6. Java 中会存在内存泄漏吗,简述一下?

JVM的执行子系统常见问题



  1. Java 类加载过程?

  2. 描述一下 JVM 加载 Class 文件的原理机制?

  3. 什么是类加载器?

  4. 类加载器有哪些?

  5. 什么是tomcat类加载机制?

  6. 类加载器双亲委派模型机制?

垃圾回收常见问题



  1. 什么是GC? 为什么要有 GC?

  2. 简述一下Java 垃圾回收机制?

  3. 如何判断一个对象是否存活?

  4. 垃圾回收的优点和原理,并考虑 2 种回收机制?

  5. 垃圾回收器的基本原理是什么?

  6. 垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

  7. 深拷贝和浅拷贝?

  8. System.gc() 和 Runtime.gc() 会做些什么?

  9. 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?

  10. 什么是分布式垃圾回收(DGC)?它是如何工作的?

  11. 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?

  12. 在 Java 中,对象什么时候可以被垃圾回收?

  13. 简述Minor GC 和 Major GC?

  14. JVM 的永久代中会发生垃圾回收么?

  15. Java 中垃圾收集的方法有哪些?

性能优化常见问题



  1. 讲讲你理解的性能评价及测试指标?

  2. 常用的性能优化方式有哪些?

  3. 说说分布式缓存和一致性哈希?

  4. 同步与异步?阻塞与非阻塞?

  5. 什么是GC调优?

  6. 常见异步的手段有哪些?





面试造火箭,工作拧螺丝,希望能帮到你



多多转发,让更多人受益!!



用户头像

还未添加个人签名 2020.06.14 加入

领取文中资料加微信:gyhycx7980 备注:InfoQ 即可

评论

发布
暂无评论
面试腾讯被问JVM性能调优,勉强入职后,发现工资差了这么多