当前位置: 首页 > news >正文

上海要做网站wordpress 调用tag

上海要做网站,wordpress 调用tag,可以做网站的路由器,网站怎么做rssJVM虚拟机全面解析笔记一、为什么要学JVM? 面试必备:避免死记硬背八股文技术根基:理解代码底层逻辑,构建可靠系统调优基础:解决线上内存泄漏、OOM崩溃等性能问题核心观点:学JVM是自主解决问题的一流程序员与…

JVM虚拟机全面解析笔记


一、为什么要学JVM?

  • 面试必备:避免死记硬背八股文
  • 技术根基:理解代码底层逻辑,构建可靠系统
  • 调优基础:解决线上内存泄漏、OOM崩溃等性能问题

核心观点:学JVM是自主解决问题的一流程序员与CRUD二流程序员的分水岭!


二、Class文件规范

1. Class文件结构
  • 魔数标识:所有Class文件以CAFE BABE开头(Java名称起源)
  • 版本号机制
    minor_version(次版本) + major_version(主版本,如JDK8=52)
    

    JDK8无法执行JDK17编译的Class文件(版本号61)

  • 常量池索引:从1开始(索引0表示“不引用常量项”)
2. 字节码指令
  • 指令格式:1字节操作码 + 0~N个操作数
  • 核心指令类型
    bipush 10      // 压栈常量10(需操作数)
    astore_1       // 存储到局部变量表(无操作数)
    invokestatic   // 调用静态方法
    
  • 方法调用指令
    指令用途
    invokevirtual对象实例方法(多态)
    invokeinterface接口方法
    invokespecial构造方法/私有方法/父类方法
    invokestatic静态方法
    invokedynamic动态解析(Lambda底层)
3. 关键案例解析

Integer缓存机制

Integer i1 = 10;  // → bipush 10 + invokestatic Integer.valueOf
Integer i2 = 10;
System.out.println(i1 == i2); // true(-128~127缓存复用)

字节码验证:valueOf调用导致缓存对象复用

4. try-catch-finally流程
  • 异常表控制跳转
    Start PC | End PC | Handler PC | CatchType
    
    • try块异常 → catch或finally
    • catch块异常 → finally
5. 字节码执行原理
  • 操作数栈:存储计算中间结果(LIFO结构)
  • 局部变量表:存储方法参数和局部变量(数组结构)
  • i++ vs ++i
    int k = 1;
    k = k++; 
    // 字节码:iload → iinc → istore(结果k=1)
    

三、类加载机制

1. JDK8类加载体系
  • 双亲委派核心代码
    protected Class<?> loadClass(String name, boolean resolve) {// 1. 检查缓存// 2. 父加载器优先加载// 3. 父类失败时自身加载
    }
    

    打破场景:Tomcat多应用隔离加载

2. 沙箱保护机制
  • 禁止覆盖核心类
    if (name.startsWith("java.")) {throw new SecurityException();
    }
    
3. 类与对象关系
  • 元空间(Metaspace):存储类元信息(JDK8取代PermGen)
  • 对象头结构(JOL工具查看):
    Mark Word(锁状态/GC年龄) + Class Pointer(指向元空间类)
    

四、执行引擎

1. 执行模式
模式特点启用参数
解释执行逐条翻译执行(启动快)-Xint
编译执行编译为本地代码(执行快)-Xcomp
混合模式默认策略(平衡性能)(JDK8默认)
2. JIT分层编译
  • C1编译器:轻量优化(启动快)
  • C2编译器:激进优化(峰值性能高)
  • Graal编译器:JDK10+替代C2(Java编写)

五、GC垃圾回收

1. 分代收集模型
  • 年轻代(Eden+Survivor):
    • 比例:Eden:S0:S1 = 8:1:1
    • 回收算法:标记-复制(Minor GC)
  • 老年代
    • 回收算法:标记-整理(Full GC)
2. 垃圾回收器演进
分代类型回收器特点
分代Serial/Parallel ScavengeJDK8默认(Parallel+Old)
CMS/G1低停顿
不分代ZGC/ShenandoahTB级堆内存<10ms停顿

JDK8默认:-XX:+UseParallelGC(PS + PO)


六、GC调优实战

1. 关键JVM参数
-XX:+PrintGCDetails           # 打印GC详情
-XX:+PrintGCTimeStamps        # 增加时间戳
-Xloggc:./gc.log              # 输出日志文件
2. 日志分析工具
  • Arthas:实时监控JVM状态(阿里开源)
  • GCeasy:在线分析GC日志(https://www.gceasy.io)

典型问题定位

  • YoungGC频繁 → 增大年轻代
  • FullGC耗时久 → 检查老年代对象泄漏

总结思考

“JVM不是黑盒,是打开Java生态的钥匙” —— 掌握字节码、类加载、GC原理,方能从CRUD进阶系统级调优专家!

http://www.dtcms.com/a/598740.html

相关文章:

  • 做网站谈单产品策划推广方案
  • 四川省建设部网站北京价格微网站建设
  • MoveIt! 与 Action 控制的本质区别与协同关系
  • 安徽网站建设流程做像美团淘宝平台网站多少钱
  • Linux系统编程——进程通信之有名管道
  • 夷陵区住房和城乡建设局网站安卓 网站整站下载
  • 二手网站开发wordpress网站同步插件
  • 创口贴设计网站官网手机清理优化软件排名
  • 线性预处理|dfs回溯
  • VGG改进(15):Sparse Attention在VGG16中的设计与实现
  • 常州外贸网站制作弄一个电影网站怎么做
  • 网站信息评估抽查电子商务网站建设技术解决方案
  • 沈阳开发网站公司做销售的去哪个网站应聘
  • 树莓派5+Ubuntu24.04 LTS CH348 / CH9344 驱动安装 保姆级教程
  • 网站的功能和作用是什么上海方正大厦网站建设
  • Unity:lua热更新(二)——Lua语法(续)
  • 设计门户网站wordpress怎么装模板
  • Blender科幻机甲娘莉莉魅魔人物角色3D模型带骨骼动作绑定带贴图
  • 网站源码下载工具民间it网站建设
  • 松江工业区网站建设钱追得回吗
  • 数据库之增删改查
  • C# 生成指定位数的编号
  • 房地产网站建设哪家有效果网站开发工作分解结构
  • SAP FICO资产主数据查询接口
  • 婚恋网站开发做指甲的网站
  • 【IEEE出版、往届均检索】第三届智慧城市与信息系统国际学术会议 (ICSCIS 2026)
  • 国外免费wordpress温州谷歌优化公司
  • 开封网站建设公司排名建网站郑州
  • 成都建设银行网站flash 做网站教程
  • 企业网站 报价二级域名分发站免费