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

网站挂马怎么办上海公司招聘信息

网站挂马怎么办,上海公司招聘信息,建立网站需要哪些费用,网页设计文件下载目录 类加载和类加载器 概述 类加载要完成的功能 加载类的方式 类加载器 类加载器的关系 类加载器说明 双亲委派模型 工作过程如下: 双亲委派模型说明: 破坏双亲委派模型: 类连接和初始化 类连接主要验证的内容 类连接中的解析…

目录

类加载和类加载器

概述

类加载要完成的功能

加载类的方式

类加载器

类加载器的关系

类加载器说明

双亲委派模型

工作过程如下:

双亲委派模型说明:

破坏双亲委派模型:

类连接和初始化

类连接主要验证的内容

类连接中的解析

类的初始化时机

类的卸载


  • 类加载和类加载器

  • 类从被加载到JVM开始,到卸载出内存,整个生命周期如图

  • 概述

  • 加载:
    • 查找并加载类文件的二进制数据
  • 连接:
    • 就是将已经读入内存的类的二进制数据合并到JVM运行时环境中去
    • 包含如下几个步骤:
      • (1)验证:确保被加载类的正确性
      • (2)准备:为类的静态变量分配内存,并初始化它们
      • (3)解析:把常量池中的符号引用转换成直接引用
  • 初始化:
    • 为类的静态变量赋初始值
  • 类加载要完成的功能

  • (1)通过类的全限定名来获取该类的二进制字节流
  • (2)把二进制字节流转化为方法区的运行时数据结构
  • (3)在堆上创建一个java.lang.Class对象,用来封装类在方法区内的数据结构,并向外提供了访问方法区内数据结构的接口
  • 加载类的方式

  • 最常见的方式:本地文件系统中加载、从jar等归档文件中加载
  • 动态的方式:将java源文件动态编译成class
  • 其它方式:网络下载、从专有数据库中加载等等
  • 类加载器

  • Java虚拟机自带的加载器包括如下几种:
  • 启动类加载器(BootstrapClassLoader)
  • 平台类加载器(PlatformClassLoader)(JDK8:扩展类加载器ExtensionClassLoader)
  • 应用程序类加载器(AppClassLoader)
  • 用户自定义的加载器,是java.lang.ClassLoader的子类,用户可以定制类的加载方式;只不过自定义类加载器其加载的顺序是在所有系统类加载器的最后
  • 类加载器的关系

  • 类加载器说明

  • 启动类加载器:用于加载启动的基础模块类
  • 比如:java.base、java.management、java.xml等等
  • 平台类加载器:用于加载一些平台相关的模块
  • 比如:java.scripting、java.compiler*、java.corba*等等
  • 应用程序类加载器:用于加载应用级别的模块
  • 比如:jdk.compiler、jdk.jartool、jdk.jshell等等;还加载classpath路径中的所有类库
  • JDK8:启动类加载器:
  • 负责将<JAVA_HOME>/lib,或者-Xbootclasspath参数指定的路径中的,且是虚拟机识别的类库加载到内存中(按照名字识别,比如rt.jar,对于不能识别的文件不予装载)
  • JDK8:扩展类加载器:
  • 负责加载<JRE_HOME>/lib/ext,或者java.ext.dirs系统变量所指定路径中的所有类库
  • JDK8:应用程序类加载器:
  • 负责加载classpath路径中的所有类库
  • Java程序不能直接引用启动类加载器,直接设置classLoader为null,默认就使用启动类加载器
  • 类加载器并不需要等到某个类“首次主动使用”的时候才加载它,Jvm规范允许类加载器在预料到某个类将要被使用的时候就预先加载它
  • 如果在加载的时候.class文件缺失,会在该类首次主动使用时报告LinkageError错误,如果一直没有被使用,就不会报错
  • 双亲委派模型

  • JVM中的ClassLoader通常采用双亲委派模型,要求除了启动类加载器外,其余的类加载器都应该有自己的父级加载器
  • 这里的父子关系是组合而不是继承
  • 工作过程如下:

    • (1)一个类加载器接收到类加载请求后,首先搜索它的内建加载器定义的所有“具名模块”
    • (2)如果找到了合适的模块定义,将会使用该加载器来加载
    • (3)如果class没有在这些加载器定义的具名模块中找到,那么将会委托给父级加载器,直到启动类加载器
    • (4)如果父级加载器反馈它不能完成加载请求,比如在它的搜索路径下找不到这个类,那子的类加载器才自己来加载
    • (5)在类路径下找到的类将成为这些加载器的无名模块
  • 双亲委派模型说明:

  • (1)双亲委派模型对于保证Java程序的稳定运作很重要
  • (2)实现双亲委派的代码在java.lang.ClassLoader的loadClass()方法中,如果自定义类加载器的话,推荐覆盖实现findClass()方法
  • (3)如果有一个类加载器能加载某个类,称为定义类加载器,所有能成功返回该类的Class的类加载器都被称为初始类加载器
  • (4)如果没有指定父加载器,默认就是启动加载器
  • (5)每个类加载器都有自己的命名空间,命名空间由该加载器及其所有父加载器所加载的类构成,不同的命名空间,可以出现类的全路径名相同的情况
  • (6)运行时包由同一个类加载器的类构成,决定两个类是否属于同一个运行时包,不仅要看全路径名是否一样,还要看定义类加载器是否相同;只有属于同一个运行时包的类才能实现相互包内可见
  • 破坏双亲委派模型:

  • 双亲模型有个问题:
    • 父加载器无法向下识别子加载器加载的资源
  • 为了解决这个问题
    • 引入了线程上下文类加载器,可以通过Thread的setContextClassLoader()进行设置
  • 另外一种典型情况就是实现热替换,比如OSGI的模块化热部署,它的类加载器就不再是严格按照双亲委派模型,很多可能就在平级的类加载器中执行了
  • 类连接和初始化

  • 类连接主要验证的内容

  • 类文件结构检查:
    • 按照JVM规范规定的类文件结构进行
  • 元数据验证:
    • 对字节码描述的信息进行语义分析,保证其符合Java语言规范要求
  • 字节码验证:
    • 通过对数据流和控制流进行分析,确保程序语义是合法和符合逻辑的;这里主要对方法体进行校验
  • 符号引用验证:
    • 对类自身以外的信息,也就是常量池中的各种符号引用,进行匹配校验
  • 类连接中的解析

  • 所谓解析就是把常量池中的符号引用转换成直接引用的过程
  • 包括:
  • 符号引用:
    • 以一组无歧义的符号来描述所引用的目标,与虚拟机的实现无关
  • 直接引用:
    • 直接指向目标的指针、相对偏移量、或是能间接定位到目标的句柄,是和虚拟机实现相关的
  • 主要针对:类、接口、字段、类方法、接口方法、方法类型、方法句柄、调用点限定符
  • 类的初始化时机

  • Java程序对类的使用方式分成:
  • 主动使用和被动使用
  • JVM必须在每个类或接口“首次主动使用”时才初始化它们
  • 被动使用类不会导致类的初始化
  • 主动使用的情况:
    • (1)创建类实例
    • (2)访问某个类或接口的静态变量
    • (3)调用类的静态方法
    • (4)反射某个类
    • (5)初始化某个类的子类,而父类还没有初始化
    • (6)JVM启动的时候运行的主类
    • (7)定义了default方法的接口,当接口实现类初始化时
  • 类的卸载

  • 当代表一个类的Class对象不再被引用,那么Class对象的生命周期就结束了,对应的在方法区中的数据也会被卸载
  • Jvm自带的类加载器装载的类,是不会卸载的,由用户自定义的类加载器加载的类是可以卸载的
