分享

实不相瞒,我就要跟性能调优磕到底

 西北望msm66g9f 2020-03-26
JVM 是 Java 程序员成长进阶之路的一道坎。真正懂JVM之前,只需要知道代码编译成 Class,虚拟机加载 Class 运行就可以了,深入了解 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. 常见异步的手段有哪些?
如何正确系统的学习JVM和性能调优?

所谓系统学习法,是指把所学内容当成是一个系统看待,力求从大方向出发指导学习,这样,在学习和复习的时候不是按部就班按章节行进,而是先模糊概括,再逐渐在大框架下逐步明晰细节、完善结构、针对缺陷和不足专攻的学习方法。

区分一个程序猿技术水平和视野的一个重要指标是性能优化,所以面试时,面试官总会问你一个问题,如何进行性能优化呢?

Java内存区域
  1. 运行时数据区域(程序计数器、堆、栈等)
  2. 站在线程角度来看堆和栈
  3. 深入辨析堆和栈
  4. 方法的出入栈
  5. 虚拟机中的对象
  6. 堆参数设置和内存溢出实战
垃圾回收器和内存分配策略
  1. 判断对象的存活
  2. 辨析强、弱等各种引用
  3. GC算法
  4. 分代收集
  5. Stop The World现象
  6. GC日志解读
  7. 内存分配与回收策略,内存泄漏和内存溢出辨析
  8. JDK为我们提供的工具
  9. 了解MAT
  10. 垃圾回收器
深入了解性能优化
  1. 常用的性能评价/测试指标
  2. 常用的性能优化手段
  3. 详细了解应用服务性能优化
编写高效优雅Java程序
JVM的执行子系统
  1. Class类文件本质,Class文件格式
  2. 字节码指令
  3. 类加载机制
  4. 栈桢详解
  5. 方法调用详解
  6. 基于栈的字节码解释执行引擎
如果看到这时你的头脑还是一片空白,或是靠死记硬背还是靠着之前的经历,答一下压缩代码,打包代码,事件代理,这说明你对性能优化还是缺乏一个整体,系统的掌握,对性能优化还只是处于听说过一个方法就加上去的阶段。这样也就无从去更好的优化性能。

针对于上面的JVM面试题,我看的课程之一是前唯品会、京东电商架构师诸葛老师《金三银四面试突击-性能调优》的直播。一线大厂架构师倾囊享受性能调优经验。原价99元本号小伙伴依然仅需0.02。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多