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

网站商城如何获取流量响应式布局模板

网站商城如何获取流量,响应式布局模板,布吉商城网站建设,网站做管制户外刀具JVM 类加载机制 JVM 类加载机制分为五个部分#xff1a;加载#xff0c;验证#xff0c;准备#xff0c;解析#xff0c;初始化#xff0c;下面我们就分别来看一下这五个过程。 1.1. 加载 加载是类加载过程中的一个阶段#xff0c;这个阶段会在内存中生成一个代表这…JVM 类加载机制 JVM 类加载机制分为五个部分加载验证准备解析初始化下面我们就分别来看一下这五个过程。 1.1. 加载 加载是类加载过程中的一个阶段这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对象作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取这里既可以从 ZIP 包中读取比如从 jar 包和 war 包中读取也可以在运行时计算生成动态代理也可以由其它文件生成比如将 JSP 文件转换成对应的 Class 类。 1.2. 验证 这一阶段的主要目的是为了确保 Class 文件的字节流中包含的信息是否符合当前虚拟机的要求并且不会危害虚拟机自身的安全。 1.3. 准备 准备阶段是正式为类变量分配内存并设置类变量的初始值阶段即在方法区中分配这些变量所使用的内存空间。注意这里所说的初始值概念比如一个类变量定义为 public static int v 8080; 实际上变量 v 在准备阶段过后的初始值为 0 而不是 8080将 v 赋值为 8080 的 put static 指令是 程序被编译后存放于类构造器方法之中。但是注意如果声明为 public static final int v 8080; 在编译阶段会为 v 生成 ConstantValue 属性在准备阶段虚拟机会根据 ConstantValue 属性将 v 赋值为 8080。 1.4. 解析 解析阶段是指虚拟机将常量池中的符号引用替换为直接引用的过程。符号引用就是 class 文件中的 CONSTANT_Class_infoCONSTANT_Field_infoCONSTANT_Method_info 等类型的常量。 1.5. 符号引用 符号引用与虚拟机实现的布局无关引用的目标并不一定要已经加载到内存中。各种虚拟机实现的内存布局可以各不相同但是它们能接受的符号引用必须是一致的因为符号引用的字面量形式明确定义在 Java 虚拟机规范的 Class 文件格式中。 1.6. 直接引用 直接引用可以是指向目标的指针相对偏移量或是一个能间接定位到目标的句柄。如果有了直接引用那引用的目标必定已经在内存中存在。 1.7. 初始化 初始化阶段是类加载最后一个阶段前面的类加载阶段之后除了在加载阶段可以自定义类加载器以外其它操作都由 JVM 主导。到了初始阶段才开始真正执行类中定义的 Java 程序代码。 1.8. 类构造器 初始化阶段是执行类构造器方法的过程。方法是由编译器自动收集类中的类变量的赋值操作和静态语句块中的语句合并而成的。虚拟机会保证子方法执行之前父类的方法已经执行完毕如果一个类中没有对静态变量赋值也没有静态语句块那么编译器可以不为这个类生成()方法。注意以下几种情况不会执行类初始化 通过子类引用父类的静态字段只会触发父类的初始化而不会触发子类的初始化。定义对象数组不会触发该类的初始化。常量在编译期间会存入调用类的常量池中本质上并没有直接引用定义常量的类不会触发定义常量所在的类。通过类名获取 Class 对象不会触发类的初始化。通过 Class.forName 加载指定类时如果指定参数 initialize 为 false 时也不会触发类初始化其实这个参数是告诉虚拟机是否要对类进行初始化。通过 ClassLoader 默认的 loadClass 方法也不会触发初始化动作。 2. 类加载器 虚拟机设计团队把加载动作放到 JVM 外部实现以便让应用程序决定如何获取所需的类JVM 提 供了 3 种类加载器 2.1. 启动类加载器(Bootstrap ClassLoader) 负责加载 JAVA_HOME\lib 目录中的或通过-Xbootclasspath 参数指定路径中的且被虚拟机认可按文件名识别如 rt.jar的类。 2.2. 扩展类加载器(Extension ClassLoader) 负责加载 JAVA_HOME\lib\ext 目录中的或通过 java.ext.dirs 系统变量指定路径中的类库。 2.3. 应用程序类加载器(Application ClassLoader) 负责加载用户路径classpath上的类库。 JVM 通过双亲委派模型进行类的加载当然我们也可以通过继承 java.lang.ClassLoader实现自定义的类加载器。 3. 双亲委派 当一个类收到了类加载请求他首先不会尝试自己去加载这个类而是把这个请求委派给父类去完成每一个层次类加载器都是如此因此所有的加载请求都应该传送到启动类加载其中只有当父类加载器反馈自己无法完成这个请求的时候在它的加载路径下没有找到所需加载的Class子类加载器才会尝试自己去加载。采用双亲委派的一个好处是比如加载位于 rt.jar 包中的类 java.lang.Object不管是哪个加载器加载这个类最终都是委托给顶层的启动类加载器进行加载这样就保证了使用不同的类加载器最终得到的都是同样一个 Object 对象。 4. OSGI 动态模型系统 OSGi(Open Service Gateway Initiative)是面向 Java 的动态模型系统是 Java 动态化模块化系统的一系列规范。 4.1. 动态改变构造 OSGi 服务平台提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使这些耦合度可管理OSGi 技术提供一种面向服务的架构它能使这些组件动态地发现对方。 4.2. 模块化编程与热插拔 OSGi 旨在为实现 Java 程序的模块化编程提供基础条件基于 OSGi 的程序很可能可以实现模块级的热插拔功能当程序升级更新时可以只停用、重新安装然后启动程序的其中一部分这对企业级程序开发来说是非常具有诱惑力的特性。OSGi 描绘了一个很美好的模块化开发目标而且定义了实现这个目标的所需要服务与架构同时也有成熟的框架进行实现支持。但并非所有的应用都适合采用 OSGi 作为基础架构它在提供强大功能同时也引入了额外的复杂度因为它不遵守了类加载的双亲委托模型。
http://www.zqtcl.cn/news/859900/