http://www.yayakq.cn/news/634088/

相关文章:

  • wordpress建站赚钱凡科小程序登录
  • 郑州网站制作郑州网站制作东莞哪家做网站比较好
  • 盐城网站开发建设乔拓云官网免费
  • 图书馆网站建设的规章制度兰州网站建设索王道下拉
  • 绍兴市中等专业学校网站wordpress速度
  • 网站正在维护模板宣传推广方案范文
  • 怎么查网站注册信息木兰姐网站建设
  • 潍坊百度网站排名企业咨询管理公司是干嘛的
  • 想做棋牌网站怎么做留言板网页设计代码
  • 深圳网站建设怎样网站建设视频百度网盘下载
  • 网站pv uv 多少算好站wordpress设置静态之后文章打不开
  • 潍坊市网站建设公司建设通网站不良信用信息撤销
  • 专业做网站的官方网站建设方案图
  • 菏泽网的网站建设的联系方式个人网站推广
  • 快速一体化网站建设个人工商户做网站备案
  • 搭建网站团队计划不准别人网站做反链
  • 行业排名查询网站珠海互联网平台
  • 抖音代运营朋友圈文案温州网站优化关键词
  • 淄博优化网站排名wordpress开发手册下载地址
  • 东莞模板建站哪家好巩义便宜网站建设费用
  • 创业做网站APP开发好看怎么上传视频网站吗
  • 网站站内推广怎么做用织梦后台修改网站logo
  • 公司网站重新备案上海建筑设计院有限公司停工
  • 海口企业网站开发怎么在国外做网站
  • 淘宝网站建设弄什么类目东莞外贸人才网
  • 做的比较好的电商网站做网赌网站
  • 建站模板下载后表单怎么修改免费推广网站2023
  • 谁有做爰网站江门免费网站建站模板
  • 网站没有备案号西安企业黄页网站
  • wordpress站江苏省工程建设信息网