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

网站没有robots.txt文件网站源码交易平台

网站没有robots.txt文件,网站源码交易平台,shopex网站经常出错,西安网站制作计划今天是2025/03/23 19:07 day 10 总路线请移步主页Java大纲相关文章 今天进行JVM 3,4 个模块的归纳 首先是JVM的相关内容概括的思维导图 3. 类加载机制 加载过程 加载(Loading) 通过类全限定名获取类的二进制字节流(如从JAR包、网络、动态…

今天是2025/03/23 19:07 day 10

总路线请移步主页Java大纲相关文章

今天进行JVM 3,4 个模块的归纳

首先是JVM的相关内容概括的思维导图

3. 类加载机制

加载过程
  1. 加载(Loading)

    • 通过类全限定名获取类的二进制字节流(如从JAR包、网络、动态代理生成等)。

    • 将字节流转化为方法区的运行时数据结构,生成Class对象作为访问入口。

  2. 验证(Verification)

    • 文件格式验证:检查魔数、版本号等是否符合JVM规范。

    • 元数据验证:语义校验(如是否有父类、是否继承final类等)。

    • 字节码验证:确保代码逻辑合法(如类型转换、跳转指令)。

    • 符号引用验证:确保符号引用能正确解析到目标类/方法/字段。

  3. 准备(Preparation)

    • 静态变量(static修饰)分配内存(方法区),并赋默认零值(如int=0,引用=null)。

    • 若字段被final修饰且是基本类型/字符串常量,直接赋程序设定的初始值(无需等到初始化阶段)。

  4. 解析(Resolution)

    • 将常量池中的符号引用(类、方法、字段的间接引用)替换为直接引用(内存地址偏移量)。

    • 解析可能发生在初始化之前(静态绑定)或之后(动态绑定,如虚方法调用)。

  5. 初始化(Initialization)

    • 执行类构造器<clinit>()方法,合并类中所有静态变量的赋值动作和静态代码块。

    • JVM保证父类的<clinit>()先于子类执行。

    • 初始化是触发类加载的最终步骤(如new、反射调用、主类加载等)。


类加载器
  1. 启动类加载器(Bootstrap ClassLoader)

    • 由C++实现,加载JAVA_HOME/lib下的核心类库(如rt.jar)。

    • 唯一不继承ClassLoader的加载器,Java代码中无法直接引用。

  2. 扩展类加载器(Extension ClassLoader)

    • Java实现,加载JAVA_HOME/lib/ext目录的扩展类。

    • sun.misc.Launcher$ExtClassLoader的实例。

  3. 应用程序类加载器(Application ClassLoader)

    • 加载用户类路径(ClassPath)下的类,是默认的类加载器。

    • sun.misc.Launcher$AppClassLoader实现。

  4. 自定义类加载器

    • 继承ClassLoader类,重写findClass()方法,实现从特定路径加载类。

    • 典型场景:热部署、模块化加载、加密类文件解密。


双亲委派模型
  • 工作原理: 子加载器收到加载请求后,先委派父加载器尝试加载,父加载器无法完成时,子加载器才自行加载。

  • 优点

    • 避免类重复加载(如java.lang.Object只会由Bootstrap加载一次)。

    • 防止核心类被篡改(自定义的java.lang.String不会被加载)。

  • 打破双亲委派

    • SPI机制(如JDBC驱动加载):使用线程上下文类加载器(TCCL)逆向委派。

    • OSGi模块化:自定义类加载器实现网状委派。


4. 执行引擎

解释器(Interpreter)
  • 逐行解释执行字节码,无需等待编译,启动速度快。

  • 适用于短生命周期或低频执行的代码(如一次性任务)。


JIT编译器(Just-In-Time)
  1. C1编译器(Client Compiler)

    • 轻量级优化,编译速度快,适合对启动速度敏感的应用(如GUI程序)。

    • 优化手段:方法内联、去虚拟化、冗余消除。

  2. C2编译器(Server Compiler)

    • 深度优化,生成高效本地代码,适合长时间运行的服务端应用。

    • 优化手段:逃逸分析、锁消除、循环展开。

  3. 分层编译(Tiered Compilation)

    • JDK7+默认策略,结合C1和C2:

      • Level 0:解释执行。

      • Level 1~3:C1编译(带基础性能监控)。

      • Level 4:C2编译(激进优化)。

    • 通过-XX:+TieredCompilation启用。


热点代码检测
  • 方法调用计数器:统计方法调用次数,触发JIT编译(阈值:Client模式1500次,Server模式10000次)。

  • 回边计数器:统计循环体执行次数,触发OSR(栈上替换)编译。

  • 热度衰减:计数器半衰期(-XX:CounterHalfLifeTime),避免长期未触发的代码占用资源。


编译优化技术
  1. 方法内联(Inlining)

    • 将小方法(如Getter/Setter)直接嵌入调用处,减少栈帧开销。

    • -XX:MaxInlineSize(默认35字节)控制。

  2. 逃逸分析(Escape Analysis)

    • 判断对象是否仅在方法内部使用(未逃逸),若成立则:

      • 栈上分配:对象直接在栈上分配,避免堆内存压力。

      • 标量替换:将对象拆分为基本类型字段,消除对象头开销。

  3. 锁消除(Lock Elision)

    • 基于逃逸分析,若锁对象未逃逸(线程私有),直接移除同步操作。


本地方法接口(JNI)
  • 允许Java代码调用C/C++编写的本地方法(如native修饰的方法)。

  • 典型场景

    • 操作系统底层操作(如文件IO)。

    • 高性能计算(如矩阵运算)。

  • 缺点

    • 破坏平台无关性。

    • JNI调用开销较大(需切换上下文)。


  • 类加载机制通过双亲委派保障安全性和一致性,支持动态扩展(如SPI)。

  • 执行引擎通过解释器与JIT编译器的协同,平衡启动速度和运行效率,结合逃逸分析等优化技术提升性能。

http://www.dtcms.com/wzjs/499691.html

相关文章:

  • 火车票b2c网站建设qq刷赞网站推广快速
  • php网站本地搭建青岛的seo服务公司
  • 注册广告公司名字网站排名seo教程
  • 建站之星(sitestar)网站建设系统企业网络营销推广案例
  • 渭南网站建设风尚网络seo专员是什么意思
  • 网站自助平台5118网站如何使用免费版
  • 企业网站建设规划书百度seo优化技术
  • 网站上人家做的简历刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 做网站需要资料郑州网络推广软件
  • 网站如何做百度权重查关键词的排名工具
  • 网站权重高+做别的关键词网络营销与推广
  • 做速卖通代码的网站企业推广语
  • 网站制作基础教程百度小说搜索排行榜
  • 厦门网站建设xm37今天新闻
  • 海外 网站 推广软件开发外包
  • 济南市做网站公司淘宝怎么提高关键词搜索排名
  • 网站做seo屏蔽搜索引擎网络运营是做什么的
  • 网站加载速度慢的原因seo专业培训需要多久
  • 闲鱼上做网站百度电话号码查询
  • 婚介 东莞网站建设seo查询官网
  • 网站后端怎么做seo整站优化更能准确获得客户
  • 太原推广型网站建设企业网站推广的形式有哪些
  • 定制app开发平台贵港seo关键词整站优化
  • 网站做web成人电脑培训班办公软件
  • 网站推广意义自媒体平台
  • 妈妈我想你高清免费视频播放关键词排名优化营销推广
  • 网站建设亿玛酷信赖新闻最近的新闻
  • wordpress 新页面类型湖南长沙seo教育
  • 怎么样做购物网站竞价推广托管多少钱
  • led灯网站策划书常州网站制作维护