相关文章:

  • 嘉兴网站公司安卓优化大师2023
  • 电影网站开发影院座位问题正能量网站大全
  • dede手机网站更新成安专业做网站
  • 做能支付的网站贵吗品牌策划费用
  • 营销网站开发网站建设工作室
  • 如何把自己做的网站挂网上网页版梦幻西游红色伙伴搭配
  • 网站正在建设中 倒计时软件开发培训机构找极客时间
  • 贵阳网站建设搜q479185700大学网站栏目建设
  • 开发网站找什么公司吗电影网站域名
  • 网站栏目设计怎么写黑龙江建设网官
  • 网站主页设计素材php企业门户网站模板
  • 管理外贸网站模板wordpress live-2d
  • 哈尔滨优化网站方法网站栏目功能分析
  • diy定制网站wordpress 做表格
  • 怎么建设个网站佛山网站设计
  • 饰品企业网站建设做网站管理系统
  • 网站制作的关键技术网站开发网页设计北京师范大学出版社
  • 南宁北京网站建设网站代理合作
  • 网站备案要多少钱包装设计接单网站
  • 涵江网站建设超市营销型网站建设策划书
  • 无锡定制网站建设织梦笑话网站
  • 网站开发的安全性原则潍坊 logo设计公司
  • 宜春市城乡规划建设局网站网站设计师联盟
  • 重庆施工员证查询网站广告设计专业认知报告
  • 网站建设费用要多少黑糖不苦还做网站么
  • 公司网站改版 目的好知网做网站
  • 华强北手机网站建设哈尔滨网站建设oeminc
  • 公司简介网站模板新浪云存储 wordpress
  • 阿里云个人网站建设威海建设集团网站
  • 湖南城乡住房建设厅网站中石化网站群建设